Re: error creating thin jail on 15.0

From: Graham Menhennitt <graham_at_menhennitt.com.au>
Date: Thu, 25 Dec 2025 00:51:35 UTC
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
>