При перезапуске сервера на консоли выводятся следующие данные:
ZFS: i/o error - all block copies unavailable
ZFS: failed to read pool zroot directory object
qptzfsboot: failed to mount default pool zroot
FreeBSD/x86 boot
ZFS: i/o error - all block copies unavailable
ZFS: can't fild dataset 0
Default: zroot/<0x0>
boot:
Я загрузил хост с usb livecd и смонтировал каталог / etc в / tmp, чтобы разрешить доступ по ssh:
ifconf -a # get available i/f names
ifconf em0 inet 192.168.216.46
route add default 192.168.216.1
hostname vhost06.internal
mkdir /tmp/etc
mount_unionfs /tmp/etc /etc
echo 'PermitRootLogin yes' >> /etc/sshd_config
passwd
Changing local password for root
New Password:
Retype New Password:
service sshd onestart
Нет доступных для импорта пулов zfs:
root@vhost06:~ # zpool status
no pools available
root@vhost06:~ # zpool list
no pools available
root@vhost06:~ # zfs list
no datasets available
gpart
показывает эту геометрию:
=> 40 15628053088 ada0 GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 ada1 GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 ada2 GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 ada3 GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 diskid/DISK-VAGWJ6VL GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 diskid/DISK-VAGWV89L GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 diskid/DISK-VAHZAD2L GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 40 15628053088 diskid/DISK-VAH3PXYL GPT (7.3T)
40 1024 1 freebsd-boot (512K)
1064 984 - free - (492K)
2048 16777216 2 freebsd-swap (8.0G)
16779264 15611273216 3 freebsd-zfs (7.3T)
15628052480 648 - free - (324K)
=> 1 30240767 da0 MBR (14G)
1 1600 1 efi (800K)
1601 2012560 2 freebsd [active] (983M)
2014161 28226607 - free - (13G)
=> 0 2012560 da0s2 BSD (983M)
0 16 - free - (8.0K)
16 2012544 1 freebsd-ufs (983M)
=> 1 30240767 diskid/DISK-00241D8CE51BB011B9A694C1 MBR (14G)
1 1600 1 efi (800K)
1601 2012560 2 freebsd [active] (983M)
2014161 28226607 - free - (13G)
=> 0 2012560 diskid/DISK-00241D8CE51BB011B9A694C1s2 BSD (983M)
0 16 - free - (8.0K)
16 2012544 1 freebsd-ufs (983M)
Как мне отсюда выздороветь?
<------ конец исходного вопроса
Я добился некоторого прогресса и мне удалось импортировать и смонтировать один корневой набор данных - iocage. Это загрузка в системе zfs но я не могу найти набор данных, содержащий корневую файловую систему, поэтому я не могу зайти в / var / log, чтобы увидеть, есть ли там что-нибудь:
mkdir /tmp/zroot # /tmp is a writable file system
zpool -f zroot # force the zpool import
zfs set mountpoint=/tmp/zroot zroot # mount the imported pool in a writable fs
zfs mount -a # find and mount all the datasets
ll /tmp/zroot
total 12
drwxr-xr-x 9 root wheel 11 Feb 27 13:09 iocage/
К счастью, все самое важное находится в /zroot/iocage
поскольку хост просто действует как платформа для тюрьмы. Однако меня беспокоит отсутствие корневого набора данных.
А zpool status
показал zroot без ошибок.
Затем я перенес набор данных iocage в другую систему, используя zfs send
.
zfs snapshot -r zroot/iocage@vh6iocsend1
zfs send -R zroot/iocage@vh6iocsend1 | ssh 192.168.216.45 zfs receive zroot/iocagev6
Это заняло некоторое время, но завершилось успешно.
Теперь мне нужно запустить проблемный хост. Этот хост был перезапущен вчера в полдень без проблем. Я не помню, как бегал freebsd-update fetch
, но даже если бы у меня было, fetch не мог бы доставить, так как система уже была на 12.1p2
Мне все еще нужна помощь в загрузке хоста.
<----------
Дополнительные замечания:
Мне удалось смонтировать весь zpool
используя altroot
вариант zpool import
:
import
для автоматического монтирования любых наборов данных: zpool import -o altroot=/tmp/altroot -N -a
./
набор данных сначала: zfs mount zroot/ROOT/default
.zfs mount -a
.Целиком zroot
файловая система пула теперь доступна по адресу /tmp/altroot
.
Я использовал это с zfs send
переместить содержимое /var
к другому хозяину. Собственно, я отправил весь пул.
Однако исходная система по-прежнему не загружается.
В крайнем случае я вытащил четыре жестких диска с хоста, который не смог загрузиться, и поместил их на идентично настроенный сервер. Этот сервер загрузился с этих жестких дисков. Видно аппаратная проблема.
На новом хосте все еще есть аномалия: если отсек 1 занят, система будет загружаться только в том случае, если хотя бы один из отсека 0 или отсека 2 также будет занят. Конфигурация 0-, 1A, 2-, 3B не загружается. Я не понимаю, почему это так.