У меня есть микросервер HP gen8 под управлением FreeBSD с зеркальным загрузочным носителем: один USB-накопитель (16 ГБ) и одна карта microSD (16 ГБ). Недавно флешка показала ошибки контрольной суммы, поэтому я заменил ее, но под рукой у меня была только флешка на 32 Гб. После повторного использования zpool кажется довольным, но я не могу написать загрузочный код, а gpart даже не распознает носитель.
В деталях.
Это состояние zpool на момент возникновения проблемы:
Checking status of zfs pools:
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
freenas-boot 14.5G 791M 13.7G - - 5% 1.00x ONLINE -
freising 928G 84.6G 843G - 6% 9% 1.00x ONLINE /mnt
pool: freenas-boot
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://illumos.org/msg/ZFS-8000-9P
scan: scrub repaired 213K in 0h15m with 0 errors on Thu Mar 23 04:00:56 2017
config:
NAME STATE READ WRITE CKSUM
freenas-boot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0p2 ONLINE 0 0 3
da1p2 ONLINE 0 0 0
errors: No known data errors
Я выключил машину, заменил флешку на 32 Гб, перезагрузил. статус zpool дал:
NAME STATE READ WRITE CKSUM
freenas-boot DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
3278622582862864884 UNAVAIL 0 0 0 was /dev/da0p2
da1p2 ONLINE 0 0 0
Хорошо, поэтому я сказал zpool использовать новый носитель:
sudo zpool replace freenas-boot 3278622582862864884 /dev/da0
(zpool не позволял мне использовать '/dev/da0p2')
Потребовалось около 8 часов, чтобы восстановить эту штуку, теперь zpool, похоже, доволен:
sudo zpool status -xv
all pools are healthy
Но я не могу написать загрузочный код:
sudo gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
gpart: No such geom: da0.
gpart даже не распознает новую флешку:
sudo gpart status
Name Status Components
ada0p1 OK ada0
ada0p2 OK ada0
ada1p1 OK ada1
ada1p2 OK ada1
da1p1 OK da1
da1p2 OK da1
Как лучше всего поступить? Я совершенно не уверен, что я должен контролировать через gpart, а что лучше оставить zfs и его магии.