ZFS and linprocfs

My FreeBSD workstation at home runs almost completely on ZFS, only /boot is UFS. This works really, really good. However, if you’re running linux applications you need to mount linprocfs at startup. This causes the system to boot in single-user mode. It just can’t mount /usr/compat, since this is on a ZFS filesystem which is mounted after the usual filesystems. In single-user mode you could then do

zfs mount -a

and everything works again. Of course, that’s no solution. First idea: simply mount /usr as ‘legacy’ via fstab. Thats not very elegant. Second idea: change rcorder so that /etc/rc.d/zfs runs before /etc/rc.d/mountcritlocal. This might have some unconsidered sideeffects. It might also prevent ZFS from reading zpool.cache in /boot/zfs (I didn’t try). Then I discovered the ‘late’ option for mount(8) and fstab respectively. So the very simple solution is to change the linprocfs entry in /etc/fstab to:

linprocfs       /compat/linux/proc  linprocfs   rw,late  0   0

This prevents linprocfs from being mounted before ZFS-based /usr.

This project is maintained by hbunke