feat(os): Create syslinux boot loader for legacy BIOS machine (#7)
This commit is contained in:
parent
a654f1ad14
commit
84266e66cf
51
setup.sh
51
setup.sh
@ -612,9 +612,39 @@ function paru_install () {
|
||||
fi
|
||||
}
|
||||
|
||||
function configure_syslinux () {
|
||||
paru_install 'syslinux'
|
||||
cp /usr/lib/syslinux/bios/*.c32 /boot/syslinux
|
||||
extlinux --install /boot/syslinux
|
||||
cat > /boot/syslinux/syslinux.cfg <<EOF
|
||||
UI menu.c32
|
||||
PROMPT 0
|
||||
|
||||
MENU TITLE ZFSBootMenu
|
||||
TIMEOUT 100
|
||||
|
||||
DEFAULT zfsbootmenu
|
||||
|
||||
LABEL zfsbootmenu
|
||||
MENU LABEL ZFSBootMenu
|
||||
KERNEL /zfsbootmenu/vmlinuz-bootmenu
|
||||
INITRD /zfsbootmenu/initramfs-bootmenu.img
|
||||
APPEND zfsbootmenu quiet loglevel=0
|
||||
|
||||
LABEL zfsbootmenu-backup
|
||||
MENU LABEL ZFSBootMenu (Backup)
|
||||
KERNEL /zfsbootmenu/vmlinuz-bootmenu-backup
|
||||
INITRD /zfsbootmenu/initramfs-bootmenu-backup.img
|
||||
APPEND zfsbootmenu quiet loglevel=0
|
||||
EOF
|
||||
dd bs=440 count=1 conv=notrunc if='/usr/lib/syslinux/bios/mbr.bin' of="${boot_drive}"
|
||||
}
|
||||
|
||||
function configure_zfsbootmenu () {
|
||||
#2.9
|
||||
paru_install 'zfsbootmenu'
|
||||
|
||||
if [[ "${part_schema}" = 'gpt' ]]; then
|
||||
mkdir -p '/etc/zfsbootmenu/posthooks.d'
|
||||
cat > '/etc/zfsbootmenu/config.yaml' <<EOF
|
||||
Global:
|
||||
@ -633,6 +663,23 @@ Kernel:
|
||||
CommandLine: ro loglevel=0 zbm.import_policy=hostid
|
||||
Prefix: vmlinuz
|
||||
EOF
|
||||
get_known_good_stub_loader
|
||||
else
|
||||
configure_syslinux
|
||||
cat > '/etc/zfsbootmenu/config.yaml' <<EOF
|
||||
Global:
|
||||
ManageImages: true
|
||||
BootMountPoint: /boot/syslinux
|
||||
InitCPIO: true
|
||||
Components:
|
||||
Enabled: true
|
||||
Versions: false
|
||||
ImageDir: /boot/syslinux/zfsbootmenu
|
||||
Kernel:
|
||||
Prefix: vmlinuz
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Up here maybe 'ro quiet' instead of 'ro'. This is ZFSBootMenu's kernel
|
||||
# command line.
|
||||
|
||||
@ -688,7 +735,9 @@ function install_os_in_chroot () {
|
||||
|
||||
# Install ZFSBootMenu image
|
||||
configure_zfsbootmenu #2.9
|
||||
get_known_good_stub_loader #2.10
|
||||
generate-zbm
|
||||
|
||||
# Yes, we do this twice so we immediately get a functional backup file
|
||||
generate-zbm
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user