我该怎么办才能解决这个问题?
如果计算机在启动时自动进入Ubuntu,而根本没有显示GRUB菜单,有时您可以在启动时按下制造商的BIOS/UEFI键,并在固件菜单中选择所需的操作系统。常用的键包括Esc、Delete、F1、F2、F10、F11或F12。在平板电脑上,常见的按钮是音量增加或音量减少。在启动过程中,通常会出现一个提到这个键的屏幕。如果没有这样的屏幕,或者屏幕过快而无法看到它,请查阅制造商的网站。*
如果在启动时GRUB菜单未出现,请尝试以下方法:在计算机启动时,在主板/计算机制造商的标志性画面之后立即按住Shift键,这将会显示GNU GRUB菜单屏幕(如果使用的是BIOS)。如果使用的是UEFI,则需要按下Esc键(可能需要多次按下)才能进入GNU GRUB菜单屏幕。有时,制造商的标志性画面是Windows引导加载程序的一部分,因此开机后会直接进入GNU GRUB菜单屏幕,此时按下Shift键是不必要的。从Ubuntu打开终端并输入:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install -y boot-repair
sudo boot-repair
Rescatux 是一款免费的可启动 live CD/USB,可以修复 GRUB 和 Windows 引导程序。Rescatux 采用图形界面,提供操作系统救援任务的菜单。如果你的硬盘采用 MBR 分区格式,你可以选择“恢复 Windows MBR(BETA)”选项来修复 Windows 引导程序。如果你的计算机采用 UEFI 固件,你可以在 UEFI 引导选项中进行选择。
引导选项:
GRUB 选项:
Windows选项:
密码选项:
专家工具:
插入一个USB闪存驱动器,并使用GParted应用程序检查闪存驱动器上是否已启用引导标志。卸载USB闪存驱动器。打开GParted并从驱动器菜单列表中选择USB闪存驱动器。从GParted菜单中选择:分区 -> 管理标志 -> 选中引导。
非常重要的是要验证您要将Rescatux实时USB安装到的设备确实是您的闪存驱动器,以免覆盖任何系统或个人文件,可能导致您的操作系统无法启动。在Ubuntu中,您可以使用Disks应用程序找到闪存驱动器的设备名称。
卸载USB分区设备。假设USB分区设备是/dev/sdc1
sudo umount /dev/sdc1 # 将sdc1替换为您的USB驱动器的分区名称
使用cd
命令切换到下载的Rescatux iso文件所在目录的路径。
将Rescatux iso文件写入USB闪存驱动器。在以下命令中,将rescatux_0.xxxx.iso
替换为您下载的Rescatux iso文件的名称。
sudo dd if=rescatux_0.xxxx.iso of=/dev/sdc # 这个命令也适用于Windows子系统Linux 2
sudo sync
我还能使用内置的启动磁盘创建应用程序制作 Rescatux live USB。
打开设置
点击“开始”菜单,在左下角选择齿轮图标以打开设置窗口。你也可以从应用列表中选择设置应用程序。在设置中,点击“更新和安全性”继续。
选择恢复选项
点击“恢复”选项卡,在“重置此电脑”下选择“开始”。
保存或删除文件
到这一步,你有两个选择。你可以选择保留个人文件并仅删除已下载的应用程序和设置,或者你可以擦除所有内容并从头开始。每个选择还会给你一个额外的设置修改选项。
如果你选择“保留我的文件”,应用程序和设置将恢复到电脑初始状态。你可以通过点击“更改设置”链接并关闭该选项来取消此设置。如果你选择“删除所有内容”,也有一种方法可以在保留应用程序和设置的同时删除个人文件。点击“更改设置”链接,将数据擦除选项切换为开启状态。/etc/default/grub
中添加一行代码来启用它:GRUB_DISABLE_OS_PROBER=false
,然后运行sudo update-grub
并重新启动。现在,我有一个grub菜单,可以选择启动Windows。非常简单的解决方法。 - mchid/boot/grub/custom.cfg
的文件(通过运行sudo -H gedit /boot/grub/custom.cfg
)并添加以下内容:#This entry should work for any version of Windows installed for UEFI booting
menuentry "Windows (UEFI)" {
search --set=root --file /EFI/Microsoft/Boot/bootmgfw.efi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
RESULTS.txt
文件,以便我能够提供恰当的建议所需的信息。从Ubuntu的光盘或USB启动。
在终端中逐行输入以下命令:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
在Dash中搜索Boot-Repair并启动它。
sudo apt-get update
sudo apt-get install lilo
sudo lilo -M /dev/sda mbr
/sys/firmware/efi
的文件夹。如果您的系统使用BIOS,则该文件夹将不存在。引导修复将会处理这个问题。
首先打开一个新的终端,然后输入以下命令:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair
sudo efibootmgr -t nn
来使用您的EFI菜单。您可以选择Windows引导管理器或Ubuntu(GRUB)。方法1
1. 在开机时按下"esc"(可能在您的计算机上有不同的方式)进入Windows恢复模式。
2. 点击"故障排除"。
3. 点击"高级选项"。
4. 选择"命令提示符"。
5. 输入以下命令:
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
sudo fdisk -l
*
符号表示。
例如:在我的情况下是(/dev/sda6)。sudo mount /dev/sda8 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
5.现在将根目录从USB驱动器更改为硬盘的根目录
sudo chroot /mnt
grub-install /dev/sda6
exit
sudo unmount /mnt/dev
sudo unmount /mnt/proc
sudo unmount /mnt/sys
sudo unmount /mnt
9.移除U盘并重新启动您的电脑。
下次在双启动Windows和Linux时,请参考此答案:双启动Windows和Linux
bootrec /rebuildbcd
之前运行命令bootrec /scanos
也会有帮助。/scanos
选项会扫描所有磁盘以查找与Windows兼容的安装,并显示当前不在BCD存储中的条目。此截图显示了第5步中的所有4个命令:https://i.stack.imgur.com/qrnMl.png - karel我也有一个修复引导程序的工具... 不过只是开个玩笑 ;)
从安装的系统中运行update-grub破坏了我的引导项。 但让我能够引导进入已安装的系统。(ubuntu 20.04)
在我这个简单情况下,我只需要再次从已安装且正确引导的Linux系统中运行update-grub
,
它会找到Windows的引导程序...
之后再运行'grub-install'就可以使之保持。
我有一个三重启动的系统。所以这已经成为一个常见的过程。 不像10年前那样了;)
/dev/sda3
时,“检查”选项显示为禁用状态。它只出现在sda1(fat32-SONYSYS)
,sda2(ntfs-Windows RE tool)
,sda6(ntfs-Recovery)
中。然而,之后重新启动也没有帮助。这里是sda1和sda2, sda6的 Gparted 结果。 - iammilind/dev/sda3/
是当前正在使用的分区。你可以尝试使用LiveCD/USB并从那里进行检查。我还想指出,通常当一个问题看起来过于复杂时,往往是因为一个关键因素被误解了。也许你可以根据当前的发现重新评估你的基本假设。 - sturlabragason