从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

 

 

 

posted @   PYPYN  阅读(1474)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示