云梦
www.htcp.net

在 LiveCD 或紧急模式中拯救坏掉的 grub

在使用 linux 过程中我们可能会由于操作不慎,弄坏 grub。下面介绍如何在 LiveCD 或者紧急模式下,拯救坏掉的 grub。LiveCD 可以从各个发行版本的镜像站中找到,按照需要,可选 Debian/Ubuntu/CentOS 等常见发行版本的 LiveCD。

操作步骤

1. 启动并进入 LiveCD 或者紧急模式

在这不过多介绍如何进入 LiveCD 或者紧急模式。

2. 判断硬盘分区情况

将硬盘列出来,找到出问题的硬盘。如果 LiveCD 没有 fdisk 命令,可以通过 apt install fdisk 来安装。

fdisk -l

会得到一份分区列表,例如 /dev/sda,这是我的 VPS 的系统盘,而 sda 中 的 a 为第一块硬盘。当然系统盘的名字可能不同,可能叫 vd*,如果是 NVME 硬盘的话,则可能叫 nvme0n1,具体您需要根据自己的情况判断。

而启动方式有两种情况,一种是 BIOS 启动,一种是 EFI 启动。

1. 例如 BIOS 启动:

/dev/sda2 挂载点在 /
/dev/sda1 挂载点在 /boot

mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot

当然,BIOS 启动的话,只有 / 分区也可以正常启动,具体情况需要根据 fdisk 得到的具体分区来看。

2. 如果是 EFI 启动,则有个 FAT 分区:

/dev/sda1,挂载点为:/boot/efi

mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot/efi

3. 挂载分区

将如下特殊分区挂载上:

mount -t proc proc /mnt/proc/
mount -t sysfs sys /mnt/sys/
mount -o bind /dev /mnt/dev/
mount -o bind /run /mnt/run/
mount -t devpts pts /mnt/dev/pts/

如果是 EFI 启动,则再加一条:

mount -t efivarfs efivars /mnt/sys/firmware/efi/efivars

4. chroot

chroot /mnt

这样,就切换到出故障的系统上了。我们可以执行很多操作,例如 apt 更新或增加软件包,修改文件等。

5. 更新 grub 条目

grub-install /dev/sda
update-grub

如果是 EFI 启动,但是却是弱 EFI 支持,则可能需要复制一份 grub 启动文件,否则可能不开机。

cd /boot/efi/EFI/
mkdir boot
cp debian/grubx64.efi /boot/bootx64.efi

拯救完毕。重启即可正常进入系统。

赞(17) 打赏
文章通过 CC 4.0 BY-NC-ND 协议发布,转载请注明出处:云梦 » 在 LiveCD 或紧急模式中拯救坏掉的 grub

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

如果您觉得文章有用,可以支持一下本站

支付宝扫一扫打赏

微信扫一扫打赏