* Let user know that SELinux will be re-enabled after reboot Signed-off-by: Maurice Zhou <jasper@apvc.uk> * compat with future releases: use zfs-dkms and newer repo Signed-off-by: Maurice Zhou <jasper@apvc.uk> * rm unused releasever option Signed-off-by: Maurice Zhou <jasper@apvc.uk> * let user aware of the ignorable errors Signed-off-by: Maurice Zhou <jasper@apvc.uk> * detailed explanations for errors during grub-menu generation Signed-off-by: Maurice Zhou <jasper@apvc.uk> * Build ZFS dkms module in installed system Signed-off-by: Maurice Zhou <jasper@apvc.uk> * switch to dkms package for better compatibility with kernels Signed-off-by: Maurice Zhou <jasper@apvc.uk> * add direct download links for live iso Signed-off-by: Maurice Zhou <jasper@apvc.uk> * rm zfs-fuse before install; mirrorlist Signed-off-by: Maurice Zhou <jasper@apvc.uk> * reformat notes Signed-off-by: Maurice Zhou <jasper@apvc.uk> * rm netconfig - networkmanager is enabled by default Signed-off-by: Maurice Zhou <jasper@apvc.uk> * load kernel module in live; Signed-off-by: Maurice Zhou <jasper@apvc.uk> * rm encrypted bpool: untested Signed-off-by: Maurice Zhou <jasper@apvc.uk> * use u=r,go= permission on key file Signed-off-by: Maurice Zhou <jasper@apvc.uk> * fix typo Signed-off-by: Maurice Zhou <jasper@apvc.uk> * use bash shell Signed-off-by: Maurice Zhou <jasper@apvc.uk> * suggest clean the disks Signed-off-by: Maurice Zhou <jasper@apvc.uk> * add grub-menu auto update Signed-off-by: Maurice Zhou <jasper@apvc.uk> * monitor kernel-core pkg Signed-off-by: Maurice Zhou <jasper@apvc.uk> * copyright 2021 Signed-off-by: Maurice Zhou <jasper@apvc.uk> * fix kernel var detection Signed-off-by: Maurice Zhou <jasper@apvc.uk> * read-only cache file Signed-off-by: Maurice Zhou <jasper@apvc.uk> * replace zfs-mount.service with zfs-mount-generator Signed-off-by: Maurice Zhou <jasper@apvc.uk> * notes for mount and POSIX-compliant Signed-off-by: Maurice Zhou <jasper@apvc.uk> * hard-code kernel version Signed-off-by: Maurice Zhou <jasper@apvc.uk> * fix chroot variable Signed-off-by: Maurice Zhou <jasper@apvc.uk> * fix grub cfg Signed-off-by: Maurice Zhou <jasper@apvc.uk> * fix grub Signed-off-by: Maurice Zhou <jasper@apvc.uk> * missing comment Signed-off-by: Maurice Zhou <jasper@apvc.uk> * comments Signed-off-by: Maurice Zhou <jasper@apvc.uk>
103 lines
2.8 KiB
Bash
103 lines
2.8 KiB
Bash
#!/bin/sh
|
|
|
|
# mountpoint of vfat-formatted partition
|
|
ESP_MNT=/boot/efi
|
|
|
|
# path to iso files relative to the partition
|
|
ISO_REL=/iso
|
|
|
|
# absolute path to iso files
|
|
ISO_PATH=${ESP_MNT}/${ISO_REL}
|
|
|
|
# df command needs warm up due to systemd mount-on-demand
|
|
ls $ISO_PATH 1> /dev/null
|
|
|
|
# vfat partition UUID
|
|
ESP_UUID=$(blkid -s UUID -o value $(df --output=source ${ISO_PATH} | tail -n +2))
|
|
|
|
cat <<EOF
|
|
submenu 'Boot from Live ISO' {
|
|
#if tpm module is loaded, grub might fail to setup loop
|
|
#error message: out of memory
|
|
#rmmod tpm
|
|
EOF
|
|
|
|
# limit detected number of ISOs, too many
|
|
# lines might crush grub
|
|
ISO_NUM=0
|
|
|
|
# for archlinux
|
|
for isofile in $ISO_PATH/archlinux-*.iso; do
|
|
if [ "$ISO_NUM" -gt 300 ]; then break; fi
|
|
isoname=${isofile##*/}
|
|
cat <<EOF
|
|
submenu "$isoname" {
|
|
insmod search_fs_uuid
|
|
set isorootuuid=$ESP_UUID
|
|
search --fs-uuid --no-floppy --set=isopart \$isorootuuid
|
|
set isopath=$ISO_REL
|
|
loopback loop0 (\$isopart)\$isopath/$isoname
|
|
set root=(loop0)
|
|
menuentry "Arch Linux install medium" {
|
|
linux /arch/boot/x86_64/vmlinuz-linux \\
|
|
earlymodules=loop img_dev=/dev/disk/by-uuid/\$isorootuuid img_loop=\$isopath/$isoname
|
|
initrd /arch/boot/intel-ucode.img
|
|
initrd /arch/boot/amd-ucode.img
|
|
initrd /arch/boot/x86_64/initramfs-linux.img
|
|
}
|
|
menuentry "Arch Linux install medium, Copy to RAM" {
|
|
linux /arch/boot/x86_64/vmlinuz-linux \\
|
|
earlymodules=loop img_dev=/dev/disk/by-uuid/\$isorootuuid img_loop=\$isopath/$isoname \\
|
|
copytoram
|
|
initrd /arch/boot/intel-ucode.img
|
|
initrd /arch/boot/amd-ucode.img
|
|
initrd /arch/boot/x86_64/initramfs-linux.img
|
|
}
|
|
menuentry "Arch Linux install medium with speech" {
|
|
linux /arch/boot/x86_64/vmlinuz-linux \\
|
|
earlymodules=loop img_dev=/dev/disk/by-uuid/\$isorootuuid img_loop=\$isopath/$isoname \\
|
|
accessibility=on
|
|
initrd /arch/boot/intel-ucode.img
|
|
initrd /arch/boot/amd-ucode.img
|
|
initrd /arch/boot/x86_64/initramfs-linux.img
|
|
}
|
|
}
|
|
EOF
|
|
ISO_NUM=$(( $ISO_NUM + 1 ))
|
|
done
|
|
|
|
# for ubuntu
|
|
for isofile in $ISO_PATH/ubuntu-*.iso; do
|
|
if [ "$ISO_NUM" -gt 300 ]; then break; fi
|
|
isoname=${isofile##*/}
|
|
cat <<EOF
|
|
submenu "$isoname" {
|
|
insmod search_fs_uuid
|
|
set isorootuuid=$ESP_UUID
|
|
search --fs-uuid --no-floppy --set=isopart \$isorootuuid
|
|
set isopath=$ISO_REL
|
|
loopback loop0 (\$isopart)\$isopath/$isoname
|
|
set root=(loop0)
|
|
menuentry "Ubuntu" {
|
|
linux /casper/vmlinuz \\
|
|
boot=casper iso-scan/filename=\$isopath/$isoname
|
|
initrd /casper/initrd
|
|
}
|
|
menuentry "Ubuntu, Copy to RAM" {
|
|
linux /casper/vmlinuz \\
|
|
boot=casper iso-scan/filename=\$isopath/$isoname \\
|
|
toram
|
|
initrd /casper/initrd
|
|
}
|
|
}
|
|
EOF
|
|
ISO_NUM=$(( $ISO_NUM + 1 ))
|
|
done
|
|
|
|
cat <<EOF
|
|
}
|
|
EOF
|
|
|
|
# archiso kernel cmdline from
|
|
# https://gitlab.archlinux.org/archlinux/archiso/-/tree/master/configs/releng/efiboot/loader/entries
|