Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jun 2017 20:23:59 -0700
From:      David Christensen <dpchrist@holgerdanske.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: FreeBSD 11.0 boot pool created by installer -- how to import and mount using installer?
Message-ID:  <b28cd657-169e-db1a-870c-e882dcf63ab8@holgerdanske.com>
In-Reply-To: <cd5e5213-1621-a87b-386b-4bf09e18ba68@mailman-hosting.com>
References:  <1fb7f3d1-dfb5-ab75-ab75-12dcc81423ca@holgerdanske.com> <CADyrUxNgfu-g24hcQA9Fc-YATTJA0tmkq%2BN9u3Rta%2B1-Cp%2B=hw@mail.gmail.com> <b1143059-fe17-e024-4e6d-d6dfd4e56464@holgerdanske.com> <CADyrUxNwxNHqWCDXCezCgSWwGmOdshzZZnS09cepF5FZWx1=YA@mail.gmail.com> <CADyrUxMXoDMkumHUSU3=vMSU-PwXyJs73utph8KSaUeoz32Tdw@mail.gmail.com> <CADyrUxN_QW0StUvRwKFC9KwkfErhn6YBBxeDYhWxxGz-SWVC0w@mail.gmail.com> <39a436b5-f09e-220b-954d-8ba272fa3101@holgerdanske.com> <51d6f981-a763-cdd0-648f-c36f2d757334@mailman-hosting.com> <a1d9b8dc-d7bf-ba4a-4110-ce496beb04f3@holgerdanske.com> <cd5e5213-1621-a87b-386b-4bf09e18ba68@mailman-hosting.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06/14/2017 05:42 PM, Jim Ohlstein wrote:
> Hello,
>
> On 06/14/2017 08:39 PM, David Christensen wrote:
>> On 06/14/2017 05:08 PM, Jim Ohlstein wrote:
>>> On 06/14/2017 08:03 PM, David Christensen wrote:
>>>> freebsd-questions:
>>>>
>>>> I have a FreeBSD 11.0 RELEASE i386 system that I created using the
>>>> FreeBSD installer (FreeBSD-11.0-RELEASE-i386-memstick.img):
>>>>
>>>>          Partitioning                    Auto (ZFS)
>>>>
>>>>          ZFS Configuration
>>>>              Pool Type/Disks             Stripe 1 Disk
>>>>                  Virtual Device type     stripe
>>>>                  (device)                ada0
>>>>              Pool Name                   zroot
>>>>              Force 4K Sectors            YES
>>>>              Encrypt Disks               YES
>>>>              Partition Scheme            MBR (BIOS)
>>>>              Swap Size                   2g
>>>>              Mirror Swap                 NO
>>>>              Encrypt Swap                YES
>>>>              Install                     Proceed with Installation
>>>>
>>>> I broke the system by attempting to change the root pool passphrase.
>>>> I might be able to fix it if I can edit /boot/loader.conf.
>>>>
>>>> Booting the FreeBSD installer into multi-user mode and then going to a
>>>> shell:
>>>>
>>>> # zpool list
>>>> no pools available
>>>>
>>>> # zpool import
>>>>      pool: bootpool
>>>>        id: <redacted>
>>>>     state: ONLINE
>>>>    action: The pool can be imported using its name or numeric
>>>> identifier.
>>>>    config:
>>>>
>>>>           bootpool    ONLINE
>>>>             ada0s1a   ONLINE
>>>>
>>>> # zpool import bootpool
>>>> cannot import 'bootpool': pool may be in use from other system
>>>> use '-f' to import anyway
>>>>
>>>> # zpool import -f bootpool
>>>> cannot mount '/bootpool': failed to created mountpoint
>>>>
>>>> Choosing Live CD produces the same end result.
>>>>
>>>> I previously obtained the same end result by booting into single-user
>>>> mode.
>>>>
>>>> How do I import and mount bootpool using the installer that created it?
>>>
>>> Try
>>>
>>> # zpool import -f -o mountpoint=/mnt bootpool
>>
>> Thanks for the reply.
>>
>>
>> Booting FreeBSD 11.0 RELEASE i386 installer into single-user mode and
>> accepting default shell:
>>
>> # zpool import -f -o mountpoint=/mnt bootpool
>> ZFS NOTICE: KSTACK_PAGES is 2 which could result in stack overflow panic!
>> Please consider adding 'options KSTACK_PAGES=4' to your kernel config
>> ZFS NOTICE: Prefetch is disabled by default on i386 -- to enable, add
>> "vfs.zfs.prefetch_disable=0" to /boot/loader.conf.
>> ZFS WARNING: Recommended minimum kmem_size is 512 MB; expect unstable
>> behavior.  Consider tuning vm.kmem_size and vm.kmem_size_max in
>> /boot/loader.conf.
>> ZFS filesystem version: 5
>> ZFS storage pool version: features support (5000)
>> property 'mountpoint' is not a valid pool property
>
> Hmmm.... That's odd.
>
> # zfs get mountpoint zroot
> NAME   PROPERTY    VALUE       SOURCE
> zroot  mountpoint  /zroot      local

