Ubuntu系统盘由MBR+legacy转为GPT+EFI如何恢复grub引导

        最近实验室的服务器想做一下升级,把500G的西数换成4T的希捷。因为系统上有很多东西,所以最开始想的是直接做系统对拷,过程很顺利,虽然查了不少教程,但是发现最简单直观的方法还是用 dd 命令,实例如下:

sudo dd if=/dev/sdx of=/dev/sdy bs=128K conv=noerror,sync status=progress

解释一下参数的意义:if是指源盘,of是指目标盘,注意sdx和sdy没有数字后缀,这里拷贝的整个盘,而不是硬盘的某个分区。上述操作完成之后,理论上两个硬盘的信息是完全一致的,包括各个分区的UUID,所以dd操作之后直接替换硬盘就ok了,没有其他操作。

        但是蛋疼的地方来了。我原来500G的硬盘是MBR分区格式,不支持4T这么大的硬盘。也就是说我可以拿4T的硬盘做系统盘,没问题,但是我只能使用其中的2T空间,另外2T空间是无论如何无法获取的。具体MBR为什么最大支持2T的硬盘,诸位可以搜相关博客,不是我的重点。

        那怎么操作才能将MBR专程GPT,同时不影响硬盘里的系统信息呢。其实MBR转GPT格式很简单,以此输入以下命令就可以了:

sudo gdisk /dev/sdy
w
y

        但是蛋疼的地方又来了,这么操作之后,如果直接reboot的话,开机就无法进入系统了。很简单,grub对MBR和GPT是不兼容的,所以在转成GPT之后修复一下grub就OK了。

        下面是具体步骤:

      零,备份数据。任何方法都有可能出现意外,一定不要忘记备份数据。不过我的方法都是在新硬盘上操作,即使方

