Восстановление данных с ZFS

«Ничто не вечно под луной. Винчестер тоже может сдохнуть,» — говорил один мой преподаватель в университете. Вот и винчестеру моей родственницы пришло время сдыхать. Выразилось это в том, что OpenSolaris при загрузке уходил в перезагрузку из-за паники ядра.

Для выяснения причины паники я запустил ядро в отладочном режиме, добавив при загрузке средствами GRUB в строку $kernel параметр -kd (рисунок 1). Ядро вывело на экран информацию, по поводу чего оно паникует (рисунок 2). Судя по стеку вызовов функций, ошибка произошла внутри модуля zfs, по всей видимости, потому что он нашел на диске неожиданные для себя данные.

На диске находились ценные фотографии, которых не было в других местах. Требовалось их оттуда извлечь. Попробовал загрузиться с LiveCD (OpenSolaris 2009.06 и Nexenta 3), после выполнения команды импортирования пула (zpool import -f rpool) получил тот же результат — ядро паникует и выполняется перезагрузка. Никакой комбинацией параметров команды zpool import мне не удалось устранить панику.

Порывшись на различных сайтах, нашел, что панику можно отключить, добавив в /etc/system строки:

aok=1
zfs_recover=1

Но так как дело было с LiveCD, то пришлось выставить эти флаги средствами встроенного в ядро отладчика. Флаг aok выставился без проблем (рисунок 3), а вот для установки zfs_recover требуется дождаться загрузки модуля ядра zfs. Поэтому была поставлена соответствующая точка останова.

После установки флагов загрузка продолжается без видимых отличий. Команда импортирования пула завершилась успешно (рисунок 5). После того как все ценные данные были скопированы на флешку, я решил попробовать выполнить проверку пула (рисунок 6). Команда zpool scrub запускает проверку, а состояние процесса проверки можно наблюдать командой zpool status.

После окончания проверки, zpool status написал, что все ошибки устранены(рисунок 7), однако система все равно загрузилась с паникой. В чем причина, разбираться не стал. Поставлю на новый жесткий диск OpenIndiana, когда выйдет релиз.

Рисунок 1 - Запуск ядра в отладочном режиме

Рисунок 2 - Причина kernel panic

Рисунок 3 - Флаг aok выставился без проблем

Рисунок 4

Рисунок 5 - Команда импортирования пула завершилась успешно

Рисунок 6 - Проверка пула

Рисунок 7

Данную статью вы можете обсудить в этой ветке форума.

Speak Your Mind