I created a dataset with the following property:
- Code: Select all
gjp22/VirtualBox mountpoint /Volumes/gjp22/Library/VirtualBox local
/Volumes/gjp22/
is my ZFS home directory.
Issue
The dataset would not properly automatically mount. I guess, because the path for the mountpoint could not be made available in good time.
An example of the symptoms:
- Code: Select all
gpes3e-gjp4:~ yes$ zstat
gpes3e-gjp4:~ yes$ zpool status
pool: gjp22
state: ONLINE
scan: scrub repaired 0 in 30h2m with 0 errors on Mon Nov 4 01:33:36 2013
config:
NAME STATE READ WRITE CKSUM
gjp22 ONLINE 0 0 0
GPTE_71B8BDA2-3EBA-4B91-9E1C-2AE2B1DAAD06 ONLINE 0 0 0 at disk2s2
cache
GPTE_428337BD-2E39-4CCF-B02F-90DC376E3ED8 OFFLINE 0 0 0
errors: No known data errors
gpes3e-gjp4:~ yes$ zfs mount
gjp22/casesensitive /Volumes/casesensitive
gjp22 /Volumes/gjp22
/dev/disk3s2 /Volumes/gjp22/Library/VirtualBox
gjp22/opt /opt
gpes3e-gjp4:~ yes$ mount | grep zfs
/dev/disk3s1 on /Volumes/casesensitive (zfs, local, journaled, noatime)
/dev/disk3 on /Volumes/gjp22 (zfs, local, journaled, noatime)
/dev/disk3s2 on /Volumes/gjp22/Library/VirtualBox (zfs, local, journaled, noatime)
/dev/disk3s3 on /opt (zfs, local, journaled, noatime)
gpes3e-gjp4:~ yes$ zfs get mounted gjp22 gjp22/casesensitive gjp22/opt gjp22/VirtualBox
NAME PROPERTY VALUE SOURCE
gjp22 mounted yes -
gjp22/VirtualBox mounted no -
gjp22/casesensitive mounted yes -
gjp22/opt mounted yes -
gpes3e-gjp4:~ yes$ zfs unmount gjp22/VirtualBox
cannot unmount 'gjp22/VirtualBox': not currently mounted
gpes3e-gjp4:~ yes$ mount | grep VirtualBox
/dev/disk3s2 on /Volumes/gjp22/Library/VirtualBox (zfs, local, journaled, noatime)
gpes3e-gjp4:~ yes$ diskutil unmount /dev/disk3s2
Volume VirtualBox on disk3s2 unmounted
gpes3e-gjp4:~ yes$ zfs get mounted gjp22 gjp22/casesensitive gjp22/opt gjp22/VirtualBox
NAME PROPERTY VALUE SOURCE
gjp22 mounted yes -
gjp22/VirtualBox mounted no -
gjp22/casesensitive mounted yes -
gjp22/opt mounted yes -
gpes3e-gjp4:~ yes$ zfs mount
gjp22/casesensitive /Volumes/casesensitive
gjp22 /Volumes/gjp22
gjp22/opt /opt
gpes3e-gjp4:~ yes$
Noticeably peculiar within that output:
- Code: Select all
/dev/disk3s2 /Volumes/gjp22/Library/VirtualBox
Workaround
- Code: Select all
gpes3e-gjp4:~ yes$ zfs set canmount=noauto gjp22/VirtualBox
– and now, I mount on demand.
A better workaround might involve wait4path(1) but I'm happy to mount manually.