我的磁盘有 2 个操作系统,Alpine 和 Debian,并且 /home 位于单独的分区中。
引导加载程序是来自 Debian 的 grub,安装在 MBR(BIOS)中。
我想使用 Alpine 及其 extlinux 引导加载程序,这样我就可以删除其他操作系统以节省空间。
Alpine 位于 sda3 上
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 300M 0 part
├─sda2 8:2 0 47.5G 0 part /mnt
├─sda3 8:3 0 78.4G 0 part /
└─sda4 8:4 0 335.6G 0 part /home
我在 Alpine 中安装了 syslinux。对于 syslinux,MBR 的开头被覆盖,如下所示。
doas dd bs=440 count=1 conv=notrunc if=/usr/share/syslinux/mbr.bin of=/dev/sda
/boot 目录看起来像这样
System.map-lts extlinux.conf.old ldlinux.sys mboot.c32 vmlinuz-lts
config-lts initramfs-lts libcom32.c32 menu.c32
extlinux.conf ldlinux.c32 libutil.c32 vesamenu.c32
extlinux.conf
DEFAULT menu.c32
PROMPT 0
MENU TITLE Alpine/Linux Boot Menu
MENU HIDDEN
MENU AUTOBOOT Alpine will be booted automatically in # seconds.
TIMEOUT 10
LABEL lts
MENU DEFAULT
MENU LABEL Linux lts
LINUX /boot/vmlinuz-lts
INITRD /boot/initramfs-lts
APPEND root=UUID=b0bd16c2-3546-4392-a7b2-fb8206933a47 modules=sd-mod,usb-storage,ext4 quiet rootfstype=ext4
MENU SEPARATOR
然后我跑了
doas extlinux --install /boot
当我重新启动电脑时,“英特尔启动代理”不高兴,并带我进入 BIOS 磁盘选择。
USB 棒上的 Alpine live iso 可以正常启动,并且似乎使用 extlinux。所以我认为硬件是兼容的。请问这个设置有什么问题吗?
答案1
正如弗雷迪评论所说,包含引导目录的分区没有被标记为“引导”。
可以使用 root 权限使用 fdisk 工具启用引导标志。作为 sda1 的实例,它可以是:fdisk /dev/sda
然后a
,回答1
分区号,然后w
写入更改。 sda1 分区现在应该标记为引导分区。