aboutsummaryrefslogtreecommitdiffstats
path: root/main/mkinitfs/0002-init-fix-root-ZFS.-from-grub.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/mkinitfs/0002-init-fix-root-ZFS.-from-grub.patch')
-rw-r--r--main/mkinitfs/0002-init-fix-root-ZFS.-from-grub.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/main/mkinitfs/0002-init-fix-root-ZFS.-from-grub.patch b/main/mkinitfs/0002-init-fix-root-ZFS.-from-grub.patch
new file mode 100644
index 0000000000..5b3fd46eb3
--- /dev/null
+++ b/main/mkinitfs/0002-init-fix-root-ZFS.-from-grub.patch
@@ -0,0 +1,59 @@
+From 61bb69ba80ed8d46429b717ff4e40f5e78f434a0 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri, 25 Jan 2019 18:32:20 +0000
+Subject: [PATCH 2/2] init: fix root=ZFS... from grub
+
+grub will set root=ZFS=... when root is zfs but will not add rootfstype,
+so make a special case for zfs
+---
+ initramfs-init.in | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/initramfs-init.in b/initramfs-init.in
+index 69f917e..252b9ca 100755
+--- a/initramfs-init.in
++++ b/initramfs-init.in
+@@ -401,10 +401,18 @@ if [ "${KOPT_s390x_net%%,*}" = "qeth_l2" ]; then
+ echo 1 > /sys/bus/ccwgroup/drivers/qeth/"${_channel%%,*}"/online
+ fi
+
++# make sure we load zfs module if root=ZFS=...
++rootfstype=${KOPT_rootfstype}
++if [ -z "$rootfstype" ]; then
++ case "$KOPT_root" in
++ ZFS=*) rootfstype=zfs ;;
++ esac
++fi
++
+ # load available drivers to get access to modloop media
+ ebegin "Loading boot drivers"
+
+-modprobe -a $(echo "$KOPT_modules $KOPT_rootfstype" | tr ',' ' ' ) loop squashfs 2> /dev/null
++modprobe -a $(echo "$KOPT_modules $rootfstype" | tr ',' ' ' ) loop squashfs 2> /dev/null
+ if [ -f /etc/modules ] ; then
+ sed 's/\#.*//g' < /etc/modules |
+ while read module args; do
+@@ -454,7 +462,7 @@ if [ -n "$KOPT_root" ]; then
+ nlplug-findfs $cryptopts -p /sbin/mdev ${KOPT_debug_init:+-d} \
+ $KOPT_root
+
+- if echo "$KOPT_modules $KOPT_rootfstype" | grep -qw btrfs; then
++ if echo "$KOPT_modules $rootfstype" | grep -qw btrfs; then
+ /sbin/btrfs device scan >/dev/null || \
+ echo "Failed to scan devices for btrfs filesystem."
+ fi
+@@ -476,9 +484,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
+- mount ${KOPT_rootfstype:+-t} ${KOPT_rootfstype} \
++ mount ${rootfstype:+-t} ${rootfstype} \
+ -o ${KOPT_rootflags:-ro} \
+- $KOPT_root $sysroot
++ ${KOPT_root#ZFS=} $sysroot
+ fi
+
+ eend $?
+--
+2.20.1
+