kern/166566: zfs split renders 2 disk (MBR based) mirror unbootable
George Hartzell
hartzell at alerce.com
Mon Apr 2 03:10:12 UTC 2012
>Number: 166566
>Category: kern
>Synopsis: zfs split renders 2 disk (MBR based) mirror unbootable
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Apr 02 03:10:11 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: George Hartzell
>Release: 9-STABLE
>Organization:
>Environment:
FreeBSD delicious.alerce.com 9.0-STABLE FreeBSD 9.0-STABLE #0: Mon Mar 26 22:24:31 PDT 2012 root at zfshive.alerce.com:/usr/obj/usr/src/sys/DELICIOUS amd64
>Description:
I have a mac pro running 9-STABLE. Two disks are part of a bootable zfs mirror. They're MBR based.
------------------------------------------------------------------------------------
(delicious)[8:00pm]~>>gpart show ada1
=> 63 1953525105 ada1 MBR (931G)
63 1953525105 1 freebsd [active] (931G)
(delicious)[8:01pm]~>>gpart show ada1s1
=> 0 1953525105 ada1s1 BSD (931G)
0 1941962752 1 freebsd-zfs (926G)
1941962752 11562353 2 freebsd-swap (5.5G)
------------------------------------------------------------------------------------
The mirror is currently resilvering, unrelated to this bug report.
------------------------------------------------------------------------------------
(delicious)[8:01pm]~>>zpool status zroot
pool: zroot
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Sun Apr 1 19:55:59 2012
12.9G scanned out of 523G at 34.7M/s, 4h11m to go
12.9G resilvered, 2.47% done
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada3s1a ONLINE 0 0 0
ada1s1a ONLINE 0 0 0 (resilvering)
errors: No known data errors
------------------------------------------------------------------------------------
/boot/loader.conf contains:
vfs.root.mountfrom="zfs:zroot"
and zroot has it's bootfs set to zroot.
This system boots from either disk and runs happily.
I tried a zpool split on it
zpool split zroot zsplitroot
and it booted up until the kernel tried to mount the root filesystem and it failed.
>How-To-Repeat:
I believe that setting up a bootable zfs mirror and running zpool split on it should repeat the problem. It does for me.
>Fix:
I was able to repair the situation by booting from a 9.0 DVD, loading the zfs kernel module, doing
zpool import
which showed both pools
zpool import -f -o cachefile=/tmp/zpool.cache -o altroot=/mnt zroot
mount -t zfs zroot /mnt
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
then destroying the splitroot pool and attaching it back to the mirror.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list