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

Я пытаюсь использовать e2fsck для большого raid-массива, размером 2 ТБ и использующего GPT для разделения (из-за размера).

В системе установлено только 1 ГБ оперативной памяти, и в настоящее время я не могу добавить больше.

Проблема в том, что вскоре после запуска fsck на устройстве я получаю сообщение об ошибке:

Error storing directory block information (inode=115343515, block=0, num=108120142): Memory allocation failed
e2fsck: aborted

После небольшого онлайн-поиска и исследований я наткнулся на эту запись ниже:

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

Я последовал совету после просмотра страницы MAN для e2fsck.conf и в основном создал файл /etc/e2fsck.conf, который выглядит следующим образом:

[scratch_files]
directory = /var/cache/e2fsck

и снова попробовал fsck, убедившись, что создал /var/cache/e2fsck directry. После повторного запуска fsck и просмотра доступной памяти, использования процессора и размера каталога /var/cashe/e2fsck... я могу сказать, что это определенно очень помогло... но все равно в конечном итоге не удалось выдать ту же ошибку. В основном это помогло замедлить потребление памяти, но не свело на нет все это вместе.

Поэтому я попытался поиграть с флагами сложения для e2fsck.conf использование файла:

dirinfo = false 

или же

dirinfo = true

а также

icount = false

или же

icount = true

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

Я что-то пропустил? Я согласен с тем, что fsck занимает много времени... Но мне нужно, чтобы он завершился, а не вывел ошибку.

3 ответа

Если вы можете добавить пространство подкачки в систему. Fsck займет безумно много времени, но в конечном итоге он завершится. В следующий раз нарежьте вашу файловую систему на более мелкие части.

  1. Вы добавили эти флаги в раздел [scratch_files]? Кроме того, попробуйте использовать "numdirs_threshold " для контроля, когда он начинает использовать рабочие файлы.
  2. Иногда утилиты e2fs слишком устарели в установленной системе (например, Centos4). Вы можете загрузить образ восстановления с более новой версией утилит ядра и файловой системы. Настройте e2fsck.conf и позвольте e2fsck использовать его.

НТН.

Является ли массив внутренним или внешним хранилищем? Если это внешнее / подключенное хранилище, попробуйте подключить его в другую коробку с большим объемом оперативной памяти для fsck, Поочередно разделите ваши настройки и разбейте их на более мелкие куски. Вы можете смонтировать несколько разделов в одной "резервной" иерархии файловой системы. Вашим клиентам и программному обеспечению для резервного копирования не нужно знать, что они касаются нескольких или отдельных файловых систем.

Если это хранилище не получается fsckВ процессе загрузки убедитесь, что вы отключили все приложения, которые могут потреблять вашу драгоценную память до fsck выполнен.

Другие вопросы по тегам