Почему я не могу удалить файл, помеченный как сокет, из моей файловой системы linux ext3?

2471
Elijah

Я использую Ubuntu 9.04 с файловой системой ext3. Некоторое время назад я взламывал исходный код flock 2.0 и пытался удалить исходный каталог, но один файл не мог быть удален при использовании команды rm -rf. Итак, теперь я нахожусь в следующем состоянии:

#:$ sudo rm wizWaterMark.bmp.svn-base  rm: cannot remove `wizWaterMark.bmp.svn-base': Operation not permitted #: ls -lahi 467275 drwxr-xr-x 2 elijah elijah 4.0K 2009-07-29 11:22 . 467273 drwxr-xr-x 3 elijah elijah 4.0K 2009-07-29 11:22 .. 467289 sr-s---r-t 53288 43274 44934 2.6G 1922-12-30 08:51 wizWaterMark.bmp.svn-base #: stat wizWaterMark.bmp.svn-base File: `wizWaterMark.bmp.svn-base' Size: 2708289673 Blocks: 1904771944 IO Block: 4096 socket Device: 806h/2054d Inode: 467289 Links: 53288 Access: (5505/sr-s---r-t) Uid: (43274/ UNKNOWN) Gid: (44934/ UNKNOWN) Access: 1962-09-19 07:25:47.000000000 -0700 Modify: 1922-12-30 08:51:26.000000000 -0800 Change: 2013-08-23 23:56:57.000000000 -0700 #: sudo find . -inum 467289 -exec rm -i {} \; rm: remove socket `./wizWaterMark.bmp.svn-base'? y rm: cannot remove `./wizWaterMark.bmp.svn-base': Operation not permitted 

Я только что установил, что не могу удалить файл с помощью команды rm. Также не работает ссылка. Затем я попытался удалить файл, используя индекс, и это не сработало. Каким-то образом этот файл / сокет был установлен, когда я компилировал или проверял исходный код стада. Из того, что я могу сказать, это файл сокета. Как мне от этого избавиться?

2

1 ответ на вопрос

8
vjt

Для меня это выглядит как повреждение файловой системы, потому что этот файл .svn-base не должен быть сокетом: он должен содержать базовую версию файла wizWaterMark.bmp, извлеченную из subversion.

Некоторые подсказки должны исходить от dmesg, но я бы сразу перемонтировал файловую систему только для чтения (mount -o remount, ro / mountpoint) и выполнил для нее fsck.

Удачи!

Спасибо! Это была именно проблема. Мне пришлось выполнить fsk -f для принудительной проверки, потому что файловая система была помечена как чистая. Elijah 15 лет назад 1

Похожие вопросы