Не удаляемый каталог в lost+found
Как я могу удалить этот каталог? я сделал fsck
и это нашло некоторый мусор, я просмотрел эти файлы, и там не было чего-то важного. Поэтому я попытался удалить содержимое /lost+found
и все прошло, кроме этого странного каталога. Я думал, что положить его на /tmp
(Я могу переместить этот каталог через том) будет стереть его при следующей перезагрузке, но он все еще там после перезагрузки и другой fsck
,
Кажется, что проблема в низком уровне, а игры с правами доступа и правами недостаточно, я позволил вам воспроизвести проблему самостоятельно. Наслаждайтесь!
- Это безопасно, вы сможете размонтировать образ, чтобы избавиться от этих каталогов на вашем компьютере;
- Это не iso-изображение, это результат
dd if=/dev/sda1 of=/files/broken.iso
;
Я сделал 15 МБ архив с изображением ~1,2 ГБ. Вы можете скачать и использовать его с помощью следующих команд:
cd /tmp
wget https://dl.dropboxusercontent.com/u/22701362/broken.tar.xz
tar xvf broken.tar.xz
mkdir test
sudo mount broken.iso test
cd test
Было бы две директории (во время создания этого образа оказалось, что на моем диске есть две такие директории):
/tmp/test> tree
.
├── 1
│ └── plexus-component-annotations-1.5.5.jar.sha1 [error opening dir]
└── 2
└── #1589030 [error opening dir]
4 directories, 0 files
Удачи в удалении этих двух каталогов:
/tmp/test> sudo rm -rf *
rm: cannot remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
rm: cannot remove '2/#1589030': Operation not permitted
/tmp/test> sudo chown -R root:root *
chown: changing ownership of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chown: cannot read directory '2/#1589030': Permission denied
/tmp/test> sudo chmod -R 777 *
chmod: changing permissions of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chmod: changing permissions of '2/#1589030': Operation not permitted
chmod: cannot read directory '2/#1589030': Permission denied
2 ответа
Одна возможность - неизменный флаг в случае файловой системы ext. Смотрите вывод lsattr
команда. Если там есть i
настоящее время его можно удалить с помощью chattr -i filename
Файл с атрибутом "i" не может быть изменен: его нельзя удалить или переименовать, невозможно создать ссылку на этот файл и данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может установить или очистить этот атрибут.
В этом случае происходит что-то еще
Это похоже на работу,
> lsattr 1
-----a---------- 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
rmdir: failed to remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
> chattr -a 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
> lsattr 2
---D-ad--j--T--- 2/#1589030
> chattr -D -a -d -j -T 2/\#1589030
> rmdir 2/\#1589030
Попробуйте стать пользователем, который владеет им, чтобы удалить его
sudo -u 6666 -g 19312 rm -rf ./#1589030