From 61c0618cf504bbd4648b3c08b56d7c68e3d8f7bd Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sun, 1 May 2016 04:41:33 -0400 Subject: run an extra grok-block since nbd0 wasn't mountable otherwise --- initramfs-tools/modules | 2 ++ initramfs-tools/scripts/samizdat | 11 +++++++++-- isolinux/pxelinux.cfg/default | 2 +- src/initrd/common.sh | 7 ++++++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/initramfs-tools/modules b/initramfs-tools/modules index dd9dc54..ee049de 100644 --- a/initramfs-tools/modules +++ b/initramfs-tools/modules @@ -9,3 +9,5 @@ # # raid1 # sd_mod + +btrfs diff --git a/initramfs-tools/scripts/samizdat b/initramfs-tools/scripts/samizdat index 1591883..0c511e8 100644 --- a/initramfs-tools/scripts/samizdat +++ b/initramfs-tools/scripts/samizdat @@ -6,10 +6,10 @@ mountroot() samizdat_install_udev_rules mkfifo "$MENUFIFO" - sh /scripts/local-top/nbd >/dev/null 2>&1 & # I guess this isn't getting called otherwise? + # Note: this blocks waiting for the network if [ "${nbdroot%%,*}" ]; then - wait_for_gnupghome_tar + try_nbd fi bootmenu @@ -17,6 +17,13 @@ mountroot() chvt 1 } +try_nbd() +{ + sh /scripts/local-top/nbd >/dev/null 2>&1 & # I guess this isn't getting called otherwise? + wait_for_gnupghome_tar + (. common.sh && force_grok_block) +} + wait_for_gnupghome_tar() { [ -e /gnupghome.tar ] && return diff --git a/isolinux/pxelinux.cfg/default b/isolinux/pxelinux.cfg/default index 8e0a05f..386012f 100644 --- a/isolinux/pxelinux.cfg/default +++ b/isolinux/pxelinux.cfg/default @@ -2,4 +2,4 @@ default samizdat label samizdat linux linux/vmlinuz initrd linux/initrd.img - append boot=samizdat components quiet splash nbdroot=192.168.10.1,samizdat.iso nbddev=/dev/nbd0 ip=dhcp + append boot=samizdat components quiet splash nbdroot=192.168.10.1,samizdat.btrfs nbddev=/dev/nbd0 ip=dhcp diff --git a/src/initrd/common.sh b/src/initrd/common.sh index 09906d9..b91bbf9 100644 --- a/src/initrd/common.sh +++ b/src/initrd/common.sh @@ -31,6 +31,11 @@ menutitle() printf 'setWelcomeText "%s"\n' "$2" >>$MENUFIFO } +force_grok_block() +{ + udevadm trigger --subsystem-match=block --action=add +} + bootmenu() { local do_trigger="$1" no_panic="$2" @@ -43,7 +48,7 @@ bootmenu() panic "error loading boot menu! the system won't be usable :(" fi if [ "$do_trigger" ]; then - udevadm trigger --subsystem-match=block --action=add + force_grok_block fi } -- cgit v1.2.3