Date: Mon, 29 Dec 2025 13:50:11 +1100 From: Graham Menhennitt <graham@menhennitt.com.au> To: questions@freebsd.org Subject: Re: error creating thin jail on 15.0 Message-ID: <8b0ab9ee-29ef-413f-9b42-c837ca8d29f0@menhennitt.com.au> In-Reply-To: <3fcb1ac3913e14eee2c805f2cb796355@gritton.org> References: <e0af9569-47a8-482f-bafc-783f69935ac3@menhennitt.com.au> <4f56394c9bc2dd4aef5f426eda9679f0@freebsd.org> <de4b209c-53d4-4af1-8c7f-328b74c4674a@menhennitt.com.au> <3fcb1ac3913e14eee2c805f2cb796355@gritton.org>
index | next in thread | previous in thread | raw e-mail
Thanks again for replying. The command that I used is copied directly from section 17.5.2 of the handbook (at https://docs.freebsd.org/en/books/handbook/jails/#creating-thin-jail-nullfs). Perhaps the handbook is wrong. Anyway I tried your suggested command (without the "-base" in that tar command and lots of subsequent commands), but it fails in the same way. Thanks, Graham On 26/12/2025 7:09 am, James Gritton wrote: > I suspect a copy/paste problem: one of the commands is: > # tar -xf /usr/local/jails/media/15.0-RELEASE-base.txz -C > /usr/local/jails/templates/15.0-RELEASE --unlink > > and it wouldn't be hard to turn it into > # tar -xf /usr/local/jails/media/15.0-RELEASE-base.txz -C > /usr/local/jails/templates/15.0-RELEASE0-base --unlink > > since that's the name of the tar file without its extension. So you > might be almost there - just rename the directory, and proceed from > there. > > I don't know if ezjail does that thin jail setup, but something like > that is certainly worth a try. > > - Jamie > > > On 2025-12-24 16:51, Graham Menhennitt wrote: >> Thanks very much for replying, Jamie. >> >> I suspect that you're correct in saying that "files weren't extracted >> into the master directory". There is no >> directory /usr/local/jails/templates/15.0-RELEASE as you said in your >> suggestions. There is >> only /usr/local/jails/templates/15.0-RELEASE-base >> (and /usr/local/jails/templates/15.0-RELEASE-skeleton which is >> created by the later mkdir command in the instructions). >> >> I checked my command history and I'm fairly certain that I followed >> the instructions correctly. >> >> See below for the results of the "ll" commands, and the relevant >> extract from the history. >> >> I see that there is the "ezjail" utility. I may try using that. >> >> Thanks again, >> >> Graham >> >> >> >> # ll /usr/local/jails/templates/ >> total 8 >> drwxr-xr-x 15 root wheel 512 23 Dec 15:30 15.0-RELEASE-base >> drwxr-xr-x 8 root wheel 512 23 Dec 15:28 15.0-RELEASE-skeleton >> >> # ll /usr/local/jails/templates/15.0-RELEASE-base/ >> total 60 >> drwxr-xr-x 2 root wheel 1024 23 Dec 15:26 bin >> drwxr-xr-x 15 root wheel 1536 23 Dec 15:26 boot >> -r--r--r-- 1 root wheel 6070 28 Nov 14:51 COPYRIGHT >> dr-xr-xr-x 2 root wheel 512 28 Nov 14:42 dev >> lrwxr-xr-x 1 root wheel 12 23 Dec 15:29 etc -> skeleton/etc >> lrwxr-xr-x 1 root wheel 13 23 Dec 15:29 home -> skeleton/home >> drwxr-xr-x 4 root wheel 2048 28 Nov 14:46 lib >> drwxr-xr-x 3 root wheel 512 28 Nov 14:43 libexec >> drwxr-xr-x 2 root wheel 512 28 Nov 14:42 media >> drwxr-xr-x 2 root wheel 512 28 Nov 14:42 mnt >> drwxr-xr-x 2 root wheel 512 28 Nov 14:42 net >> dr-xr-xr-x 2 root wheel 512 28 Nov 14:42 proc >> drwxr-xr-x 2 root wheel 2560 23 Dec 15:26 rescue >> lrwxr-xr-x 1 root wheel 13 23 Dec 15:29 root -> skeleton/root >> drwxr-xr-x 2 root wheel 3072 23 Dec 15:26 sbin >> drwxr-xr-x 2 root wheel 512 23 Dec 15:29 skeleton >> lrwxr-xr-x 1 root wheel 11 28 Nov 14:42 sys -> usr/src/sys >> lrwxr-xr-x 1 root wheel 12 23 Dec 15:30 tmp -> skeleton/tmp >> drwxr-xr-x 13 root wheel 512 23 Dec 15:29 usr >> lrwxr-xr-x 1 root wheel 12 23 Dec 15:30 var -> skeleton/var >> >> # ll /usr/local/jails/templates/15.0-RELEASE-skeleton/ >> total 24 >> drwxr-xr-x 30 root wheel 2560 23 Dec 15:27 etc >> drwxr-xr-x 2 root wheel 512 23 Dec 15:27 home >> drwxr-x--- 2 root wheel 512 23 Dec 15:28 root >> drwxrwxrwt 2 root wheel 512 23 Dec 15:28 tmp >> drwxr-xr-x 3 root wheel 512 23 Dec 15:27 usr >> drwxr-xr-x 24 root wheel 512 23 Dec 15:28 var >> >> # ll /usr/local/jails/containers/vaultwarden >> total 24 >> drwxr-xr-x 30 root wheel 2048 23 Dec 15:31 etc >> drwxr-xr-x 2 root wheel 512 23 Dec 15:31 home >> drwxr-x--- 2 root wheel 512 23 Dec 15:31 root >> drwxr-xr-t 2 root wheel 512 23 Dec 15:31 tmp >> drwxr-xr-x 3 root wheel 512 23 Dec 15:31 usr >> drwxr-xr-x 24 root wheel 512 23 Dec 15:31 var >> >> # history >> ... >> 441 mkdir /usr/local/jails/ >> 442 mkdir /usr/local/jails/{media,templates,containers} >> 443 ll /usr/local/jails/ >> 444 vi /etc/jail.conf >> 445 # mkdir /usr/local/jails/templates/15.0-RELEASE-base >> 446 mkdir /usr/local/jails/templates/15.0-RELEASE-base >> 447 fetch >> https://download.freebsd.org/ftp/releases/amd64/amd64/15.0-RELEASE/base.txz >> -o /usr/local/jails/media/15.0-RELEASE-base.txz >> 448 tar -xf /usr/local/jails/media/15.0-RELEASE-base.txz -C >> /usr/local/jails/templates/15.0-RELEASE-base --unlink >> 449 cp /etc/resolv.conf >> /usr/local/jails/templates/15.0-RELEASE-base/etc/resolv.conf >> 450 cp /etc/localtime >> /usr/local/jails/templates/15.0-RELEASE-base/etc/localtime >> 451 freebsd-update -b >> /usr/local/jails/templates/15.0-RELEASE-base/ fetch install >> 452 mkdir /usr/local/jails/templates/15.0-RELEASE-skeleton >> 453 mkdir -p /usr/local/jails/templates/15.0-RELEASE-skeleton/home >> 454 mkdir -p /usr/local/jails/templates/15.0-RELEASE-skeleton/usr >> 455 mv /usr/local/jails/templates/15.0-RELEASE-base/etc >> /usr/local/jails/templates/15.0-RELEASE-skeleton/etc >> 456 mv /usr/local/jails/templates/15.0-RELEASE-base/usr/local >> /usr/local/jails/templates/15.0-RELEASE-skeleton/usr/local >> 457 mv /usr/local/jails/templates/15.0-RELEASE-base/tmp >> /usr/local/jails/templates/15.0-RELEASE-skeleton/tmp >> 458 mv /usr/local/jails/templates/15.0-RELEASE-base/var >> /usr/local/jails/templates/15.0-RELEASE-skeleton/var >> 459 mv /usr/local/jails/templates/15.0-RELEASE-base/root >> /usr/local/jails/templates/15.0-RELEASE-skeleton/root >> 460 cd /usr/local/jails/templates/15.0-RELEASE-base/ >> 461 mkdir skeleton >> 462 ln -s skeleton/etc etc >> 463 ln -s skeleton/home home >> 464 ln -s skeleton/root root >> 465 ln -s ../skeleton/usr/local usr/local >> 466 ln -s skeleton/tmp tmp >> 467 ln -s skeleton/var var >> 468 cp -R /usr/local/jails/templates/15.0-RELEASE-skeleton >> /usr/local/jails/containers/vaultwarden >> 469 mkdir -p /usr/local/jails/vaultwarden-nullfs-base >> 470 vi /usr/local/jails/vaultwarden-nullfs-base.fstab >> 471 service jail start vaultwarden >> ... >> # >> >> On 24/12/2025 5:52 am, James Gritton wrote: >>> On 2025-12-22 21:40, Graham Menhennitt wrote: >>>> Hello, >>>> >>>> I've recently upgraded my server from 14.3 to 15.0. Everything >>>> appeared to work successfully in the upgrade. >>>> >>>> I now want to create a thin jail using UFS. I've followed the >>>> handbook section 17.5 exactly except that my jail is named >>>> "vaultwarden" instead of "thinjail". Accordingly, I've replaced >>>> "thinjail" by "vaultwarden" everywhere. >>>> >>>> When I try to start the jail, I get an error: >>>> >>>> # service jail start vaultwarden >>>> Starting jails: cannot start jail "vaultwarden": >>>> jail: vaultwarden: mount.devfs: >>>> /usr/local/jails/containers/vaultwarden/dev: No such file or directory >>>> . >>>> # >>>> >>>> I tried creating >>>> directory /usr/local/jails/containers/vaultwarden/dev. Then I get a >>>> different error: >>>> >>>> # service jail start vaultwarden >>>> Starting jails: cannot start jail "vaultwarden": >>>> 1 >>>> jail: vaultwarden: /bin/sh /etc/rc: failed >>>> . >>>> # >>>> >>>> I'm completely new to jails. Can somebody please give me a clue on >>>> how to diagnose then problem. >>> >>> Considering /dev didn't exist in the jail directory, I'm guessing >>> that nothing exist there. That leaves two possibilities: the files >>> weren't extracted into the master directory, or they weren't >>> reflected into the thin jail directory. What it look like when you >>> run: >>> >>> ls -l /usr/local/jails/templates/15.0-RELEASE >>> ls -l /usr/local/jails/containers/vaultwarden >>> >>> Both of those directories should show a root directory listing. If >>> the first one isn't there, something went wrong in downloading and >>> unpacking the base file set. I would imagine there'd be some kind >>> of error message if that were the case. If the second one isn't >>> there, the clone didn't work. Again, I'd expect an error message. >>> If both of them *do* show files, there's probably something wrong in >>> the jail.conf. >>> >>> Another command with potentially useful output is "zfs list -t >>> all". I would expect to see a line showing the dataset named >>> zroot/jails/containers/vaultwarden at the mount point >>> /usr/local/jails/containers/vaultwarden. >>> >>> - Jamie >>> >help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8b0ab9ee-29ef-413f-9b42-c837ca8d29f0>
