[pkg-cryptsetup-devel] Bug#838001: cryptsetup does not support ZFS
Richard Laager
rlaager at wiktel.com
Fri Sep 16 09:32:24 UTC 2016
Package: cryptsetup
I use Ubuntu, not Debian, and filed this bug:
https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/1612906
It was suggested there that I look at Debian bug #820888, titled
cryptsetup: initramfs cryptroot zfs support:
https://bugs.debian.org/820888
I think that's a separate issue, but I'm not 100% sure. Either way, it'd
be nice to upstream the patch below into Debian's cryptsetup, if the
patch is in fact suitable for Debian.
On to the actual issue...
This happens on Ubuntu 16.04:
$ sudo update-initramfs -c -k all
update-initramfs: Generating /boot/initrd.img-4.4.0-34-generic
cryptsetup: WARNING: could not determine root device from /etc/fstab
update-initramfs: Generating /boot/initrd.img-4.4.0-31-generic
cryptsetup: WARNING: could not determine root device from /etc/fstab
The attached patch adds ZFS support to cryptsetup.
--
Richard
-------------- next part --------------
diff -Nru cryptsetup-1.7.2/debian/changelog cryptsetup-1.7.2/debian/changelog
--- cryptsetup-1.7.2/debian/changelog 2016-07-01 03:57:14.000000000 -0500
+++ cryptsetup-1.7.2/debian/changelog 2016-08-03 11:35:40.000000000 -0500
@@ -1,3 +1,9 @@
+cryptsetup (2:1.7.2-0ubuntu2~rlaager1) yakkety; urgency=medium
+
+ * Support ZFS in the cryptroot initramfs-tools hook.
+
+ -- Richard Laager <rlaager at wiktel.com> Wed, 03 Aug 2016 11:30:29 -0500
+
cryptsetup (2:1.7.2-0ubuntu1) yakkety; urgency=medium
* New upstream release, merge from Debian unstable (LP: #1548137). Remaining
diff -Nru cryptsetup-1.7.2/debian/initramfs/cryptroot-hook cryptsetup-1.7.2/debian/initramfs/cryptroot-hook
--- cryptsetup-1.7.2/debian/initramfs/cryptroot-hook 2016-04-29 01:18:05.000000000 -0500
+++ cryptsetup-1.7.2/debian/initramfs/cryptroot-hook 2016-08-03 11:35:57.000000000 -0500
@@ -20,11 +20,7 @@
local device mount type options dump pass
local wantmount="$1"
- if [ ! -r /etc/fstab ]; then
- return 1
- fi
-
- grep -s '^[^#]' /etc/fstab | \
+ grep -s '^[^#]' /etc/fstab 2>/dev/null | \
while read device mount type options dump pass; do
if [ "$mount" = "$wantmount" ]; then
local devices
@@ -39,6 +35,21 @@
return
fi
done
+
+ zfs list -H -o name,canmount,mountpoint 2>/dev/null | \
+ while read name canmount mountpoint; do
+ [ "$canmount" = off ] && continue
+ if [ "$mountpoint" = "$wantmount" ]; then
+ local devices
+ for dev in $(zpool status -P "${name%%/*}" 2>/dev/null | awk '($1 ~ /\//) {print $1}'); do
+ devices="$devices $(canonical_device "$dev")"
+ done
+ echo "$devices"
+ return
+ fi
+ done
+
+ return 1
}
get_resume_devices() {
More information about the pkg-cryptsetup-devel
mailing list