Date: Tue, 11 Nov 2008 15:35:22 +0200 From: Andriy Gapon <avg@icyb.net.ua> To: freebsd-geom@freebsd.org, freebsd-fs@freebsd.org Subject: Re: zfs: affected by geom_(mbr|bsd) => geom_part_(mbr|bsd) ? Message-ID: <49198A1A.3080600@icyb.net.ua> In-Reply-To: <4911C3E9.405@icyb.net.ua> References: <4911C3E9.405@icyb.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
on 05/11/2008 18:03 Andriy Gapon said the following: > Using GENERIC amd64 7-BETA2 system (installed from "official" ISO) I > partitioned my disk for ZFS root file system more or less as described here: > https://ish.com.au/solutions/articles/freebsdzfs > > Big difference is that I created a separate slice to contain a partition > for ZFS pool, so that ZFS pool is ad4s2d (and UFS2 boot is ad4s1a). > > Everything was fine, ZFS root was mounted as expected. > > Then I built a custom kernel with nooptions for GEOM_(BSD|MBR) and > options for GEOM_PART_(BSD|MBR). When I tried to boot this kernel it > couldn't mount ZFS root and I simply rebooted my machine when I stuck at > mountroot prompt (I couldn't enter UFS2 root because of unrelated > keyboard problem). > The boot was verbose and I didn't see any peculiar GEOM or GEOM_PART > messages (errors, warnings). > > I'll try to debug this further by booting into UFS root and running > gpart, but I'd like to ask for an advice upfront. So I did this. Here are some data: $ gpart show => 63 976773105 ad6 MBR (500.1GB) 63 12578832 1 freebsd [active] (6.4GB) 12578895 964189170 2 freebsd (493.7GB) 976768065 5103 - free - (2.6MB) => 0 12578832 ad6s1 BSD (6.4GB) 0 16 - free - (8.2KB) 16 2097152 1 freebsd-ufs (1073.7MB) 2097168 2097152 - free - (1073.7MB) 4194320 8384512 2 freebsd-swap (4.3GB) => 0 964189170 ad6s2 BSD (493.7GB) 0 16 - free - (8.2KB) 16 964189154 4 freebsd-swap (493.7GB) $ zpool status pool: tank state: UNAVAIL status: One or more devices could not be opened. There are insufficient replicas for the pool to continue functioning. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-D3 scrub: none requested config: NAME STATE READ WRITE CKSUM tank UNAVAIL 0 0 0 insufficient replicas ad6s2d UNAVAIL 0 0 0 cannot open So gpart sees ad6s2d perfectly well, it has the same parameters as disklabel previously reported and /dev/ad6s2d exists. But zfs "cannot open" it. What I did next was: 1. reboot into "disklabel" kernel single-user 2. zpool export tank 3. reboot into gpart kernel single-user 4. zpool import - it saw tank correctly 5. zpool import tank 6. profit! :-) As I see it, zpool.cache contained something about ad6s2d that prevented gpart ad6s2d from being recognized as the same device as "disklabel" one. I really wonder what that could have been? Or maybe gpart reported some subtle property of the device differently... -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49198A1A.3080600>