将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。
程序:
-
sudo mount /dev/sdb2 /mnt
根分区。 (sdb2是ext4 /) -
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
(绑定所需的文件夹)。 -
sudo mount /dev/sdb1 /mnt/boot/efi
#sdb1是sdb上的EFI分区。 -
sudo chroot /mnt
-
update-grub
-
grub-install /dev/sdb
-
update-grub
-
exit
现在我们需要知道设备sdb上新创建的EFI分区(sdb1)的UUID。
打开“磁盘”应用。
复制sdb1的UUID。
打开fstab文件。
sudo nano /mnt/etc/fstab
。 (注意:我使用过gedit,附带的照片是gedit,如下所示)。
将UUID粘贴在仪式上。
保存并关闭。
现在重启。
如果您在传统BIOS模式下启动Grub,您可以使用当前的Ubuntu安装(重新)将其安装到任何带grub-install
驱动器上。 (无需启动实时系统,就像需要在无法启动的系统上重新安装/修复Grub一样。)
-
跑:
sudo grub-install /dev/sdX
将
sdX
替换为当前分配给您将在以后用作引导设备的驱动器的名称。 -
使用新的Grub安装将BIOS配置为从驱动器引导。
没有必要删除旧的Grub安装。