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

08.12.2012

ZFS crash (rm something "error: 122")

Ну что возродим традицию писать тут что нибудь, вроде неплохая была затея. Репертуар останется примерно тот же, а там гладишь и новости на bsdnir опять пойдут :)

Начать прийдётся не совсем с весёлого, но зато поучительного.
Где то по весне, купил я себе новый ноут и чтоб не отставать от прогресса, даже зафигачил в него SSD, а так как он поддерживает, новую фичу с mSATA, то удалось получить двухдисковую конфигурацию. Это конечно с одной стороны удобно, а с другой немного расслабляет и позволяет, вот уже фик знает сколько не сделать основной системой FreeBSD.
Пока оно живёт в весьма интересном варианте, FreeBSD установлена на SSD диск и загружается либо из BIOS, либо в Win версии VirtualBox с прямым доступом к этому же SSD. Почему так и как сотворить, может расскажу отдельно, но как следствие, это порождает ряд проблем со стабильностью.

И вот тут похоже с разбегу набежал на очередные грабли. Задумал обновить систему и даже вроде всё прекрасно собралось, но вот незадача, в свете r243800 система очень хотела что бы создали ещё одного юзера, вплоть до отказа дальше сотрудничать :)
Ну я человек не гордый и делал как попросили, но тут меня ждал сюрприз:
    Unknown error: 122
    # rm /etc/pwd.db.tmp
    Unknown error: 122
Гугл нам тут же подсказывает, что ошибка, прямо таки скажем, не редкая. Так же становится понятно, что беда стряслась с ZFS. zpool scrub к сожалению не сработал, что то он видно завис, или у меня просто раньше нервы сдали, запустил жесткую перезагрузку.
После загрузки меня ждал сюрприз, в виде:
Trying to mount root from zfs:x220pool []...
Mounting from zfs:x220pool failed with error 6.

 Loader variables:
    vfs.root.mountfrom=zfs:x220pool

 Manual root filesystem specification:
    :  [options]
        Mount  using filesystem
        and with the specified (optional) option list.

      eg. ufs:/dev/da0s1a
          zfs:tank
          cd9660:/dev/acd0 ro
            (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)

    ?               List valid disk boot devices
    .               Yield 1 second (for background tasks)
         Abort manual input

 mountroot>
К сожалению из этой загадки выбраться не удалось, максимум паника.
В виртуалке у меня так же есть диск, с инсталлером, если загрузится с него, то можно увидеть такие чудеса:
# zpool import
  pool: x220zpool
    id: 15260376675842801044
 state: ONLINE
status: The pool was last accessed by another system.
action: The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: http://illumos.org/msg/ZFS-8000-EY
config:

        data        ONLINE
          label/rpool  ONLINE

Тоесть, пул вроде как жив, ну да кем то используется. Но вот попытка его принудительно подключить, даёт куда более грустный результат:
zpool import error

После этого думаю стоит пожалеть об отсутствии бекапов, хотя там особо ничего важного и не было. И думать как бы организовать следующую версию получше и начать таки делать бекапы, на внешний носитель :)

В общем то это так лирика и прочий скулёж, если кто то до сюда дочитал, то пожалуй обращу внимание, что там вот в логах было интересное.
Уже где то с пол года, наверное, проект FreeBSD начал в сообщениях об ошибках ZFS использовать базу Fault Management Architecture (FMA) Message Registry проекта illumos