Ubuntu 修复EFI启动更换硬盘后,通过Ubuntu Live环境修复系统

在日常使用电脑的过程中,更换硬盘是很常见的操作——可能是旧硬盘容量不足,也可能是出现了硬件故障。但对于安装了Ubuntu系统的用户来说,更换硬盘后往往会遇到无法正常启动的问题,此时Ubuntu Live环境就成了“救星”。本文将详细讲解如何通过Ubuntu Live环境修复系统,帮你一步步找回原本的Ubuntu系统。

一、修复前的准备工作

在进入Ubuntu Live环境开始修复前,先完成以下准备,避免后续操作中出现意外:

  1. 确保进入Live环境:用Ubuntu安装U盘或光盘启动电脑,在启动界面选择“Try Ubuntu without installing”(不安装试用Ubuntu),成功进入后,就进入了Ubuntu Live环境。
  2. 连接网络:修复过程中可能需要下载必要的工具或依赖包,建议提前连接好有线或无线网络(点击右上角网络图标即可配置)。
  3. 确认新硬盘安装正常:进入Live环境后,打开“磁盘”工具(或通过终端命令查看),确认新硬盘已被系统正确识别——这是后续修复的基础,若硬盘未识别,需先检查硬件连接(如SATA线、供电线)。

二、第一步:识别硬盘与分区,搞清楚“修哪里”

更换硬盘后,系统可能无法找到原有的分区和引导文件,所以第一步要先明确新硬盘的设备名称和原有系统分区的位置。

用终端命令查看分区信息

打开Ubuntu Live环境的终端(快捷键Ctrl+Alt+T),输入以下任意一个命令,查看硬盘和分区详情:

sudo fdisk -l

关键信息解读

执行命令后,会列出所有识别到的硬盘和分区,重点关注以下内容:

  • 硬盘设备名:通常新硬盘会显示为/dev/sda(机械硬盘或SATA固态硬盘)、/dev/nvme0n1(NVMe固态硬盘),后续操作需用到这个设备名。
  • 系统分区:原Ubuntu系统所在的分区(通常是EXT4格式),比如/dev/nvme0n1p6;如果是UEFI启动模式,还会有一个EFI分区(通常是FAT32格式,大小100-512MB),比如/dev/nvme0n1p6

建议将关键的分区信息记下来(系统分区/dev/nvme0n1p6、EFI分区/dev/nvme0n1p1),后续步骤会频繁用到。

三、核心操作:修复GRUB引导器,解决“启动不了”的问题

更换硬盘后,最常见的问题是GRUB引导器失效——系统找不到引导文件,无法正常启动。因此,修复GRUB引导器是核心步骤,分为“挂载分区”“切换系统环境”“安装GRUB”三个子步骤。

1. 挂载原系统分区与必要目录

首先需要将原Ubuntu系统所在的分区挂载到Live环境的/mnt目录下,同时挂载系统运行必需的/dev/proc/sys目录(相当于“让Live环境接管原系统的硬件和进程管理”)。

(1)挂载原系统分区

我的原系统分区是/dev/nvme0n1p6(根据你实际的分区信息替换),输入命令:

sudo mount /dev/nvme0n1p6 /mnt

(2)若有EFI分区,需额外挂载(UEFI启动模式必做)

将EFI分区挂载到/mnt/boot/efi目录下(假设EFI分区是/dev/nvme0n1p1):

sudo mount /dev/nvme0n1p1 /mnt/boot/efi

(3)挂载目录

系统运行的核心,必须通过“绑定挂载”的方式关联到原系统分区:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run

2. 切换到原系统环境:进入“chroot模式”

挂载完成后,需要切换到原系统的根目录环境(即/mnt,对应原系统的/),这一步通过chroot命令实现:

sudo chroot /mnt

执行后,终端的命令提示符会发生变化(比如从ubuntu@ubuntu:变成root@ubuntu:),表示你已经进入了原系统的环境,后续操作将直接作用于原系统。

3. 安装并更新GRUB引导器

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
update-grub

4. 修复EFI分区(扩展,正常不用)

如果 /usr/lib/grub/x86_64-efi/的文件有损坏,那么就先退出到ubuntu Live 然后执行

sudo cp -r /usr/lib/grub/x86_64-efi/* /mnt/usr/lib/grub/x86_64-efi/

5. 退出chroot环境并重启

GRUB修复完成后,按以下步骤退出环境并重启电脑:

# 1. 退出chroot模式
exit

# 2. 卸载之前挂载的目录(避免数据损坏)
sudo umount -R /mnt

# 3. 重启电脑
sudo reboot

重启时拔掉Ubuntu安装U盘/光盘,电脑会自动从新硬盘启动——如果能正常进入原有的Ubuntu系统,说明GRUB引导修复成功!

方式二:

# 1. 先挂载 EFI 分区到 Live 环境的某个目录(如 /mnt/efi)
sudo mkdir -p /mnt/efi
sudo mount /dev/nvme0n1p1 /mnt/efi
sudo mount /dev/nvme0n1p6 /mnt/os

# 2. 直接安装 GRUB 到 EFI 分区,同时指定根分区位置
sudo grub-install \
  --target=x86_64-efi \
  --efi-directory=/mnt/efi \
  --bootloader-id=ubuntu \
  --root-directory=/mnt/os  # 明确指定根分区的挂载点(或直接写 /dev/nvme0n1p6)

# 3. 生成 GRUB 配置文件(需指定根分区的挂载路径)
sudo grub-mkconfig -o /mnt/efi/EFI/ubuntu/grub.cfg

扩展:可能需要的:

1. 换源代码

sudo vi /etc/apt/sources.list.d/tsinghua.list

然后编辑

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-proposed main restricted universe multiverse

2. 安装ssh-server

sudo apt update
sudo apt install openssh-server -y
# 启动
sudo systemctl start ssh

设置密码

passwd

如果觉得本文对您有所帮助,可以支持下博主,一分也是缘♥️
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