将 Grub 移至新驱动器以摆脱 Windows

将 Grub 移至新驱动器以摆脱 Windows

不久前,我在 SSD sdb1 上安装了 Linux。我的主目录 sdc1 还有一个 1 TB 的驱动器。我的 Windows 安装在另一个硬盘 sda1 上,我已经 2 年多没有启动过它了。它有 1 TB 大小。我想摆脱 Windows 并利用这些额外空间而不重新安装 Linux,但 Grub 位于 Windows 硬盘 sda1 上。如果可能的话,我想将 Grub 放到我的 SSD sdb1 上,以便格式化 Windows 驱动器 sda1 并获得额外空间。它是计算机上的旧版 BIOS。

答案1

我已经使用配备有一块 HDD 和一块 SSD 的虚拟实用计算机进行了试用。

我假设您已经在 UEFI 启动模式下安装了 Windows,并且在硬盘上安装了 gpt 分区类型。sda。

由于我的是一台假的实用电脑,所以我不需要担心备份。我建议你进行备份。

由于我没有其他可用的驱动器,因此我没有考虑将 sdc 用于单独的主分区。

程序:
使用 Ubuntu 实时会话登录。

这是我的 sda-​​1tb hdd 和 sdb-120gb ssd。
我在 sda 上安装了 windows10,在 sdb 上安装了 Ubuntu18.04.1。Grub 在 sda 上。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

您可以看到 windows10 安装在设备 sda 上,而 EFI 分区在 sda2 上。这就是现在控制 grub 的东西。

重要提示:此分区 sda2 的 UUID 与设备 sdb 上的文件 /etc/fstab 中的文本匹配。

因为我们要格式化 sda。我们需要在 sdb 上创建 EFI 系统分区。sdb 只有一个分区 sdb1。我们必须在磁盘的起始处创建一个 EFI 分区。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

现在我们在磁盘 sdb 的起始处获得了 100mb 的未分配空间。为了在此磁盘上安装 grub,我们需要使用 FAT32 格式并带有 boot 和 esp 标志。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在这里如果你观察,我们在磁盘的开始处创建了 100mb 的 EFI 分区。它应该被命名为 sdb1。但 gparted 仍然将其显示为 sdb2。为了理清这个问题,
运行sudo sgdisk -s /dev/sdb

在此处输入图片描述

现在删除 sda 上的 EFI 分区(sda2)或者格式化整个设备 sda。

在此处输入图片描述

现在我们需要在 /dev/sdb 上安装 grub。

程序:

  1. sudo mount /dev/sdb2 /mnt # 安装根分区。(sdb2 是 ext4 /)
  2. for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    (装订所需的文件夹)。
  3. sudo mount /dev/sdb1 /mnt/boot/efi # sdb1 是 sdb 上的 EFI 分区。
  4. sudo chroot /mnt
  5. update-grub
  6. grub-install /dev/sdb
  7. update-grub
  8. exit

现在我们需要知道设备 sdb 上新创建的 EFI 分区(sdb1)的 UUID。

打开“磁盘”应用程序。
复制 sdb1 的 UUID。
打开 fstab 文件。
sudo nano /mnt/etc/fstab(注意:我使用了 gedit,下面附加的图片是 gedit)。
将 UUID 粘贴到正确位置。

保存并关闭。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

现在重新启动。

在此处输入图片描述

答案2

如果你在传统 BIOS 模式您可以grub-install使用当前的 Ubuntu 安装将其(重新)安装到任何驱动器。(无需像在无法启动的系统上重新安装/修复 Grub 那样启动实时系统。)

  1. 跑步:

    sudo grub-install /dev/sdX
    

    将其替换sdX为您将来打算用作启动设备的驱动器的当前分配的名称。

  2. 配置您的 BIOS 以从带有新 Grub 安装的驱动器启动。

没有必要消除旧的 Grub 安装。

相关内容