Commit edad1469 authored by Rasmus Thomsen's avatar Rasmus Thomsen Committed by Natanael Copa
Browse files

init: add support for force importing ZFS pool and ZFS native encryption

parent 5a6f829e
......@@ -279,6 +279,25 @@ is_url() {
esac
}
# Do some tasks to make sure mounting the ZFS pool is A-OK
prepare_zfs_root() {
local _root_vol=${KOPT_root#ZFS=}
local _root_pool=${_rool_vol%%/*}
# Force import if this has been imported on a different system previously
if [ "$KOPT_zfs_force" = 1 ]; then
zpool import -N -f $_root_vol
fi
# Ask for encryption password
if [ $(zpool list -H -o feature@encryption $_root_pool) = "active" ]; then
local _encryption_root=$(zfs get -H -o value encryptionroot $_root_vol)
if [ "$_encryption_root" != "-" ]; then
eval zfs load-key $_encryption_root
fi
fi
}
/bin/busybox mkdir -p /usr/bin /usr/sbin /proc /sys /dev $sysroot \
/media/cdrom /media/usb /tmp /run
......@@ -484,6 +503,9 @@ if [ -n "$KOPT_root" ]; then
mkdir -p /media/root-rw/work /media/root-rw/root
mount -t overlay -o lowerdir=/media/root-ro,upperdir=/media/root-rw/root,workdir=/media/root-rw/work overlayfs $sysroot
else
if [ $rootfstype = "zfs" ]; then
prepare_zfs_root
fi
mount ${rootfstype:+-t} ${rootfstype} \
-o ${KOPT_rootflags:-ro} \
${KOPT_root#ZFS=} $sysroot
......
......@@ -119,6 +119,10 @@ Enable splash screen
\fBusbdelay=\fINUMBER\fR
Wait \fINUMBER\fR seconds for USB devices to show up before searching for boot
media.
.TP
\fBzfs_force=\fINUMBER\fR
Enable force importing the root zpool on boot, even if it was previously mounted
from a different system/OS.
.SH FILES
.TP
\fI@datadir@/initramfs-init\fR
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment