From d0c64cb0a0d6673e7f17363d77c31f17c3aed4ce Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Thu, 28 Apr 2016 04:56:28 -0400 Subject: share more code between boot-new and boot-ram -- this fixes a bug --- old-school/lvm-create.sh | 41 ++++++++++++++++++++++------------------- old-school/menu-select | 27 +++++++++------------------ 2 files changed, 31 insertions(+), 37 deletions(-) diff --git a/old-school/lvm-create.sh b/old-school/lvm-create.sh index d1ffc51..0e88995 100644 --- a/old-school/lvm-create.sh +++ b/old-school/lvm-create.sh @@ -28,6 +28,8 @@ ceil4() losetup_layers() { + bootwait samizdat-cdrom + local fs fs_rw for fs in /cdrom/rootfs/*.btrfs; do fs_rw=/"${fs##*/}".rw dd if=/dev/zero of="$fs_rw" bs=1M count=10 @@ -37,25 +39,22 @@ losetup_layers() init_samizdat() { - local imgfile="$1" megs="$2" keyfile="$3" dev fs fs_rw + local blockdev="$1" imgfile="$2" uuid - init_samizdat_blockdev "$imgfile" "$megs" "$keyfile" || return - local blockdev=/dev/mapper/samizdatcrypt uuid + losetup_layers || return + modprobe btrfs || return + btrfs device scan || return - losetup_layers || return - modprobe btrfs || return - btrfs device scan || return - - uuid=$(choose_uuid) || return - [ "$uuid" ] + uuid=$(choose_uuid) || return + [ "$uuid" ] || return mount -t btrfs -o subvol=ROOT UUID="$uuid" /root || return - btrfs device add "$blockdev" /root || return - mount -o rw,remount /root || return - samizdat_movemounts "$imgfile" + btrfs device add "$blockdev" /root || return + mount -o rw,remount /root || return + samizdat_movemounts "$imgfile" || return - initialize_root_filesystem || return + initialize_root_filesystem || return bootdone root-mounted } @@ -64,12 +63,16 @@ samizdat_movemounts() { local imgfile="$1" mountpoint - mountpoint=$(mountpoint_of "$imgfile") || return - mkdir /root/cdrom /root/outerfs + if [ "$imgfile" ]; then + mountpoint=$(mountpoint_of "$imgfile") || return + mkdir /root/outerfs + mount -o move "$mountpoint" /root/outerfs + fi + mkdir /root/cdrom mount -o move /cdrom /root/cdrom - mount -o move "$mountpoint" /root/outerfs - mkdir /run/initramfs/samizdat - mv /var/log /run/initramfs/samizdat/log +# mkdir /run/initramfs/samizdat +# mv /var/log /run/initramfs/samizdat/log + true } mountpoint_of() @@ -162,7 +165,7 @@ open_samizdat() init_samizdat_lodev() { - local imgfile="$1" megs=$(ceil4 "$2") + local imgfile="$1" megs=$(ceil4 "$2") dev truncate -s ${megs}M "$imgfile" || return dev=$(losetup -f) && losetup "$dev" "$imgfile" || return echo "$dev" diff --git a/old-school/menu-select b/old-school/menu-select index 1dbd847..9b340ac 100755 --- a/old-school/menu-select +++ b/old-school/menu-select @@ -62,28 +62,18 @@ hwclock_to_system() case "$1" in boot-ram) - mkdir /cdrom /btrfs - bootwait samizdat-cdrom - - losetup_layers || error - modprobe btrfs || error - btrfs device scan || error - uuid=$(choose_uuid) || error - [ "$uuid" ] || error - - mount -t btrfs -o loop,subvol=ROOT UUID="$uuid" /btrfs memtotal=$(sed -ne 's/MemTotal: *//p' /proc/meminfo) ramdisk=$((1024 * ${memtotal% *} / 2)) [ $ramdisk -ge 256 ] || ramdisk=256 modprobe brd rd_size=$ramdisk - btrfs device add /dev/ram0 /btrfs - mount -o rw,remount /btrfs - mount -o move /btrfs /root - mkdir /root/cdrom - mount -o move /cdrom /root/cdrom - - bootdone root-mounted + init_gpg || error + init_samizdat /dev/ram0 '' || { + umount /root/cdrom + umount /root/outerfs + umount /root + error + } ;; boot-overwrite|boot-new|boot-luks) dev="$2" @@ -109,7 +99,8 @@ case "$1" in start_meter "Allocating ${megs}MB in '$loopfile' on $dev..." - if init_samizdat "$loopfile" "$megs" "$loopfile"k; then + if init_samizdat_blockdev "$loopfile" "$megs" "$loopfile"k && + init_samizdat /dev/mapper/samizdatcrypt "$imgfile"; then stop_meter done. else stop_meter error! -- cgit v1.2.3