Недостаточно памяти для запуска fsck на больших файловых системах

13

Я присматриваю за старой коробкой Debian linux (работающей etch) с 512 МБ ОЗУ, но с большим количеством внешнего хранилища. Одна файловая система ext3 имеет размер 2,7 ТБ, и fsck не может ее проверить, поскольку у нее недостаточно памяти с такой ошибкой, как эта:

   Ошибка при выделении массива блоков каталога: ошибка выделения памяти
   e2fsck: прервано

Я добавил раздел подкачки 4 ГБ, и он все еще не завершен, но это 32-разрядное ядро, поэтому я не ожидаю, что добавление еще поможет.

Кроме загрузки в 64-битное ядро, есть ли другие способы заставить fsck завершить проверку?

Timb
источник

Ответы:

12

64-битное ядро ​​и большое количество оперативной памяти позволят fsck быстро и качественно завершить работу. С другой стороны, теперь в e2fsck есть опция, которая скажет ему хранить все промежуточные результаты в каталоге, а не в оперативной памяти, что очень помогает. Создайте /etc/e2fsck.confсо следующим содержанием:

[scratch_files]
directory = /var/cache/e2fsck

(И, конечно же, убедитесь, что каталог существует и находится в разделе с несколькими гигабайтами свободного места). e2fsck запустит SLLOOOOWWWWWWW, но, по крайней мере, завершит.

Конечно, это не будет работать с корневой FS, но если у вас есть своп, то вы все равно уже не монтируете корневую FS.

ombble
источник
6

Я закончил тем, что попробовал то, что предложил Womble Вот еще некоторые подробности, которые могут быть полезны, если вы, как и я, ранее не видели этой новой функциональности в e2fsck.

Опция конфигурации "scratch_files" для e2fsck стала доступна когда-то в версии 1.40.x. (В нашем случае нам пришлось обновить до последней версии Debian, чтобы получить эту функциональность.)

Наряду с предложенной опцией «directory = / var / cache / e2fsk» существуют некоторые дополнительные параметры конфигурации, позволяющие точно настроить использование хранилища чистых файлов. Я использовал «dirinfo = false», поскольку файловая система имела большое количество файлов, но не такое большое количество каталогов. Если ситуация обратная, то подойдет вариант «icount». Все эти параметры описаны в справочной странице для e2fsck.conf.

Кстати, Тед Тсо написал об этих опциях в этой теме .

Я обнаружил, что e2fsck работает очень медленно, намного больше, чем предсказывал Тед. Он работал с загрузкой процессора 99,9% большую часть времени (на чрезвычайно медленном старом процессоре), что говорит о том, что хранение этих структур данных на диске вместо памяти не было основной причиной замедления. Возможно, что-то еще о том, что хранилось в файловой системе, сделало e2fsck особенно медленным. В конце концов, я отказался от проверки файловой системы; файловая система должна была быть проверена, но ошибок не было (насколько я знаю), поэтому я собираюсь проверить ее в более удобное время, когда мы можем позволить себе отключение на неделю.

Timb
источник
Интересно, лучше ли btrfs в этом? Инструменты ext4 были явно не в масштабе. У меня недавно была эта проблема с 2 ГБ ОЗУ
user1133275