在外部硬盘上安装 Kubuntu 时,GRUB 安装到我的主磁盘而不是硬盘上,尽管我将其设置为安装我的外部磁盘

在外部硬盘上安装 Kubuntu 时,GRUB 安装到我的主磁盘而不是硬盘上,尽管我将其设置为安装我的外部磁盘

我正在安装最新版本的 Kubuntu,安装过程很顺利。我正在 160gb 硬盘上安装 int。在安装过程中,我选择将引导加载程序安装到 /dev/sda,但即使驱动器已拔出,我也会在联想启动菜单中看到引导加载程序。我正在运行 Windows 10 作为我的主要操作系统。有人能告诉我或给我指出一篇文章或视频,告诉我如何解决这个问题或正确地解决这个问题吗?也许我做错了什么?

输出:mount | grep sda- 运行无错误,无输出。输出:ls /etc/default/grub-/etc/defaut/grub 输出:ls /boot-config-5.4.0-26-generic initrd.img.old memtest86+_multiboot.bin vmlinuz.old grub memtest86+.bin System.map-5.4.0-26-generic initrd.img memtest86+.elf vmlinuz

输出:ls /boot/grub-gfxblacklist.txt grubenv unicode.pf2

输出:(mount | grep ^\/dev不在 chroot 中)-/dev/sdb1 on /cdrom type vfat (ro,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) /dev/loop0 on /rofs type squashfs (ro,noatime)

答案1

现在,我想最好从头开始。我花了一些时间写下这些,所以请阅读并尝试理解每个步骤。

  • 所有操作都应从 Linux liveUSB 进行,不涉及窗口,否则事情会变得更加复杂。
  • 分区。通常,你的 Linux 驱动器如下所示:

    / 根分区 ext4 - 通常是 sda1(sdb1 等),即第一个主分区。 swap - 交换分区 - 通常是 sda5,在扩展分区空间中(通常是可选的,如果您有大量 RAM 并且负载不是太大)。

GRUB 引导加载程序进入/boot根分区的文件夹,您可以在那里找到文件夹“grub”。

  • 您执行的所有操作都将在挂载根分区的情况下进行。这意味着,在安装 grub 或执行任何操作之前,应先挂载根分区。
  • 在 liveUSB 上,我们必须将外部驱动器安装到某个文件夹,例如mount /dev/sda1 /mnt。此文件夹将成为我们新系统的根目录。
  • 现在,有些文件夹是在系统启动和运行期间动态创建和更改的。我们需要 liveUSB,因此为了访问这些文件夹,我们需要在 chroot 之前将它们安装到我们的外部驱动器根位置。因为之后将无法访问 chroot 之外的文件夹。

sudo mount --bind /dev /mnt/dev

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

  • Chroot 到我们的根目录,如chroot /mnt /bin/bash。这里我们的系统从 liveUSB 启动,但所有命令的执行都像从我们想要系统启动的外部硬盘启动一样。
  • 此时,我们应该已准备好所有文件,我们只需安装 grub。此步骤已完成,因为它会在系统启动时显示菜单。
  • 问题是 grub 的操作系统路径/驱动器错误,因此当您尝试启动时它无法启动。有两种方法可以解决这个问题。

简单方法:运行 upate-grub2 并希望它以正确的方式重新创建启动配置。我可能会失败,因为某些 BIOS 会改变驱动器顺序,并改变 sda、sdb、sdc 等命名。

困难的方法是手动编辑 grub 配置,但是对于这个任务,你应该阅读一些有关 grub 配置和 grub 控制台的资料。

相关内容