Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Mar 2014 09:30:33 -0500
From:      Karl Denninger <karl@denninger.net>
To:        freebsd-stable@freebsd.org
Subject:   Re: Can ZFS boot from other than the root of a pool?
Message-ID:  <532AFB89.6060203@denninger.net>
In-Reply-To: <CAPS9%2BSti9F0waFjgCfXtkxz5zW8sDp8=rv=HZujovpp_wg4cmQ@mail.gmail.com>
References:  <532AF77A.9010204@denninger.net> <CAOjFWZ7xy01UXkPrB2wfN3=YMn9ToHL81a4SHzToa5sDV0YUqA@mail.gmail.com> <CAOjFWZ7=ZczHsjrLo2cLjQYAdwhD7wc3kz37GXarbMLeciMySA@mail.gmail.com> <CAPS9%2BSti9F0waFjgCfXtkxz5zW8sDp8=rv=HZujovpp_wg4cmQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]

On 3/20/2014 9:27 AM, Andreas Nilsson wrote:
> On Thu, Mar 20, 2014 at 3:19 PM, Freddie Cash <fjwcash@gmail.com> wrote:
>
>> Forgot to include the list in the original reply.
>>
>> Typos and terseness brought to you by the LG G2 running SlimKat.
>> ---------- Forwarded message ----------
>> From: "Freddie Cash" <fjwcash@gmail.com>
>> Date: Mar 20, 2014 7:17 AM
>> Subject: Re: Can ZFS boot from other than the root of a pool?
>> To: "Karl Denninger" <karl@denninger.net>
>> Cc:
>>
>>
>> On Mar 20, 2014 7:13 AM, "Karl Denninger" <karl@denninger.net> wrote:
>>> For a number of reasons having to do with backup strategy I want to mount
>> a ZFS root from "poolname/root" instead just "poolname."
>>> That works ok; I can set in /boot/loader.conf:
>>> vfs.root.mountfrom="zfs:zroot/root"
>>>
>>> But -- I cannot actually boot from there.  Unless the /boot directory is
>> in zfs:/zroot the system cannot find it, and I see no obvious way to
>> "teach" the loader that I want it to look in the filesystem under the top
>> level.
>>> This isn't a terrible pain as I can simply mount zroot on /mnt and then
>> copy zroot/root/boot over to zroot/boot whenever I make changes to the
>> kernel or boot environment (which is infrequent) but I'm wondering if I'm
>> missing something that would make booting directly from the filesystem
>> where root is specified to be possible.
>>> (Obviously until the loader.conf file is found the system doesn't know
>> where root is either, so this does look at first blush to be a "chicken and
>> egg" problem.)
>>
>> Read up on Boot Environments, install the beadm port, set the bootfs
>> property on the pool itself, and you'll be off to the races.
>>
> Yes. For quite some time. It is a bit easier on 9.2 and 10.0 and newer
> where there is no strict need for /boot/zfs/zpool.cache for the mount of /
> to succeed.
>
> I'm booting from tank/ROOT/10-STABLE-140310 om my workstation for example.
> To set it up (given the pool tank exists)
> zfs create -o mountpoint=none tank/ROOT
> zfs create tank/ROOT/yourpreferedname
> zpool set bootfs tank/ROOT/yourpreferedname tank
> make sure tank/ROOT/yourpreferedname has a "complete" install.
>
> Best regards
> Andreas
It LOOKS to me like this will work too:

zpool set bootfs tank/bootfs

... and in loader.conf (in /boot/loader.conf on tank/bootfs) set the 
root SOMEWHERE ELSE.

That has certain advantages, particularly if you want a GELI-encrypted root.

I'll play with this a bit.... (the ability to make upgrades much less 
dangerous in that an immediate-revert becomes pretty easy helps too)

-- 
-- Karl
karl@denninger.net



[-- Attachment #2 --]
0	*H
010	+0	*H
O0K030
	*H
010	UUS10UFlorida10U	Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1/0-	*H
	 customer-service@cudasystems.net0
130824190344Z
180823190344Z0[10	UUS10UFlorida10UKarl Denninger1!0	*H
	karl@denninger.net0"0
	*H
0
bi՞]MNԿawx?`)'ҴcWgR@BlWh+	u}ApdCFJVй~FOL}EW^bچYp3K&ׂ(R
lxڝ.xz?6&nsJ+1v9v/(kqĪp[vjcK%fϻe?iq]z
lyzFO'ppdX//Lw(3JIA*S#՟H[f|CGqJKooy.oEuOw$/섀$삻J9b|AP~8]D1YI<"""Y^T2iQ2b	yH)]	Ƶ0y$_N6XqMC 9՘	XgώjGTP"#nˋ"Bk100	U00	`HB0U0,	`HB
OpenSSL Generated Certificate0U|8˴d[20U#0]Af4U3x&^"408	`HB+)https://cudasystems.net:11443/revoked.crl0
	*H
gBwH]j\x`(&gW32"Uf^.^Iϱ
k!DQAg{(w/)\N'[oRW@CHO>)XrTNɘ!u`xt5(=f\-l3<@C6mnhv##1ŃbH͍_Nq
aʷ?rk$^9TIa!kh,D-ct1
00010	UUS10UFlorida10U	Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1/0-	*H
	 customer-service@cudasystems.net0	+;0	*H
	1	*H
0	*H
	1
140320143033Z0#	*H
	1sٴ6x?zǜuO0l	*H
	1_0]0	`He*0	`He0
*H
0*H
0
*H
@0+0
*H
(0	+710010	UUS10UFlorida10U	Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1/0-	*H
	 customer-service@cudasystems.net0*H
	1010	UUS10UFlorida10U	Niceville10U
Cuda Systems LLC10UCuda Systems LLC CA1/0-	*H
	 customer-service@cudasystems.net0
	*H

	*ׅQsCno6DZGuDF+Rsd[|~
q@̛Rޟ_	*~B!pp`PZǖ@3ғz*r?[5ޚ7	WnbxǯpEpK}_}ʍ݂Jbx?M|avþ4ũHNp-J\h$M{BklF;oAPޚ8{84Ԋ{@b]S
%ǃ;!Cwbjlu\0MܜzÀAS	IM}*?r18npo۽0!pRqwFGT)?:tq¯V&C[Xl&3箴3wwl
"x&/y]yg=L!J79)e6ncYE+.Kk]jo-A9K- T8
fg:۰j.*/
C>" bxwT

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?532AFB89.6060203>