В начало блога На главную

panic: ffs_blkfree: freeing free block

Недавно сервер под управлением freebsd 7.3 выдал panic: ffs_blkfree: freeing free block и ушел в рестарт насколько раз подряд. Решением проблемы послужила полная проверка hdd и исправления ошибок в файловой системе. fsck -y в single mode режиме. Долго, уныло, но действенно.

fsck — команда UNIX, которая проверяет и устраняет ошибки в файловой системе.

Синтаксис: fsck [ -sAVRTNP ] [ -C [ fd ] ] [ -t fstype ] [filesys … ] [—] [ fs-specific-options ]

fsck используется для проверки и исправления ошибок одной и \ или нескольких файловых систем. filesys может быть именем устройства (например, /dev/sda9), точкой монтирования этого устройства (/, /mnt/sda9), меткой раздела или UUID-индексом. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для полной проверки всех дисков.

Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Это эквивалентно опции -As. Код, возвращаемый fsck, является суммой следующих условий:

  • 0 — нет ошибок
  • 1 — ошибки файловой системы исправлены
  • 2 — необходима перезагрузка системы
  • 4 — ошибки файловой системы не исправлены
  • 8 — в процессе проверки произошли ошибки
  • 16 — неверное использование команды либо синтаксическая ошибка
  • 32 — fsck была прервана пользователем
  • 128 — ошибка разделяемых объектов

Код, возвращаемый fsck при проверке нескольких файловых систем, получается с помощью применения побитовой операции «или» к кодам, возвращаемым каждой проверкой. Фактически fsck представляет собой оболочку для различных средств проверки файловой системы (fsck.fstype). Программа для проверки конкретной системы ищется последовательно в /sbin, /etc/fs, /etc и в директориях, указанных в переменной окружения $PATH.

Рассказать: