pkgbasify: /var/empty is a readonly zfs filesystem.

After my initial success yesterday with pkgbasify, today, I hit a block. This was my fourth host conversion.

In this post:

  • FreeBSD 15.0

The block

There I was, minding my own business, when this jumped up and hit me.

[root@tallboy:~] # sudo bectl create before-pkgbasify
[root@tallboy:~] # uname -a
FreeBSD tallboy.unixathome.org 15.0-RELEASE-p10 FreeBSD 15.0-RELEASE-p10 GENERIC amd64
[root@tallboy:~] # fetch https://github.com/FreeBSDFoundation/pkgbasify/raw/refs/heads/main/pkgbasify.lua
pkgbasify.lua                                           21 kB 1910 kBps    00s
[root@tallboy:~] # chmod +x ./pkgbasify.lua
[root@tallboy:~] # ./pkgbasify.lua 
/var/empty is a readonly zfs filesystem.
This will cause conversion to fail as pkg will be unable to set the time of
/var/empty. Set readonly=off and run pkgbasify again.

[root@tallboy:~] # 

So, what do we have here?

[root@tallboy:~] # zfs list | grep /var/empty
system/var/empty                   96K   262G    96K  /var/empty
[root@tallboy:~] # zfs get readonly system/var/empty
NAME              PROPERTY  VALUE   SOURCE
system/var/empty  readonly  on      local
[root@tallboy:~] # 

This is an 11 year old system:

[root@tallboy:~] # zfs get creation system
NAME    PROPERTY  VALUE                  SOURCE
system  creation  Tue Feb 17 23:44 2015  -

It is not the only such host I have with this filesystem. See:

[14:21 zuul dvl ~] % zfs list | grep empty
system/var/empty                                   144K   150G   144K  /var/empty
[14:21 zuul dvl ~] % zfs get readonly system/var/empty
NAME              PROPERTY  VALUE   SOURCE
system/var/empty  readonly  on      local
[14:22 zuul dvl ~] % zfs get creation system          
NAME    PROPERTY  VALUE                  SOURCE
system  creation  Sat Dec  7  0:28 2013  -

Even older, but that host (zuul) has not been updated yet.

Either this is lingering issue from how zroot used to be set out, or it’s something I did myself, way-back-when.

What is this used for?

This is where /var/empty comes in:

[14:21 tallboy dvl ~] % grep empty /etc/passwd 
sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin
_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin
auditdistd:*:78:77:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
_ypldap:*:160:160:YP LDAP unprivileged user:/var/empty:/usr/sbin/nologin
hast:*:845:845:HAST unprivileged user:/var/empty:/usr/sbin/nologin
dovecot:*:143:143:Dovecot User:/var/empty:/usr/sbin/nologin
dovenull:*:144:144:Dovecot login User:/var/empty:/usr/sbin/nologin
_tss:*:601:601:TCG Software Stack user:/var/empty:/usr/sbin/nologin
[14:28 tallboy dvl ~] % 

The simple attempt

Let’s try this:

[14:28 tallboy dvl ~] % sudo zfs set readonly=off system/var/empty
[14:29 tallboy dvl ~] % 

To be reversed after the update.

Not shown

The rest of the pkgbasify process went as describe in Running pkgbasify on FreeBSD 15.0 – then I rebooted.

After boot

[10:40 pro05 dvl ~] % tallboy
Last login: Tue Jun 30 14:43:17 2026 from tmux(2182).%0
[14:43 tallboy dvl ~] % uptime
 2:44PM  up 2 mins, 2 users, load averages: 0.77, 0.29, 0.11
[14:44 tallboy dvl ~] % sudo zfs set readonly=on system/var/empty         
[14:44 tallboy dvl ~] % sudo shutdown -r now                     
Shutdown NOW!
shutdown: [pid 6922]

Perhaps I could have reset readonly before reboot… however….

After the reboot, all was well.

Website Pin Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive

Leave a Comment

Scroll to Top