CentOS 主引导记录被覆盖

CentOS 主引导记录被覆盖

在我的CentOS 7.7盒子上,我安装了另一个驱动器并安装了AlmaLinux 9.那时事情就出了问题。我想我可以使用BIOS来选择我想要加载的操作系统。情况难道不是表面上看起来的那样吗?主引导记录被覆盖。

我已经重新安装了grub:

/sbin/grub2-install /dev/sda

现在,当它启动时,它会出现提示grub。我以为它会抓取音量/etc/fstab并加载。

grub>

我怎样才能让它再次工作?我没有发现任何建议需要更改什么来加载操作系统。

任何见解表示赞赏。干杯

更多信息/反馈

我认为这是错误的方向。我想做的就是Alma暂时完全避免。如果我知道该选项的安装会造成麻烦,那么我就不会这样做。我想让这台服务器恢复到原来的状态。我不知道发生了什么,因为我没有更改CentOS7系统上的任何内容。

那么让我们Alma从图片中解脱出来。我将来可能会搬到那里。

我有一个正在通过相同版本的SSD加载的.USBCentOS 7.7 v2003

答案1

编辑:下面描述的内容对于 CentOS 7 100% 相同;只是在心理上用centos替换alma;找到centos根分区而不是alma根分区,等等。


所以,既然你说你正在使用 UEFI 启动

  1. UEFI 会忽略 MBR。所以,这不是问题!问题似乎是您从 UEFI 启动到 GRUB,但您以某种方式破坏了这一点。
  2. 我们可以修复 GRUB,以便能够链式加载您的 Almalinux 内核。
  3. 为此,您需要一个实时 USB 记忆棒,允许您在无法启动的 Alma 上执行操作。我只是下载了 fedora live USB 镜像,但我敢打赌 almalinux 安装程序 USB 镜像也能正常工作。
  4. 您需要从该棒启动。
  • 启动后,识别 Almalinux 的根卷/分区。我只是运行sudo blivet-gui并以图形方式查看。假设该分区名为 /dev/sdx2。
  • 您想要在 root shell ( sudo -s) 中执行以下操作:
mkdir -p /alma
mount /dev/sdx2 /alma
mount -o bind /dev /alma/dev
mount -t proc proc /alma/proc
mount -t sysfs sys /alma/sys
mount -t devpts pts /alma/dev/pts
chroot /alma

恭喜!现在,您的(无法启动的)Alma linux 中有一个 root shell。好的。我们可以“从内部”进行救援。首先我们挂载所有文件系统,特别是 /boot/EFI 系统:

# (in the chroot shell we opened above)
mount -a
mount # check if the output of this lists /boot/EFI
mv /etc/resolv.conf /etc/resolv.conf.bak
echo "nameserver 8.8.8.8" > /etc/resolv.conf # resolv.conf is usually dynamically generated, we need to trick a bit here.
dnf reinstall grub2-efi grub2-pc grub2-pc-modules grub2-tools-efi grub2-tools-extra shim-x64
rm /etc/resolv.conf
mv /etc/resolv.conf.bak /etc/resolv.conf
exit
# if the above looks like it worked:
systemctl reboot

相关内容