You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法访问Ubuntu分区 - GRUB引导故障求助

无法访问Ubuntu分区 - GRUB引导故障求助

Dave你好,看到你的情况确实有点棘手,不过别慌,我们一步步来尝试恢复你的Ubuntu分区。先理清楚现状:UEFI环境下重装Windows后GRUB被覆盖,之前用TestDisk操作可能打乱了分区表,现在Windows也损坏了,但你只关心Ubuntu的话,我们重点放在恢复GRUB和挂载Ubuntu分区上。

第一步:确认Ubuntu根分区

先从Live USB启动,打开终端执行以下命令,确认nvme0n1p5是不是你的Ubuntu根分区:

sudo blkid /dev/nvme0n1p5

看输出里的TYPE字段,如果显示ext4,那它大概率就是根分区;如果是swap,那说明这是交换分区,得重新找其他分区。

第二步:挂载分区并创建EFI目录

确认根分区后,先挂载它:

sudo mount /dev/nvme0n1p5 /mnt

之前你创建/boot/efi失败,可能是因为没先挂载根分区,现在我们创建这个目录:

sudo mkdir -p /mnt/boot/efi

从你的lsblk输出看,nvme0n1p1是标注了ESP的vfat分区,这就是我们需要的EFI系统分区,把它挂载到刚才创建的目录:

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

第三步:进入chroot环境重装GRUB

接下来需要挂载系统必要的虚拟目录,以便进入Ubuntu的chroot环境:

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

进入chroot:

sudo chroot /mnt

现在在chroot环境里,把GRUB安装到NVME磁盘上:

grub-install /dev/nvme0n1

更新GRUB的引导配置:

update-grub

完成后退出chroot并重启电脑:

exit
sudo reboot

第四步:如果分区表损坏,用TestDisk修复

如果挂载分区时提示错误,或者blkid识别不出分区类型,大概率是分区表被之前的操作破坏了,可以用TestDisk尝试修复:

  • 从Live USB启动,打开TestDisk工具
  • 选择你的NVME磁盘(nvme0n1
  • 选择分区表类型(UEFI环境下一般是GPT)
  • 执行「快速搜索」,找到你的Ubuntu分区
  • 找到后标记该分区为「P」(主分区),然后写入分区表,重启后再尝试前面的GRUB修复步骤

重要提醒

操作前如果有条件,尽量用Live USB把Ubuntu分区里的重要数据(比如你的编程项目)复制到外接硬盘,避免操作失误导致数据丢失。

备注:内容来源于stack exchange,提问作者davide galbiati

火山引擎 最新活动