GPT boot with ZFS RAIDZ "ZFS: i/o error - all block copies
unavailable"
Emil Smolenski
ambsd at raisa.eu.org
Mon Nov 16 16:43:59 UTC 2009
After installkernel/installworld my machine stops booting with the
following error message:
ZFS: i/o error - all block copies unavailable
ZFS: can't read MOS
ZFS: unexpected object set type lld
FreeBSD/i386 boot
Default: pgpool:/boot/kernel/kernel
boot:
ZFS: unexpected object set type lld
This is 7.2-STABLE, amd64, zpool on single logical device (ciss(4),
hardware RAID5), root on ZFS (using zfsboot). After the failure I booted
the server from an external device with UFS and then I did rollback of
/usr and / datasets. The machine was still not bootable. Scrub went
without errors.
Then I read this thread and applied Robert Noland's and Matt Reimer's
patches -- and they didn't help. Then I grabbed following files from
-CURRENT (svn rev. 198420):
/sys/boot/i386/zfsboot/zfsboot.c
/sys/boot/zfs/zfs.c
/sys/boot/zfs/zfsimpl.c
/sys/cddl/boot/zfs/zfsimpl.h
and I did:
# cd /usr/src/sys/boot/
# make obj ; make depend ; make
# cd i386/loader
# make install
# cd /usr/src/sys/boot/i386/zfsboot
# make install
# sysctl kern.geom.debugflags=16
# dd if=/boot/zfsboot of=/dev/da0 count=1
# dd if=/boot/zfsboot of=/dev/da0 skip=1 seek=1024
# reboot
(is this procedure of updating zfsboot correct?)
After that, an error was slightly different (printf was fixed):
ZFS: i/o error - all block copies unavailable
ZFS: can't read MOS
ZFS: unexpected object set type 0
FreeBSD/i386 boot
Default: pgpool:/boot/kernel/kernel
boot:
ZFS: unexpected object set type 0
Additional information:
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
pgpool 4.06T 2.17T 1.89T 53% ONLINE -
# zpool status
pool: pgpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
pgpool ONLINE 0 0 0
da0 ONLINE 0 0 0
errors: No known data errors
# zfs list pgpool/ROOTFS
NAME USED AVAIL REFER MOUNTPOINT
pgpool/ROOTFS 568M 1.80T 55.3M legacy
# zpool get all pgpool
NAME PROPERTY VALUE SOURCE
pgpool size 4.06T -
pgpool used 2.17T -
pgpool available 1.89T -
pgpool capacity 53% -
pgpool altroot - default
pgpool health ONLINE -
pgpool guid 3920915583055727184 -
pgpool version 13 default
pgpool bootfs pgpool/ROOTFS local
pgpool delegation on default
pgpool autoreplace off default
pgpool cachefile - default
pgpool failmode wait default
pgpool listsnapshots off default
loader.conf:
usb_load="YES"
uplcom_load="YES"
umass_load="YES"
ugen_load="YES"
ukbd_load="YES"
random_load="YES"
loader_color="YES"
vfs.root.mountfrom="zfs:pgpool/ROOTFS"
zfs_load="YES"
autoboot_delay="2"
FreeBSD 7.2-STABLE #0: Fri Jun 19 13:27:29 CEST 2009
(as I mentioned above, there was the rollback)
ciss0: <HP Smart Array P400> port 0xe800-0xe8ff mem
0xdef00000-0xdeffffff,0xdeeff000-0xdeefffff irq 35 at device 0.0 on pci4
ciss0: [ITHREAD]
da0 at ciss0 bus 0 target 0 lun 0
I would rather not to upgrade the whole system to -CURRENT. What should I
do in this situation? Is there any other patch that I could apply or any
workaround for this issue? Is there possibility to switch from zfsboot to
gptzfsboot without loosing data? Or maybe I did something wrong?
--
am
More information about the freebsd-current
mailing list