<think>我们正在处理Ubuntu 16.04.2 LTS系统引导问题。根据引用内容,我们知道用户可能是在双系统环境下(如Windows 7/10)安装了Ubuntu,现在引导出现了问题。修复引导的常见方法包括使用Live USB进入试用系统,然后使用Boot Repair工具或手动重新安装GRUB引导程序。 步骤: 1. 准备一个Ubuntu Live USB启动盘(与之前安装时相同,使用UltraISO刻录)。 2. 从U盘启动,选择“试用Ubuntu”(Try Ubuntu without installing)。 3. 连接网络(推荐,因为可能需要下载软件包)。 4. 打开终端,安装并使用Boot Repair工具(推荐方法)或者手动修复GRUB。 方法一:使用Boot Repair(自动修复) 步骤: a. 打开终端,依次输入以下命令: sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair b. 运行Boot Repair: boot-repair c. 在打开的窗口中选择“推荐修复”(Recommended repair),按照提示操作。 d. 修复完成后,重启计算机,检查引导是否正常。 方法二:手动修复GRUB(如果自动修复无效) 步骤: a. 在试用Ubuntu中打开终端,确定Ubuntu系统所在的分区(例如,根分区/在/dev/sda5,boot分区在/dev/sda6等)。可以使用命令: sudo fdisk -l 或者 lsblk 来查看分区情况。 b. 挂载根分区(假设根分区在/dev/sda5): sudo mount /dev/sda5 /mnt 如果有单独的boot分区(例如/dev/sda6),则挂载它: sudo mount /dev/sda6 /mnt/boot # 注意:如果boot是独立分区,则挂载到/mnt/boot c. 挂载其他必要的目录: sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo mount --bind /run /mnt/run sudo mount --bind /dev/pts /mnt/dev/pts # 可选,但推荐 d. 切换到挂载的系统: sudo chroot /mnt e. 重新安装GRUBgrub-install /dev/sda # 注意:/dev/sda是磁盘,不是分区(如sda1等) update-grub f. 退出chroot环境,重启: exit sudo umount /mnt/dev/pts # 如果之前挂载了 sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt/run sudo umount /mnt/boot # 如果之前挂载了单独的boot分区 sudo umount /mnt sudo reboot 注意:如果系统是UEFI模式(根据引用[4]中的信息,有些用户可能是UEFI+GPT分区),则修复步骤可能不同。在UEFI模式下,需要确保有一个EFI系统分区(通常是一个FAT32格式的分区,大小约100MB~500MB,标记为efi),并且GRUB会安装到该分区。 对于UEFI模式的修复: a. 在试用Ubuntu中,同样先挂载根分区和EFI分区(假设EFI分区为/dev/sda1,根分区为/dev/sda5): sudo mount /dev/sda5 /mnt sudo mount /dev/sda1 /mnt/boot/efi # 注意:EFI分区通常挂载在/boot/efi b. 挂载其他目录(同上)并进入chroot环境。 c. 在chroot环境中,重新安装GRUBgrub-install /dev/sda update-grub d. 退出并重启。 如果以上方法都不能解决问题,可能需要检查BIOS/UEFI设置,确保启动顺序正确(例如,在UEFI中,可能需要将Ubuntu设置为第一启动项)。 根据引用[1][2][3][4],用户安装时可能采用了不同的分区方式(如MBRGPT),以及不同的启动模式(Legacy BIOS或UEFI),因此修复方法需要根据实际情况调整。 重要提示:在操作前,请备份重要数据,以防操作失误导致数据丢失。 相关问题: 1. 如何判断我的系统是Legacy BIOS还是UEFI启动模式? 2. 在修复GRUB时,如何确定我的Ubuntu系统分区和EFI分区? 3. Boot Repair工具修复失败怎么办? 4. 双系统下Windows启动项丢失如何恢复? 5. 如何避免Ubuntu系统引导问题再次发生?</think>### 修复 Ubuntu 16.04.2 LTS 系统引导问题的步骤 #### 一、准备工作 1. **制作 Live USB** - 下载 [Ubuntu 16.04.2 ISO](https://www.ubuntu.com/download/server) - 使用 [UltraISO](https://www.ultraiso.com/) 或 [Rufus](https://rufus.ie/) 刻录到 U 盘(写入模式选 `USB-ZIP+` 或 `USB-HDD+`)[^1][^2] 2. **进入 Live 环境** - 插入 U 盘重启电脑,按 `F12`/`Del` 进入 BIOS - 选择 **U 盘启动** → 选 **试用 Ubuntu**(Try Ubuntu without installing)[^1] --- #### 二、修复引导(两种方法) ##### ▶ 方法 1:使用 Boot-Repair(推荐) ```bash # 在 Live 环境的终端中执行: sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install -y boot-repair boot-repair # 启动图形工具 ``` - 点击 **Recommended repair** → 按提示操作 → 重启后检查引导[^1] ##### ▶ 方法 2:手动修复 GRUB ```bash # 1. 查看分区(确认 Ubuntu 根分区和 EFI 分区) sudo fdisk -l # 通常根分区如 /dev/sda5,EFI 分区如 /dev/sda1(FAT32 格式) # 2. 挂载分区(假设根分区为 /dev/sda5) sudo mount /dev/sda5 /mnt sudo mount /dev/sda1 /mnt/boot/efi # 仅 UEFI 模式需要 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys # 3. 重装 GRUB sudo chroot /mnt grub-install /dev/sda # sda 是磁盘(非分区) update-grub exit sudo reboot ``` --- #### 三、常见问题处理 1. **UEFI/GPT 系统** - 修复前检查: ```bash ls /sys/firmware/efi/efivars # 若存在文件则为 UEFI 模式 ``` - 确保 **EFI 分区**(100~500MB FAT32)正确挂载到 `/boot/efi`[^4] 2. **Legacy BIOS/MBR 系统** - 直接运行 `grub-install /dev/sda` 无需挂载 EFI 分区 3. **Windows 双系统引导丢失** - 修复 Ubuntu 后执行: ```bash sudo update-grub # 自动扫描并添加 Windows 启动项 ``` --- #### 四、验证修复 - 重启后移除 U 盘,观察是否出现 **GRUB 引导菜单** - 若仍失败,检查 BIOS 设置: - UEFI 模式:**Secure Boot 禁用** → **Ubuntu 设为第一启动项** - Legacy 模式:**启动顺序调整为硬盘优先** > 提示:操作前备份重要数据,误操作可能导致数据丢失。 --- ### 相关问题 1. 如何区分 UEFILegacy BIOS 启动模式? 2. 修复 GRUB 时出现 "grub-install: error: failed to get canonical path" 如何解决? 3. 双系统下 Windows 更新后 Ubuntu 引导丢失如何彻底修复? 4. 除 Boot-Repair 外,还有哪些工具可以修复 Linux 引导? 5. Ubuntu 18.04/20.04 的引导修复步骤与 16.04 有何不同? [^1]: 硬盘分区、启动盘制作及分区挂载方法参考 [^2]: ISO 文件及引导文件处理流程 [^3]: Ubuntu Server 版安装环境参考 [^4]: UEFI/GPT 模式检测及分区要求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值