Compare commits

..

2 Commits

Author SHA1 Message Date
BodgeMaster b95b8ce634 notes to self: cut down on TODO list 2023-06-28 22:23:08 +02:00
BodgeMaster ef875380d0 install stage 1: keep /tmp out of squashfs image 2023-06-28 22:22:04 +02:00
2 changed files with 50 additions and 86 deletions

View File

@ -233,6 +233,7 @@ echo "# See fstab(5).
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_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 UUID=$(blkid --output value --match-tag UUID $TARGET_PART_EFI) /boot/efi vfat defaults,fmask=0077,dmask=0077 0 2
/run/void-usb/container/home /home 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 " > /mnt/target/etc/fstab
if grep "#KEYMAP=" /mnt/target/etc/rc.conf; then if grep "#KEYMAP=" /mnt/target/etc/rc.conf; then

View File

@ -2,22 +2,18 @@ TODO:
compare sizes of glibc and musl installations compare sizes of glibc and musl installations
try running multiple MC versions on musl (incl ThatModPack) try running multiple MC versions on musl (incl ThatModPack)
need xdg menu maker? need xdg menu maker?
check if there are problems with GRUBs --disk-module=native on real USB drives on real hardware
test that the (RAM) boot option allows you to install to the stick the system booted off test that the (RAM) boot option allows you to install to the stick the system booted off
adjust required USB stick and RAM size in README adjust required USB stick and RAM size in README
test kernel hooks and grub-config with all sorts of weird kernel/initramfs setups
- all names
- various compressions
do not rely on the RTC do not rely on the RTC
- change the message when configuring UTC/localtime to reflect that this is only for offline usage - change the message when configuring UTC/localtime to reflect that this is only for offline usage
- use ntp to get time - use ntp to get time
- only fall back to using rtc if offline - only fall back to using rtc if offline
- do not set the RTC - do not set the RTC
move /boot to /run/void-usb/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 show user-friendly status instead of scrolling output from all sorts of tools
- if possible, shrink ESP and move GRUB to /run/void-usb/container shutdown squashfs updater cant get user input!?
add manufacturer where users select the target device make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes
show user-firently status instead of scrolling output from all sorts of tools fix EFI boot
musl downsides: musl downsides:
- no nvidia drivers - no nvidia drivers
@ -26,91 +22,58 @@ musl upsides:
- ?? - ??
ideas: Stage 1:
use shell script for init, call real init via exec
system lives on squashfs
-> overlayfs with tmpfs set up at boot
-> new system image generated and written back on shutdown
-> user-selectable ("Do you want to save changes to the system? This will take some time.")
-> fstrim (if applicable)
swap on zram
f2fs for home
boot setup + dracut configuration
- root=/dev/loop0 ro
- custom dracut module
- pre-mount script
- 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 /run/void-usb/container mount to real root?
- overlayfs gets mounted from fstab
when backing up
- do not cross file system boundaries
- exclude /tmp, package cache, logs
- possibly only save the changes in separate squashfs images
- either until it takes up too much space or until a certain number of images exist
- consolidate when the user requests it or when exceeding the limit
Steps to install:
- make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes
- select kb layout - select kb layout
- install base system - install base system
-> select installation type (x86_32/x86_64/aarch64, glibc/musl) -> select installation type (x86_32/x86_64/aarch64, glibc/musl)
-> if musl, add that bit to repo url -> if musl, add that bit to repo url
-> configure overlayfs setup
-> startup script
-> shutdown squashfs updater
-> rc.shutdown?
-> configure time zone -> configure time zone
-> selection dialog? -> selection dialog?
-> symlink /etc/localtime -> symlink /etc/localtime
-> set up an initramfs to mount the squashfs/overlayfs at boot time
-> prepare 2nd stage installation -> prepare 2nd stage installation
-> auto login root and put script in .bashrc -> auto login root and put stage 2 script in .bashrc
-> better method?
-> build squashfs -> build squashfs
- prompt user to reboot to finish installation - prompt user to reboot to finish installation
- second stage installation
-> configure services Stage 2:
-> dbus -> configure services
-> NetworkManager -> dbus
-> acpid -> NetworkManager
-> ask user to connect to network using nmtui -> acpid
-> install packages -> ask user to connect to network using nmtui
-> setxkbmap xauth xorg-video-drivers mesa mesa-dri xorg-server elogind xorg-input-drivers xrandr acpilight xhost xinit xrdb xinput xgamma xset iceauth sessreg transset xcmsdb xkbutils xmodmap dejavu-fonts-ttf -> install packages
-> terminal? -> setxkbmap xauth xorg-video-drivers mesa mesa-dri xorg-server elogind xorg-input-drivers xrandr acpilight xhost xinit xrdb xinput xgamma xset iceauth sessreg transset xcmsdb xkbutils xmodmap dejavu-fonts-ttf
-> browser? -> terminal?
-> prism launcher -> browser?
-> java (multiple versions?) -> prism launcher
-> pipewire (pulsemixer?) -> java (multiple versions?)
-> ask about nvidia driver -> pipewire (pulsemixer?)
-> install if needed -> ask about nvidia driver
-> find out when and where to set `nvidia-drm.modeset=1` -> install if needed
-> ask whether to use CTWM or IceWM -> find out when and where to set `nvidia-drm.modeset=1`
-> short description of up and downsides -> ask whether to use CTWM or IceWM
-> if CTWM, also install -> short description of up and downsides
-> xclock -> if CTWM, also install
-> if IceWM, also install -> xclock
-> network-manager-applet -> if IceWM, also install
-> sound applet -> network-manager-applet
-> configure zram swap -> sound applet
-> passwd -l root -> configure zram swap
-> populate /etc/skel -> passwd -l root
-> ultimate bashrc bc why not -> populate /etc/skel
-> first run message in xinitrc -> ultimate bashrc bc why not
-> auto-deletes itself -> first run message in xinitrc
-> displays README.txt on root dir of the F2FS partition -> auto-deletes itself
-> if using CTWM -> displays README.txt on root dir of the F2FS partition
-> put xclock in xinitrc -> if using CTWM
-> configure more sane defaults -> put xclock in xinitrc
-> prepend bashrc with a thing that checks of xorg is running -> configure more sane defaults
-> if not, run startx and ask user whether to shut down, reboot, or do nothing afterwards -> prepend bashrc with a thing that checks of xorg is running
-> set up user -> if not, run startx and ask user whether to shut down, reboot, or do nothing afterwards
-> ask for username -> set up user
-> run useradd (non-interactively) -> ask for username
-> run passwd (interactively) -> run useradd (non-interactively)
-> add to groups -> run passwd (interactively)
-> including sudo group -> add to groups
-> build new squashfs image and reboot -> including sudo group
-> build new squashfs image and reboot