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

前段时间我在我的SSD上安装了Linux,sdb1。 我的主目录sdc1也有1TB的驱动器。 我在另一个硬盘驱动器sda1上安装了Windows,我在2年多的时间里没有启动它。 它的大小是太字节。 我想摆脱Windows并利用额外的空间而无需重新安装Linux,但Grub是在Windows硬盘驱动器sda1上。 我想做的是将Grub放到我的SSD,sdb1,如果可能的话,为了格式化Windows驱动器,sda1,并有额外的空间。 它是计算机上的Legacy BIOS。

我用我的虚拟实用计算机做了一个跟踪,一个硬盘和一个硬盘。

我假设你已经在你的hdd上用gpt分区类型在UEFI启动模式下安装了windows。 SDA。

由于我的是一台虚拟实用计算机,我不需要担心备份。 我建议你做备份。

我没有考虑sdc用于单独的主分区,因为我没有其他驱动器免费。

程序:
登录Ubuntu的实时会话。

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

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

您可以在sda2上看到带有EFI分区的设备sda中安装了windows10。 这就是现在控制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粘贴在仪式上。

保存并关闭。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

现在重启。

在此处输入图像描述

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

  1. 跑:

     sudo grub-install /dev/sdX 

    sdX替换为当前分配给您将在以后用作引导设备的驱动器的名称。

  2. 使用新的Grub安装将BIOS配置为从驱动器引导。

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