Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 Oct 2014 00:52:20 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Karl Denninger <karl@denninger.net>
Cc:        freebsd-stable@FreeBSD.org
Subject:   Re: Encrypted (GELI) root on ZFS troubles
Message-ID:  <542C7794.8040502@FreeBSD.org>
In-Reply-To: <542C71C9.1050907@denninger.net>
References:  <542C71C9.1050907@denninger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 02/10/2014 00:27, Karl Denninger wrote:
> So here's the fun part of what I'm trying to do (and getting frustrated
> with)
> 
> I have set up a GPT disk with the following setup:
> 
> =>       34  625142381  da2  GPT  (298G)
>          34          6       - free -  (3.0K)
>          40       1024    1  freebsd-boot  (512K)
>        1064    4194304    2  freebsd-zfs  [bootme]  (2.0G)
>     4195368  134217728    3  freebsd-swap  (64G)
>   138413096  486729312    4  freebsd-zfs  (232G)
>   625142408          7       - free -  (3.5K)
> 
> Then on freebsd-boot I have written the bootloaders.
> 
> The "bootme" filesystem has *only* the /boot directory copied over from
> the rest of the system's root directory (that is, the kernel, loadables,
> /boot/loader.conf, etc); that pool is called "zboot"
> 
> Partition 4 has the label "root0" on it, and thus shows up in /dev/gpt. 
> I have initialized that with geli, set the boot option flag (that is,
> prompt on boot) and created a pool called "root" on the resulting .eli
> device and then put the system on that.  That's all ok.
> 
> Finally, I set the bootfs on that latter pool.  There is no bootfs set
> on /zboot:
> 
> # zpool get bootfs zboot
> NAME   PROPERTY  VALUE   SOURCE
> zboot  bootfs    -       default
> 
> It is set on the root pool to the proper filesystem:
> 
> # zpool get bootfs root
> NAME  PROPERTY  VALUE              SOURCE
> root  bootfs    root/R/10.1-CLEAN  local
> 
> The problem is that when the system boots geli "finds" the raw device
> (in this case /dev/da0p4), prompts for the password and attaches there
> instead of in /dev/gpt.  The gpt label is missing --- and equally bad
> the "root" pool does not appear to import at boot time either.
> 
> As a result the system tries to mount root from /zboot (even though it's
> not been told to, and HAS been told where to mount off the root pool),

As far as *I* can see, you have not told the kernel what your root fs should be,
so it is using a default root filesystem which the same filesystem from where
the kernel itself was loaded.

> but there's no init in there (or anything else other than the boot
> filesystem itself) and as a result I get an immediate panic.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?542C7794.8040502>