在我的CentOS 7.7
盒子上,我安装了另一个驱动器并安装了AlmaLinux 9
.那时事情就出了问题。我想我可以使用BIOS
来选择我想要加载的操作系统。情况难道不是表面上看起来的那样吗?主引导记录被覆盖。
我已经重新安装了grub:
/sbin/grub2-install /dev/sda
现在,当它启动时,它会出现提示grub
。我以为它会抓取音量/etc/fstab
并加载。
grub>
我怎样才能让它再次工作?我没有发现任何建议需要更改什么来加载操作系统。
任何见解表示赞赏。干杯
更多信息/反馈:
我认为这是错误的方向。我想做的就是Alma
暂时完全避免。如果我知道该选项的安装会造成麻烦,那么我就不会这样做。我想让这台服务器恢复到原来的状态。我不知道发生了什么,因为我没有更改CentOS7
系统上的任何内容。
那么让我们Alma
从图片中解脱出来。我将来可能会搬到那里。
我有一个正在通过相同版本的SSD
加载的.USB
CentOS 7.7 v2003
答案1
编辑:下面描述的内容对于 CentOS 7 100% 相同;只是在心理上用centos替换alma;找到centos根分区而不是alma根分区,等等。
所以,既然你说你正在使用 UEFI 启动
- UEFI 会忽略 MBR。所以,这不是问题!问题似乎是您从 UEFI 启动到 GRUB,但您以某种方式破坏了这一点。
- 我们可以修复 GRUB,以便能够链式加载您的 Almalinux 内核。
- 为此,您需要一个实时 USB 记忆棒,允许您在无法启动的 Alma 上执行操作。我只是下载了 fedora live USB 镜像,但我敢打赌 almalinux 安装程序 USB 镜像也能正常工作。
- 您需要从该棒启动。
- 启动后,识别 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