Package: partman-zfs Version: 5 Severity: important mount.d/zfs sets ZFS filesystems up for automated mount. Automated mount is very dangerous because it leads to collision when two ZFS-based operating systems are installed in the same pool.
If ZFS is used for /, it will be overlaid on top of the real /, making /dev useless (and rendering system unbootable on both sides). If ZFS is used for other subdirectories, a mix of both operating systems will be used. Results are unpredictable. As a workaround, zfsutils doesn't automatically mount/unmount filesystems that have been marked for automated mount. See changelog entry for 8.2-3: http://packages.debian.org/changelogs/pool/main/z/zfsutils/zfsutils_8.2-3/changelog Attached patch switches partman-zfs to legacy mount. However, it can't be currently used because of bug #637082. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: kfreebsd-amd64 (x86_64) Kernel: kFreeBSD 9.0-0-amd64 Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff --git a/commit.d/format_zfs b/commit.d/format_zfs index 3736365..1d75e81 100755 --- a/commit.d/format_zfs +++ b/commit.d/format_zfs @@ -63,11 +63,11 @@ for dev in $DEVICES/*; do fi code=0 - local fs=${device##/dev/zvol/} + local fs=${device#/dev/zvol/} log-output -t partman --pass-stdout \ zfs destroy "${fs}" >/dev/null || code=$? log-output -t partman --pass-stdout \ - zfs create -o mountpoint=none "${fs}" >/dev/null || code=$? + zfs create -o mountpoint=legacy "${fs}" >/dev/null || code=$? sync db_progress STOP diff --git a/mount.d/zfs b/mount.d/zfs index 9d6fc36..31df7e2 100755 --- a/mount.d/zfs +++ b/mount.d/zfs @@ -11,7 +11,7 @@ pass=$6 case $type in zfs) - zfs set mountpoint=/${mp#/} ${fs#/dev/zvol/} || exit 1 + mount -t zfs ${fs#/dev/zvol/} ${mp} || exit 1 exit 0 ;; esac