feat(os): Create syslinux boot loader for legacy BIOS machine (#7)
This commit is contained in:
parent
a654f1ad14
commit
84266e66cf
55
setup.sh
55
setup.sh
@ -612,11 +612,41 @@ function paru_install () {
|
|||||||
fi
|
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 () {
|
function configure_zfsbootmenu () {
|
||||||
#2.9
|
#2.9
|
||||||
paru_install 'zfsbootmenu'
|
paru_install 'zfsbootmenu'
|
||||||
mkdir -p '/etc/zfsbootmenu/posthooks.d'
|
|
||||||
cat > '/etc/zfsbootmenu/config.yaml' <<EOF
|
if [[ "${part_schema}" = 'gpt' ]]; then
|
||||||
|
mkdir -p '/etc/zfsbootmenu/posthooks.d'
|
||||||
|
cat > '/etc/zfsbootmenu/config.yaml' <<EOF
|
||||||
Global:
|
Global:
|
||||||
ManageImages: true
|
ManageImages: true
|
||||||
BootMountPoint: /efi
|
BootMountPoint: /efi
|
||||||
@ -633,6 +663,23 @@ Kernel:
|
|||||||
CommandLine: ro loglevel=0 zbm.import_policy=hostid
|
CommandLine: ro loglevel=0 zbm.import_policy=hostid
|
||||||
Prefix: vmlinuz
|
Prefix: vmlinuz
|
||||||
EOF
|
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
|
# Up here maybe 'ro quiet' instead of 'ro'. This is ZFSBootMenu's kernel
|
||||||
# command line.
|
# command line.
|
||||||
|
|
||||||
@ -688,7 +735,9 @@ function install_os_in_chroot () {
|
|||||||
|
|
||||||
# Install ZFSBootMenu image
|
# Install ZFSBootMenu image
|
||||||
configure_zfsbootmenu #2.9
|
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
|
generate-zbm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user