如何更改默认启动分区?

如何更改默认启动分区?

我在笔记本电脑上安装了 Antergos,然后安装了 Ubuntu。 Ubuntu 检测到我安装了另一个 Linux,因此它将 Antergos 添加到其 grub 菜单中。每次启动时,grub 都会从 Ubuntu 分区加载。如何将另一个 grub 文件设置为默认文件?

我的分区是:

  • Antergos 启动分区(想要从这里加载 grub.cfg) - /dev/sda1
  • Antergos 根分区 - /dev/sda2
  • Ubuntu 分区(grub 从此处加载)- /dev/sda6

答案1

在传统 BIOS 系统中,BIOS 会查找其设置为引导的磁盘的主引导记录 (MBR)。这是磁盘的前 512 字节,包含引导加载程序过程的第一阶段,在您的情况下这将是 grub。此阶段的唯一工作是在包含 /boot 的驱动器上正常定位并加载第二阶段。 MBR 将这些路径硬编码到其中,为了更改它们,您必须从您希望其指向的系统(或系统的 chroot)重新安装 MBR grub-install。如果您可以启动系统,那么这很简单,但如果不能,则必须使用 livecd 并 chroot 进入您的系统;请参阅说明这里关于如何做到这一点。

但是,在您的情况下,antergos grub 配置中不会包含 ubuntu 发行版,因此您将无法启动它,直到您添加它。如果这是您的预期目标,您还可以将 ubuntu grub 配置配置为默认启动 antergos。任何一种方法都是可以接受的,并且取决于您想要实现的目标。

答案2

用于grub-install将 grub 安装到(/dev/sda指向grub/dev/sda1 正如@SHW所描述的) 并使用或设置boot标志。/dev/sda1fdiskparted

您可能需要删除boot标记/dev/sda6(再次使用fdiskparted)。

答案3

在 UEFI 系统中(我不知道旧版 BIOS):

  1. 使用以下命令找到您的 efi 分区sudo lsblk -f并记下其 UUID(它应该是一个vfat几百 Mb 的分区)。我们将此分区视为本例中的/dev/mmcblkxUUID 。XXXX-XXXX

  2. 使用命令创建/boot/efi/文件夹并挂载EFI分区/boot/efi

    sudo mount /dev/mmcblkx /boot/efi
    
  3. 验证我们是否安装了正确的 EFI 分区,并检查它是否有一个/boot/efi/EFI文件夹以及该 EFI 文件夹内是否包含您系统中安装的操作系统。

    我的 /boot/efi/EFI 看起来像这样:

    user@user-mypc:~> sudo ls /boot/efi/EFI/
    BOOT  GRUB  linux  opensuse  ubuntu
    
  4. 添加 EFI 分区条目以挂载/boot/efi/etc/fstab.

    UUID=XXXX-XXXX /boot/efi vfat utf8 0 2
    
  5. 通过以下方式安装 GRUB

    sudo grub2-install --target=i386-efi --efi-directory=/boot/efi/ --bootloader-id=GRUB
    
  6. sudo update-bootloader --refresh

  7. sudo grub2-mkconfig -o /boot/grub/grub.cfg

  8. 重启

相关内容