Как очистить необработанный список инодов?

17

Я попытался смонтировать ранее доступную только для чтения файловую систему для чтения и записи :

mount -o remount,rw /mountpoint

К сожалению это не сработало:

mount: /mountpoint not mounted already, or bad option

dmesg доклады:

[2570543.520449] EXT4-fs (dm-0): Couldn't remount RDWR because of unprocessed orphan inode list.  Please umount/remount instead

А umountтоже не работает

umount /mountpoint
umount: /mountpoint: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

К сожалению, ни один lsofиз них fuserне показывает никакого процесса, обращающегося к чему-либо, расположенному под точкой монтирования.

Итак - как я могу очистить этот необработанный список потерянных, чтобы иметь возможность снова смонтировать файловую систему без перезагрузки компьютера?

БМК
источник
1
Вы уже пробовали fuser -km /mountpoint? Осторожно, однако, флаг -k уничтожит все процессы, обращающиеся к этому каталогу.
Ричард Келлер
Можете ли вы дать немного больше информации о том, из чего состоит dm-0?
худой
У меня такое чувство, что я знаю, что происходит, но вы можете сказать мне, была ли файловая система изначально rw, перемонтирована (из-за ошибки или чего-то еще) ro, а теперь вы пытаетесь снова запустить rw?
Мэтью Ифе
@Mlfe: файловая система была ранее перемонтирована roпо назначению. Это файловая система в LVM, содержащая ежедневный моментальный снимок резервной копии, который будет установлен во rwвремя операции резервного копирования и roпосле завершения резервного копирования.
Bmk

Ответы:

6

Вы очищаете необработанный список потерянных инодов, размонтируя и перемонтируя файловую систему.

Расширенное обсуждение в списке рассылки Linux-ext4 имеет больше информации о том, что это сообщение и почему это может показаться. Короче говоря, произошло одно из двух: либо вы столкнулись с ошибкой в ​​ядре, либо, что более вероятно, какое-то повреждение файловой системы произошло один из предыдущих раз, когда вы перемонтировали файловую систему только для чтения. Возможно, именно поэтому система думает, что что-то все еще использует файловую систему, а ее нет.

Если прошел год, а вы до сих пор не перезагрузили машину, просто откажитесь и запланируйте время обслуживания.

Майкл Хэмптон
источник
Тем временем я запланировал окно технического обслуживания и перезагрузил машину. Это решило проблему (я не ожидал ничего другого ...). Я приму ваш ответ. Возможно, вы правы в том, что произошла некоторая повреждение файловой системы - хотя я не могу доказать это.
BMK
25

Если вы используете ext2 / ext3 / ext4, вы можете использовать e2fsckдля очистки потерянных inode:

e2fsck -f

Для reiserfs, вы можете использовать, reiserfsckчто также очистит осиротевшие иноды.

Ричард Келлер
источник
Не уверен, почему это было отклонено, возможно, предоставить причину для понижения? Запуск e2fsck очищает потерянные inode, которые вы увидите в выводе консоли, clearing orphaned inode XXXXгде XXXX - это номер inode. Вы можете легко запустить e2fsck без перезагрузки системы. После запуска e2fsck вы сможете перемонтировать раздел.
Ричард Келлер
2
Спасибо, большое спасибо .. Я часами разбираюсь с ошибкой. Выполнение 'e2fsck -f / dev / sda1' исправило для меня потерянные узлы вместе с некоторыми другими исправлениями. Я просто сказал «да» всем и теперь отлично работает :)
whitehat
1
Большое спасибо!!. Ваши команды исправили только для чтения VirtualBox диск VM после неудачной установки новой версии VirtualBox: sudo e2fsck -f / dev / sda1
nine9five
2
Отлично, у меня сработало на корневом разделе. Принятый ответ (перезагрузка) не сработал один. Мне пришлось перезагрузиться после e2fsck, так что, похоже, вам все еще нужно окно обслуживания.
AdamS
1
Лучший ответ, чем принятый. Это отлично сработало для моего VPS. Нашел много ошибок и исправил их, потом перезагрузил и все снова работает. Спас мой день.
Мозг Foo Long
6

e2fsck -f <mount point> не сработает

Сначала выясните точки монтирования с

sudo mount -l

Тогда fsck диск прямо.

Например для меня

sudo e2fsck -f /dev/xvda2
Ганеш Кришнан
источник
Когда вы гуглите проблему и придете к собственному решению на stackoverflow. Моя жизнь теперь завершена.
Ганеш Кришнан
1

Я бы порекомендовал сначала принудительно размонтировать раздел, т. Е. Использовать опцию -f, а запустить проверку файловой системы с помощью fsck.

wolfgangsz
источник
1
К сожалению, umount -fтоже не удалось. Сообщение об ошибке такое же, как и у простого umount.
BMK
1

Вы, вероятно, должны попробовать ленивую размонтирование, то есть:

umount -l

источник