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


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.


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

1

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

umount -l
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.