Назад | Перейти на главную страницу

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

Я пытаюсь использовать e2fsck в большом массиве рейдов размером 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 директри. После повторного запуска fsck и просмотра доступной памяти, использования процессора и размера каталога /var/cashe/e2fsck... я могу сказать, что это определенно помогло ... но в конечном итоге все равно не удалось выдать ту же ошибку. По сути, это помогло снизить потребление памяти, но не свело на нет все вместе.

Итак, я попытался поиграть с флагами добавления для e2fsck.conf файл, используя:

dirinfo = false 

или

dirinfo = true

и

icount = false

или

icount = true

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

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

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

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

HTH.

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

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