Cannot create /tmp as mountpoint inside ZFS pool during 8.1 installation
|Reported by:||gja||Owned by:||kris|
Installing PCBSD 8.1 from x64 DVD.
Used the GUI to set up the following custom partitioning on ad1s1:
- UFS 1G for /boot
- SWAP of 8G
- 'basic' ZFS of the rest for /home, /var, /tmp, /, /usr and /Programs
(arguably a not-unreasonable configuration so one can later set separate ZFS quotas on each mountpoint's file system)
Installer correctly creates tank0/, tank0/usr, tank0/home, etc, and then proceeds through "pc-sysinstall: Starting Extraction" and "pc-sysinstall: Extraction Finished" steps.
However, during final tidying up and resetting of ZFS mountpoints, installation fails with "encountered an error and has been halted, do you want to generate an error report?" with only "Yes/No?" as options (i.e. missing the "Show details..." option I expected to see).
I said "Yes", but no error log was created. Instead, the GUI installer simply asked if I wanted to reboot now.
Short version: It appears that when the installer back-end attempted "zfs set mountpoint=/tmp tank0/tmp" (while tidying up the zfs mountpoints) it mounted over the top of the active /tmp, which then caused the installer to loose its little brain ;) Things go bad.
Long version: Rather than reboot, I switched back to 2nd console (ctl-alt-F1, then alt-F2) logged in as root and was able to extract the following "zfs list" output:
NAME USED AVAIL REFER MOUNTPOINT tank0 5.68G 62.2G 230M /mnt tank0/Programs 18K 62.2G 18K /mnt/Programs tank0/home 4.28M 62.2G 4.28M /mnt/home tank0/tmp 25.5K 62.2G 25.5K /tmp tank0/usr 5.41G 62.2G 5.41G /usr tank0/var 42.6M 62.2G 42.6M /var
This suggests to me (although I'm not expert) that the installer barfed in the middle of resetting zfs mountpoints away from /mnt and onto their "correct" locations, and that /tmp was the last one appropriately reset.
Output from "df -h" supports the hypothesis:
Filesystem Size Used Avail Capacity Mounted on /dev/ufs/ROOTFS 26M 18M 6.0M 75% / devfs 1.0K 1.0K 0B 100% /dev /dev/md6 7.5M 78K 6.8M 1% /tmp /dev/md2 118M 114M -6.0M 106% /uzip /dev/md7.uzip 998M 291M 628M 32% /usr /root/SysInstaller 26M 18M 6.0M 75% /usr/PCBSD/SysInstaller /root/pc-sysinstall 26M 18M 6.0M 75% /usr/PCBSD/pc-sysinstall tank0 62G 230M 62G 0% /mnt tank0/Programs 62G 18K 62G 0% /mnt/Programs tank0/home 62G 4.3M 62G 0% /mnt/home /dev/acd0 3.3G 3.3G 0B 100% /cdmnt-install /dev/ad0s2a 989M 152M 758M 17% /mnt/boot-mount tank0/tmp 62G 27K 62G 0% /tmp
Notice that tank0/tmp and tmpfs are both mounted on /tmp.
Ultimately, the backend installer should figure out a safe way for the user to nominate /tmp as a valid ZFS mountpoint (which would be my preference), or the GUI frontend should check for anyone attempting this configuration and warn them it wont work (before the long extracting process is underway).
Hope this feedback is of some help.