在日常使用电脑的过程中,更换硬盘是很常见的操作——可能是旧硬盘容量不足,也可能是出现了硬件故障。但对于安装了Ubuntu系统的用户来说,更换硬盘后往往会遇到无法正常启动的问题,此时Ubuntu Live环境就成了“救星”。本文将详细讲解如何通过Ubuntu Live环境修复系统,帮你一步步找回原本的Ubuntu系统。
一、修复前的准备工作
在进入Ubuntu Live环境开始修复前,先完成以下准备,避免后续操作中出现意外:
- 确保进入Live环境:用Ubuntu安装U盘或光盘启动电脑,在启动界面选择“Try Ubuntu without installing”(不安装试用Ubuntu),成功进入后,就进入了Ubuntu Live环境。
- 连接网络:修复过程中可能需要下载必要的工具或依赖包,建议提前连接好有线或无线网络(点击右上角网络图标即可配置)。
- 确认新硬盘安装正常:进入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
。
建议将关键的分区信息记下来(系统分区/de
、EFI分区v/nvme0n1p6
/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