Re: FreeBSD, boot environments and /dev
Date: Thu, 05 May 2022 22:21:00 UTC
On Thu, May 5, 2022 at 4:10 PM Michael Schuster <michaelsprivate@gmail.com> wrote: > Hi all, > > while still working (slowly) on an answer to my own question on the > right workflow to keep current up to date reliably with boot > environments, I noticed that after creating and mounting a new BE, > that new BE's /dev (eg /mnt/dev) is very sparsely populated: > > [22:44:45: ~ 0] $ ll /mnt/dev > total 20 > 9 dr-xr-xr-x 4 root wheel 7 Apr 18 00:35 . > 9 drwxr-xr-x 23 root wheel 30 May 5 22:44 .. > 1 drwxr-xr-x 2 root wheel 2 Apr 18 00:35 fd > 1 lrwxr-xr-x 1 root wheel 12 Apr 17 20:41 log -> /var/run/log > 1 -rw-r--r-- 1 root wheel 63 May 3 22:19 null > 1 -rw-r--r-- 1 root wheel 1 May 3 22:18 null.bak > 1 drwxr-xr-x 2 root wheel 2 Apr 18 00:35 shm > [22:44:48: ~ 0] $ > > (no matter whether I use "beadm create" or "bectl create -r") > > I can then mount devfs: > # mount -t devfs devfs /mnt/dev > > and it will look (and work) as expected (eg for "pkg -c /mnt update" > (*)) ... as long as the BE is mounted. > When I try to boot from (into?) that BE though, it fails, and on the > console I can see messages about missing /dev/... entries. I sneaked a > peek into beinstall.sh, found no inspiration there, I'm afraid. > > I believe I noticed this apparent requirement to mount devfs > separately not so long ago ... definitely this year, while I've been > experimenting with boot environments for quite a bit longer. Was I > just lucky all along, or did something change ... and, more > importantly, how do I make my boot environments bootable again? > > TIA for hints, pointers, advice > Michael > > *) I first noticed something was amiss when "pkg -c /mnt ... " > complained about /dev/null missing, IIRC ... > -- > Michael Schuster > http://recursiveramblings.wordpress.com/ > recursion, n: see 'recursion' > > getting /dev/null errors with pkg -c makes sense. I wouldn't expect /dev to contain anything after a create. Why it is not populated on boot seems odd to me though... It's possible, if you created a deep boot environment, you created a pool/ROOT/dev dataset and it is overwriting the initial /dev from boot (I have not tested this theory). Tough to say without more information about the BE layout, and maybe a look at fstab. FWIW I typically run "pkg -r /tmp/be_mount.XXXX" after mounting with "bectl mount" which should give you the same effect as -c without the rooted devfs requirement -- Wes