Не удаляемый каталог в lost + found

10

Как я могу удалить этот каталог? Я сделал, 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
огорчение
источник
Как /tmpна том же громкости? Не могли бы вы опубликовать вывод df? Кроме того, пожалуйста, опубликуйте вывод sudo perl -MFile::Path -e 'rmtree("/tmp/foo") || die "$!"'на случай, если мы получим более информативное сообщение об ошибке.
тердон
@terdon Я добавил вывод к вопросу. Как вы думаете, результат даже немного полезен?
Горе
1
Что ж, dfвыходные данные показывают нам, что ваш / tmp` на самом деле является обычным каталогом, /а не tmpfs, который является настройкой по умолчанию. Это удивительно, но объясняет, почему вы можете скопировать каталог /tmpи почему он выживает после перезагрузки. perlВыход на самом деле не добавить много, нет, но это стоит выстрел. Я хватаюсь за соломинку здесь.
тердон
оффтоп: в Ubuntu /tmpэто нормальный каталог по умолчанию. Это сделано для того, чтобы предотвратить его заполнение до 100% и для экономии оперативной памяти. Он очищается при запуске. Такое поведение существует давно.
горе
Я бы попробовал загрузиться с livecd, а потом ковыряться в файловой системе.
подмастерье Компьютерщик

Ответы:

8

Одной из возможностей является неизменный флаг в случае файловой системы 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? Буду признателен, если вы скачаете образ, смонтируете его и попробуете сами.
горе
Это не «iso образ», это результатdd if=/dev/sda1 of=broken.iso
Горе
Да, вы, вероятно, правы, извините! У вас была возможность воспроизвести проблему?
горе
1
Да, и это выглядит действительно странно.
JJ Hakala
Теперь я чувствую себя настолько глупо :( Но вы мой герой дня, мистер Джей Джей Хакала
Горе
1

попробуйте стать пользователем, который владеет им, чтобы удалить его

sudo -u 6666 -g 19312 rm -rf ./#1589030
Амиас
источник
sudo -u '#6666' -g '#19311' rm -rf \#1589030 rm: cannot remove '#1589030': Permission denied sudo -u '#6666' -g '#19311' chmod 777 \#1589030 chmod: cannot access '#1589030': Permission denied
горе
Вы должны сделать, чем пользователь, если он не существует
Amias
Создание пользователя и группы с этими UID и GID не помогло
Горе