跳到主要内容

修复基于 Btrfs 的 Manjaro 的系统引导

· 阅读需 2 分钟

今天更新了一下 BIOS, 结果 BIOS 恢复出厂设置了,EFI 分区被改,引导项全丢了。Windows 还打开了已关闭的 BitLocker。

启动硬盘里的 Manjaro

首先准备一个 Manjaro 的启动盘,推荐使用 Ventoy 制作启动盘。

查看分区信息:

$ sudo fdisk -l

Disk /dev/nvme0n1:476.94 GiB,512110190592 字节,1000215216 个扇区
磁盘型号:WDC PC SN730 SDBPNTY-512G-1101
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:4B5AB150-F8D6-409B-AC38-403BDE6744BF

设备 起点 末尾 扇区 大小 类型
/dev/nvme0n1p1 2048 2099199 2097152 1G EFI 系统
/dev/nvme0n1p2 2099200 2131967 32768 16M Microsoft 保留
/dev/nvme0n1p3 2131968 580947967 578816000 276G Microsoft 基本数据
/dev/nvme0n1p4 580947968 1000215182 419267215 199.9G Linux 文件系统

可以看到 EFI 分区是 /dev/nvme0n1p1,Manjaro 根分区是 /dev/nvme0n1p4

挂载分区:

$ sudo mount /dev/nvme0n1p4 /mnt

查看分区:

$ ls /mnt
@ @home @cache @log ...

chroot 到 Manjaro:

manjaro-chroot /mnt/@

安装 grub

挂载 EFI 分区:

$ sudo mount /dev/nvme0n1p1 /boot/efi

安装 grub:

$ grub-install --recheck /dev/nvme0n1 --efi-directory=/boot/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.

生成 grub 配置文件

$ mkdir /boot/efi/grub
$ grub-mkconfig -o /boot/efi/grub/grub.cfg

之后重启就可以了。