aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2019-01-25 18:32:20 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2019-01-25 18:32:20 +0000
commit61bb69ba80ed8d46429b717ff4e40f5e78f434a0 (patch)
tree16755b46bb838eead1e0a6f72e467325ba7840f1
parent76530be3c34db2e4fdbe9eefd86384ad5f2f38e2 (diff)
downloadmkinitfs-61bb69ba80ed8d46429b717ff4e40f5e78f434a0.tar.bz2
mkinitfs-61bb69ba80ed8d46429b717ff4e40f5e78f434a0.tar.xz
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
-rwxr-xr-xinitramfs-init.in16
1 files 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 $?