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.