这个界面就是GRUB界面
1.先手动进入Ubuntu
查找分区
输入以下命令来列出分区,确认 Ubuntu 根分区的位置(通常是 ext4 格式):
ls
你应该看到类似 (hd0,gpt1)、(hd0,gpt2) 等分区列表。
定位 Ubuntu 根分区
依次输入以下命令,查找包含 /boot 或 /vmlinuz 文件的分区。假设根分区为 (hd0,gpt4),请根据实际情况替换:
ls(hd0,gpt4)/
设置根分区和启动内核
输入以下命令,手动启动 Ubuntu 系统(假设根分区为 /dev/sda4,替换为你的实际根分区):
setroot=(hd0,gpt4)
linux /vmlinuz root=/dev/sda4 ro
initrd /initrd.img
boot
进入 Ubuntu 后修复 GRUB
如果手动启动成功并进入了 Ubuntu 系统,按照以下步骤修复 GRUB 配置:
1.重新安装 GRUB
在终端中运行以下命令,确保 GRUB 正确安装到 EFI 分区:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
2.更新 GRUB 配置
生成新的 GRUB 配置文件,确保所有引导项正确:
sudoupdate-grub
3.重启系统
运行以下命令重启,检查是否能够显示 GRUB 菜单:
sudoreboot
如果无法手动进入Ubuntu界面则手动进入
2.手动进入Ubuntu
2.1使用 Ubuntu Live USB 启动系统(选择“试用 Ubuntu”模式)。
1.打开终端,输入以下命令列出分区信息,确认 Ubuntu 的根分区(通常为 ext4 格式):
lsblk
2.检查并修复 Ubuntu 分区: 假设 Ubuntu 根分区为 /dev/sda4(请根据实际情况替换),运行以下命令检查分区:
sudofsck /dev/sda4
2.2 挂载根分区并重新安装 GRUB
如果分区检查成功,可以手动挂载 Ubuntu 根分区,重新安装 GRUB:
1.挂载 Ubuntu 根分区: 假设根分区为 /dev/sda4(根据实际情况替换):
sudomount /dev/sda4 /mnt
2.挂载 EFI 分区: 假设 EFI 分区为 /dev/sda2,将其挂载到 /mnt/boot/efi:
sudomkdir -p /mnt/boot/efi
sudomount /dev/sda2 /mnt/boot/efi
3.绑定系统目录: 运行以下命令,将系统目录绑定到挂载点,以便可以在 chroot 环境中操作:
foriin /dev /dev/pts /proc /sys /run;dosudomount --bind "$i""/mnt$i";done
4.进入 chroot 环境: 进入挂载的 Ubuntu 系统环境:
sudochroot /mnt
5.重新安装 GRUB: 在 chroot 环境中,重新安装 GRUB 到 EFI 分区:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
update-grub
6.退出 chroot 并重启: 输入以下命令退出 chroot 环境并重启系统(先别着急重启,看后面的)
exitsudoreboot
另外的情况
如果已经进入了 Ubuntu 系统,但 lsblk 命令仍然没有显示 sda2 的挂载点 /boot/efi,说明 EFI 分区可能没有在系统启动时自动挂载。我们可以通过以下步骤来确保 EFI 分区被正确挂载:
1.手动挂载 EFI 分区
手动挂载 EFI 分区: 在终端中运行以下命令,将 sda2 挂载到 /boot/efi(请确认这个目录存在):
sudomount /dev/sda2 /boot/efi
验证挂载: 使用 lsblk 或 df -h 命令,确保 sda2 已经成功挂载到 /boot/efi。
2.将 EFI 分区添加到 /etc/fstab
为了确保 EFI 分区在每次启动时自动挂载,可以将它添加到 /etc/fstab 文件中:
获取 sda2 分区的 UUID:
sudo blkid /dev/sda2
这会输出类似于 UUID=“XXXX-XXXX” 的信息,记下这个 UUID。
3.编辑 /etc/fstab 文件
sudonano /etc/fstab
修改efi的那一行
UUID=XXXX-XXXX /boot/efi vfat defaults 01
将 UUID 替换为你在上一步获取到的值。
保存并退出编辑器(按 Ctrl + X,然后按 Y 确认保存,最后按 Enter)。
4.测试 /etc/fstab 配置: 运行以下命令测试 fstab 配置是否正确(这会重新挂载所有分区):
sudomount -a
正常情况输入完之后没有任何报错。系统会安静地返回到命令提示符。这表示所有分区都成功挂载,没有错误。
5.验证挂载: 再次运行 lsblk 或 df -h,确认 sda2 已成功挂载到 /boot/efi。
配置GRUB
如果 sudo mount -a 成功挂载了 EFI 分区,并且你确认 /dev/sda2 已经挂载到 /boot/efi,接下来可以进行以下操作以确保系统的 GRUB 配置正常,保证系统能够正确引导:
- 更新 GRUB 配置 运行以下命令,重新生成 GRUB 配置文件,确保 GRUB 能正确识别到系统的所有启动项(包括 Ubuntu 和 Windows):
sudoupdate-grub
- 检查 GRUB 安装位置(可选) 如果之前 GRUB 安装到 /boot/efi 时出现过问题,可以再次确认 GRUB 是否安装在正确的位置:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
- 重启系统 完成 GRUB 更新和安装后,重启系统,检查是否能够正常进入 GRUB 菜单并选择系统:
sudoreboot
版权归原作者 团子tuan 所有, 如有侵权,请联系我们删除。