从BIOS+MBR迁移到UEFI+GPT 并修复Ubuntu Grub2 UEFI引导

之前在虚拟机里使用了默认配置安装了Ubuntu16.04,由于需要扩充磁盘空间不得不将磁盘从MBR分区表转换到GPT分区表。

简单介绍一下思路:首先通过Windows下的DiskGenius软件备份Ubuntu的根分区,再通过新建虚拟机并配置UEFI环境安装一个新的Ubuntu,然后将之前的备份根分区恢复到这个新的Ubuntu环境,最后修改fstab并通过使用Grub2命令手动加载内核启动系统后在系统里通过update-grub工具修复引导。

先新建一个虚拟机安装一个Windows系统(很多Windows PE工具没有Vmware磁盘驱动),再新建一个虚拟机安装UEFI的Linux系统。将需要迁移的Linux系统和旧的Linux系统磁盘挂载到Windows系统虚拟机下。

安装DiskGenius软件,使用该软件备份旧的Linux系统分区到镜像。注意,选择按扇区备份,不要使用按文件备份。

然后使用备份的镜像恢复到新的Linux系统上。

至此,系统迁移就算完成了,接下来修复引导。我们要准备一个系统安装镜像,并启动它,我们需要修改系统中的fstab,从而让系统可以正确认到根目录,交换目录所挂载的磁盘。

打开磁盘管理工具,并挂载磁盘。然后可以通过下面的命令查看UUID

ls -l /dev/disk/by-uuid/

修改fstab中的UUID

重启系统后显示grub界面,仍旧不能进入系统,此时我们就需要手动加载内核来启动系统。

先输入ls命令查看系统分区

使用下面的指令来设置启动参数,其中gpt2对应sda2,vmlinuz对应系统内核。系统内核可能有多个,请按tab键补全并选择自己的内核,root代表根目录,boot就是启动内核。

set root=(hd0,gpt2)
linux /boot/vmlinuz ro root=/dev/sda1
initrd /initrd.img
boot

成功进入桌面后使用下面的命令修复启动项,并重启系统。至此系统迁移完成。

sudo update-grub

如果本文对你有帮助,请不要吝啬你的赞。转载请注明出处!

发表评论

您的电子邮箱地址不会被公开。