1.  zfs(8) is not the same as zpool(8).  You used the former; I used the 
latter.

2.  "mountpoint" is a ZFS Native Property, not a ZFS pool property:

	http://docs.oracle.com/cd/E23824_01/html/821-1448/gazss.html#gcfgr

	https://docs.oracle.com/cd/E19120-01/open.solaris/817-2271/6mhupg6jv/index.html#gfiex

3.  The installer environment is going to be different than a "normal" 
FreeBSD system.


Digging some more:

# mount
/dev/ufs/FreeBSD_Install on / (ufs, local, noatime, read-only)
devfs on /dev (devfs, local, multilabel)
/dev/md0 on /var (ufs, local)
/dev/md1 on /tmp (ufs, local)


So, the installer provides a read-only root file system, overlaid with a 
devfs for /dev, a memory file system for /var, and a memory file system 
for /tmp.


Perhaps if I create a mount point within /tmp, since it's writable, and 
then import bootpool using an alternate root:

http://docs.oracle.com/cd/E19253-01/819-5461/gbcgl/index.html

# mkdir /tmp/bootpool

# zpool import -R /tmp/bootpool bootpool

# zpool list bootpool
NAME       SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH 
ALTROOT
bootpool  1.98G   128M  1.86G         -     7%     6%  1.00x  ONLINE 
/tmp/bootpool


Now I can edit loader.conf:

# cd /tmp/bootpool/bootpool/boot

# ls -l loader.conf
-rw-r--r--  1 root  wheel   517 Jan 25 19:36 loader.conf

# cp loader.conf loader.con-20170125-1936

# vi loader.conf

     ### 20170614 dpchrist - don't use keyfile for root pool
     #geli_ada0s1d_keyfile0_load="YES"
     #geli_ada0s1d_keyfile0_type="ada0s1d:geli_keyfile0"
     #geli_ada0s1d_keyfile0_name="/boot/encryption.key"


Change directory out and export the pool:

# cd

# pwd
/

# zpool export bootpool

# zpool list
no pools available


Power down, pull the installer USB flash drive, and boot -- it works!


One last step:

toor@freebsd:/boot # zpool import bootpool


Reboot -- everything is there:

toor@freebsd:~ # zpool list
NAME       SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH 
ALTROOT
bootpool  1.98G   128M  1.86G         -     7%     6%  1.00x  ONLINE  -
zroot     10.9G  5.11G  5.76G         -    45%    47%  1.00x  ONLINE  -

toor@freebsd:~ # mount | egrep '^(zroot |bootpool)'
bootpool on /bootpool (zfs, local, nfsv4acls)
zroot on /zroot (zfs, local, noatime, nfsv4acls)


Thanks everyone for the help.  :-)


David




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b28cd657-169e-db1a-870c-e882dcf63ab8>