diff --git a/install-stage1.sh b/install-stage1.sh index c2abcfb..33de819 100644 --- a/install-stage1.sh +++ b/install-stage1.sh @@ -93,7 +93,6 @@ fi # new GPT # 2M BIOS GRUB # 268M ESP -# 1G boot # everything else one big partition echo "g n @@ -107,10 +106,6 @@ n n -+1G -n - - t 1 @@ -120,18 +115,13 @@ t 1 t 3 -136 -t -4 20 w" | fdisk --wipe always --wipe-partitions always "/dev/$TARGET_DISK" TARGET_PART_BIOS="$(lsblk --raw --noheadings --output PATH "/dev/$TARGET_DISK" | sed -n '2p')" TARGET_PART_EFI="$(lsblk --raw --noheadings --output PATH "/dev/$TARGET_DISK" | sed -n '3p')" -TARGET_PART_BOOT="$(lsblk --raw --noheadings --output PATH "/dev/$TARGET_DISK" | sed -n '4p')" -TARGET_PART_BIG="$(lsblk --raw --noheadings --output PATH "/dev/$TARGET_DISK" | sed -n '5p')" +TARGET_PART_BIG="$(lsblk --raw --noheadings --output PATH "/dev/$TARGET_DISK" | sed -n '4p')" mkfs.vfat -F32 -n "EFIBOOT" "$TARGET_PART_EFI" -mkfs.f2fs -f -l "boot" "$TARGET_PART_BOOT" mkfs.f2fs -f -l "container" "$TARGET_PART_BIG" mkdir -p /mnt/target @@ -148,12 +138,13 @@ mkdir /mnt/target/dev mount --rbind /dev /mnt/target/dev # actual storage -mkdir /mnt/target/boot -mount "$TARGET_PART_BOOT" /mnt/target/boot -mkdir /mnt/target/boot/efi -mount "$TARGET_PART_EFI" /mnt/target/boot/efi mkdir -p /mnt/target/run/void-usb/container mount "$TARGET_PART_BIG" /mnt/target/run/void-usb/container +mkdir /mnt/target/boot +mkdir /mnt/target/run/void-usb/container/boot +mount --bind /mnt/target/run/void-usb/container/boot /mnt/target/boot +mkdir /mnt/target/boot/efi +mount "$TARGET_PART_EFI" /mnt/target/boot/efi mkdir /mnt/target/home mkdir /mnt/target/run/void-usb/container/home mount --bind /mnt/target/run/void-usb/container/home /mnt/target/home @@ -199,8 +190,6 @@ echo "%wheel ALL=(ALL:ALL) ALL" > /mnt/target/etc/sudoers.d/wheel_as_sudo_group. mkdir -p /mnt/target/opt/void-usb chmod 755 /mnt/target/opt/void-usb -echo "UUID=$(blkid --output value --match-tag UUID $TARGET_PART_BIG)" > /mnt/target/opt/void-usb/container - echo '# Void USB dracut configuration hostonly="no" @@ -230,8 +219,8 @@ echo "# See fstab(5). # /run/void-usb/container, /run/void-usb/overlay, and / are mounted by scripts in initramfs -UUID=$(blkid --output value --match-tag UUID $TARGET_PART_BOOT) /boot f2fs defaults,nodev,nosuid 0 2 UUID=$(blkid --output value --match-tag UUID $TARGET_PART_EFI) /boot/efi vfat defaults,fmask=0077,dmask=0077 0 2 +/run/void-usb/container/boot /boot none bind 0 0 /run/void-usb/container/home /home none bind 0 0 tmpfs /tmp tmpfs size=512m 0 0 " > /mnt/target/etc/fstab diff --git a/notes_to_self.txt b/notes_to_self.txt index 84fe0a9..f93f7c9 100644 --- a/notes_to_self.txt +++ b/notes_to_self.txt @@ -9,7 +9,6 @@ do not rely on the RTC - use ntp to get time - only fall back to using rtc if offline - do not set the RTC -move /boot to /run/void-usb/container instead of its own partition show user-friendly status instead of scrolling output from all sorts of tools shutdown squashfs updater can’t get user input!? make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes diff --git a/opt/grub-config b/opt/grub-config index a9f393d..c882832 100644 --- a/opt/grub-config +++ b/opt/grub-config @@ -4,7 +4,8 @@ OS_NAME="Void Linux USB" GRUB_PREFIX="/boot/efi/LOADER/grub" CFG_CUSTOM_BEFORE="custom_before.cfg" CFG_CUSTOM_AFTER="custom_after.cfg" -LINUX_CMDLINE="root=/dev/loop0 ro void-usb-container=$(cat /opt/void-usb/container)" +CONTAINER_UUID="$(blkid --output value --match-tag UUID "$(grep " /run/void-usb/container " /proc/mounts | sed -e 's/ .*//')")" +LINUX_CMDLINE="root=/dev/loop0 ro void-usb-container=$CONTAINER_UUID" DEFAULT_LINUX=/boot/vmlinu? if [ ! -f "$DEFAULT_LINUX" ]; then @@ -48,9 +49,9 @@ function make_menuentry { echo " menuentry 'Linux $LINUX_VERSION' { echo 'Loading $LINUX...' - linux /$LINUX $LINUX_CMDLINE + linux /boot/$LINUX $LINUX_CMDLINE echo 'Loading initial ramdisk...' - initrd /$INITRAMFS + initrd /boot/$INITRAMFS }" >> "$GRUB_PREFIX/grub.cfg" } @@ -64,7 +65,7 @@ echo "# This file is auto-generated by $0. # $GRUB_PREFIX/$CFG_CUSTOM_BEFORE or # $GRUB_PREFIX/$CFG_CUSTOM_AFTER -search --fs-uuid --set=root $(blkid --output value --match-tag UUID "$(grep " /boot " /proc/mounts | sed -e 's/ .*//')") +search --fs-uuid --set=root $CONTAINER_UUID set menu_color_normal=white/black set menu_color_highlight=black/light-gray @@ -79,9 +80,9 @@ fi menuentry '$OS_NAME' { echo 'Loading Linux...' - linux /$DEFAULT_LINUX $LINUX_CMDLINE + linux /boot/$DEFAULT_LINUX $LINUX_CMDLINE echo 'Loading initial ramdisk...' - initrd /$DEFAULT_INITRAMFS + initrd /boot/$DEFAULT_INITRAMFS } submenu 'Choose kernel version...' {" > "$GRUB_PREFIX/grub.cfg"