Skip site navigation (1)Skip section navigation (2)
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>