如果仍然提示 Unable to locate package testdisk,有可能是源中不包含该工具(LiveCD 使用的是“最小环境”)。
🪛 解决方法:切换到国内完整软件源(推荐)
编辑 sources.list
:
sudo nano /etc/apt/sources.list
用以下内容替换(适用于中国大陆):
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
然后保存并退出(Ctrl+O → 回车,Ctrl+X)
然后重新执行:
sudo apt update
sudo apt install testdisk
然后按下面的步骤继续:
选择磁盘 →
/dev/sda
选择分区类型 → 一般选默认(Intel / EFI GPT)
选择 Analyse → Quick Search
找到你的原来 Linux 分区(ext4)
P 预览文件 → 如果能看到熟悉的
/home
、/etc
就是它Write → 写回分区表
重启测试
设置boot标志
sudo fdisk -l
将 /dev/sda3
的启动标志去掉,只保留 /dev/sda2
作为启动分区
用 fdisk
操作:
sudo fdisk /dev/sda
# 假设根分区是 /dev/sda2:
```bash
sudo mount /dev/sda2 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
然后在 fdisk 交互命令下:
输入 a,提示选择分区号,输入 3(取消其启动标志)
输入 a,选择 2(设置启动标志)
输入 p 查看分区表,确认只有 /dev/sda2 带 * 标志
输入 w 保存退出
修复 GRUB 引导
grub-install /dev/sda
update-grub
exit
sudo reboot
若重新设置root标志后还是自动进入救援模式
- 重新安装并修复 GRUB
先进入系统恢复环境(live CD 或 rescue 模式),然后挂载系统分区并 chroot
:
sudo mount /dev/sda2 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
然后重新安装 GRUB:
grub-install /dev/sda
update-grub
退出 chroot 并卸载
exit
sudo umount /mnt/dev /mnt/proc /mnt/sys /mnt
重启试试:
sudo reboot