diff --git a/dracut-modules/90void-usb/squashfs-img.sh b/dracut-modules/90void-usb/squashfs-img.sh index b1c1a4a..6737585 100644 --- a/dracut-modules/90void-usb/squashfs-img.sh +++ b/dracut-modules/90void-usb/squashfs-img.sh @@ -2,7 +2,7 @@ type getarg > /dev/null 2>&1 || source /lib/dracut-lib.sh -[ ! -d /sysroot/container ] && mkdir -p /sysroot/container +[ ! -d /run/void-usb/container ] && mkdir -p /run/void-usb/container CONTAINER="$(getarg void-usb-container)" case "$CONTAINER" in @@ -19,7 +19,7 @@ esac # try to wait for $CONTAINER to be available function mount_container { - mount -t f2fs -o nodev,nosuid "$CONTAINER" /sysroot/container; + mount -t f2fs -o nodev,nosuid "$CONTAINER" /run/void-usb/container; } if [ -b "$CONTAINER" ]; then @@ -52,8 +52,8 @@ else fi fi -if [ -f /sysroot/container/squashfs.img ]; then - losetup -r -f /sysroot/container/squashfs.img +if [ -f /run/void-usb/container/squashfs.img ]; then + losetup -r -f /run/void-usb/container/squashfs.img else echo "Failed to find squashfs image. Dropping into an emergency shell. Good luck!" emergency_shell diff --git a/install-stage1.sh b/install-stage1.sh index 9cb2998..c6b9051 100644 --- a/install-stage1.sh +++ b/install-stage1.sh @@ -35,7 +35,7 @@ function yesno { } function run_in_target { - echo "$@" | xchroot /mnt/target sh + echo "$@" | chroot /mnt/target sh } clear @@ -135,17 +135,29 @@ mkfs.f2fs -f -l "boot" "$TARGET_PART_BOOT" mkfs.f2fs -f -l "container" "$TARGET_PART_BIG" mkdir -p /mnt/target -mount -t tmpfs -o size=3g tmpfs /mnt/target #TODO don't use default permissions for tmpfs +mount -t tmpfs -o size=3g tmpfs /mnt/target + +# used for chroot later +mkdir /mnt/target/run +mount --rbind /run /mnt/target/run +mkdir /mnt/target/proc +mount --rbind /run /mnt/target/proc +mkdir /mnt/target/sys +mount --rbind /run /mnt/target/sys +mkdir /mnt/target/dev +mount --rbind /run /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 /mnt/target/container -mount "$TARGET_PART_BIG" /mnt/target/container +mkdir /mnt/target/run/void-usb/container +mount "$TARGET_PART_BIG" /mnt/target/run/void-usb/container mkdir /mnt/target/home -mkdir /mnt/target/container/home -mount --bind /mnt/target/container/home /mnt/target/home +mkdir /mnt/target/run/void-usb/container/home +mount --bind /mnt/target/run/void-usb/container/home /mnt/target/home clear echo "Storage is now prepared and ready for installation. @@ -198,7 +210,6 @@ compress="xz" add_dracutmodules+=" void-usb " omit_dracutmodules+=" nvdimm resume "' > /mnt/target/etc/dracut.conf.d/99-void-usb.conf -#TODO: mount /container mkdir -p /mnt/target/lib/dracut/modules.d/90void-usb chmod 755 /mnt/target/lib/dracut/modules.d/90void-usb wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/module-setup.sh https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/dracut-modules/90void-usb/module-setup.sh @@ -216,14 +227,13 @@ echo " echo "# See fstab(5). # -# /container and the underlying image for / are mounted by initramfs -# TODO: Do we need them here? +# /run/void-usb/container and the underlying image for / are mounted by initramfs # TODO: add overlayfs 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 -/container/home /home none bind 0 0 +/run/void-usb/container/home /home none bind 0 0 " > /mnt/target/etc/fstab if grep "#KEYMAP=" /mnt/target/etc/rc.conf; then @@ -325,7 +335,7 @@ chmod 744 /mnt/target/etc/kernel.d/post-remove/99-void-usb run_in_target xbps-reconfigure -fa -# running xchroot directly bc run_in_target function doesn’t allow user input -xchroot /mnt/target /opt/void-usb/backup-fs +# running chroot directly bc run_in_target function doesn’t allow user input +chroot /mnt/target /opt/void-usb/backup-fs # diff --git a/notes_to_self.txt b/notes_to_self.txt index 975ba4d..88c83cc 100644 --- a/notes_to_self.txt +++ b/notes_to_self.txt @@ -13,9 +13,9 @@ 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 /container instead of its own partition +move /boot to /run/void-usb/container instead of its own partition look into UEFI specs and general availability of FAT16 support - - if possible, shrink ESP and move GRUB to /container + - if possible, shrink ESP and move GRUB to /run/void-usb/container add manufacturer where users select the target device show user-firently status instead of scrolling output from all sorts of tools @@ -39,13 +39,11 @@ f2fs for home boot setup + dracut configuration - root=/dev/loop0 ro - custom dracut module - - pre-udev script - - make loop0 appear - pre-mount script - - mount /container by UUID (possibly passed from a kernel command line parameter) + - mount /run/void-usb/container by UUID (passed from a kernel command line parameter) - losetup the squashfs img - pre-pivot script? - - do we need one to move over the /container mount to real root? + - do we need one to move over the /run/void-usb/container mount to real root? - overlayfs gets mounted from fstab when backing up diff --git a/opt/backup-fs b/opt/backup-fs index 7e5face..328946f 100644 --- a/opt/backup-fs +++ b/opt/backup-fs @@ -49,13 +49,13 @@ Backing up the system will take some time. if yesno; then echo "Backing up..." #TODO: fiddle with squashfs parameters to find optimal settings - #TODO: What (if any) device nods need to be created? (man mksquashfs -> pseudo file) - mksquashfs / /container/new_squashfs.img -b 1M -comp xz -one-file-system -progress -noappend -e /var/cache/xbps + #TODO: exclude /tmp + mksquashfs / /run/void-usb/container/new_squashfs.img -b 1M -comp xz -one-file-system -progress -noappend -e /var/cache/xbps #TODO: check if enough disk space # yes -> create new image next to old image # no -> create new image in RAM #TODO: figure out when appending to existing squashfs is a good idea - mv /container/new_squashfs.img /container/squashfs.img + mv /run/void-usb/container/new_squashfs.img /run/void-usb/container/squashfs.img else echo "" echo "Not backing up."