Date: Fri, 13 Sep 2013 16:19:30 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: J David <j.david.lists@gmail.com> Cc: "freebsd-fs@freebsd.org" <freebsd-fs@FreeBSD.org>, freebsd-stable <freebsd-stable@FreeBSD.org> Subject: Re: zfs_enable vs zfs_load in loader.conf (but neither works) Message-ID: <523310E2.4050702@FreeBSD.org> In-Reply-To: <CABXB=RTz6jM=B895Bo6Kp-ZAf2pvTZkm-HfS=PrfX=aMKqjMbw@mail.gmail.com> References: <CABXB=RTz6jM=B895Bo6Kp-ZAf2pvTZkm-HfS=PrfX=aMKqjMbw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
First, a note that below I try to reply not only to this specific message but to the whole thread. on 09/09/2013 04:02 J David said the following: > After setting up a new machine to boot from a ZFS root using the 9.1 > install, it worked fine, but when the kernel & world was updated to > releng/9.2, it stopped booting. The pool is called "data" and the > root partition is "data/root." > > Under 9.1 it had in loader.conf: > > zfs_load="YES" > vfs.root.mountfrom="zfs:data/root" > > Under 9.2-RC3, the same config results in a panic: > > Trying to mount root from zfs:data/root []… > init: not found in path > /sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init:/stand/sysinstall > panic: no init This is a very weird error. It means that kernel was able to mount data/root as a root filesystem, but couldn't find /sbin/init in it. Which can mean at least two different things: (1) some other filesystem was mounted instead of data/root because of some bug; (2) your data/root didn't actually contain valid FreeBSD installation. I set up a test system exactly the way you described above and I can not reproduce this behavior. Just in case, I used mfsbsd zfsinstall and that's how it creates and configures a pool by default. > If this is changed (as many Google hits recommend) to: > > zfs_enable="YES" I think that this was discussed enough in the thread and the right conclusions have been already reached. I just have two general comments: - you don't have to trust everything that is written "on the internet". Prefer to use more or less authoritative sources: FreeBSD documentation, FreeBSD wiki, posts by FreeBSD developers and alike - it surprises me how many people who don't understand how the code works feel that they can give advices to other people - when *I* used the following query https://www.google.com/search?q=%22zfs_enable%22+%22loader.conf%22 I could not find a single suggestion to put zfs_enable into loader.conf in the first dozen of results (references to this thread excluded) > vfs.root.mountfrom="zfs:data/root" > > It seems like ZFS doesn't get loaded, so it fails instead with: > > Trying to mount root from zfs:data/root []… > Mounting from zfs:data/root failed with error 2: unknown file system. > > If the "?" mountroot> option is used, 50 devices are listed, none of > which are ZFS. And the "unknown file system" response comes from > vfs_byname returning NULL for zfs. Obvious (as already established). > (If both zfs_enable and zfs_load are set to "YES" then it fails as the > zfs_load case.) Obvious (as already established). > The system is using update-to-date zpool (v5000 / feature flags), and > all the updated bootblocks from the releng/9.2 build. zpool.cache is > correct, the zpool imports fine from the 9.2-RC3 live cd. The zpool's > bootfs is set correctly, the zfs mountpoint of data/root is / . And, > of course, init is present and health in data/root. The system booted > fine until updating to 9.2. I just wish that I could reproduce this problem using exactly the same setup... But I can't. Perhaps there are any other special things about your configuration - like having other pools or other disks/partitions that are not used by 'data' pool. Any other non-standard things... -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?523310E2.4050702>