安装Ubuntu后无法启动进入Windows,如何修复?

我在我的计算机上安装了Windows,然后安装了Ubuntu。 但是,现在我无法启动进入Windows安装。

我该怎么做才能解决这个问题?

我将做一些假设:

  1. 该Windows已安装并配置为通过UEFI引导。
  2. Ubuntu已安装并配置为通过UEFI引导。
  3. 您目前正在启动时看到grub菜单。

如果这些假设中的任何一个是假的,那么以下建议对你没有帮助(虽然它也不会伤害任何东西):

使用以下内容创建一个文件/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 } 

(将上面的内容复制并粘贴到出现的Gedit窗口中,然后保存并退出Gedit)

重新启动,你会看到一个标题为“Windows(UEFI)”的条目,如果你选择它,那么Windows应该启动。 如果这不起作用,请运行启动信息脚本( http://bootinfoscript.sourceforge.net/ )并发布它生成的RESULTS.txt ,以便我获得为您提供适当建议所需的信息。

GRUB菜单不会出现

如果计算机在没有显示GRUB菜单的情况下自动启动到Ubuntu,有时您可以在启动时按制造商的BIOS / UEFI键,而在UEFI或BIOS模式下从固件菜单中选择您需要的操作系统。 使用的常用键是Esc,Delete,F1,F2,F10,F11或F12。 在平板电脑上,常用按钮是音量调高或音量调低。 在启动期间,通常会有一个屏幕提到密钥。 如果没有,或者屏幕过快而无法查看,请查看制造商的网站。 *

如果在引导时没有出现GRUB菜单时这不起作用,则在BIOS / UEFI启动画面启动后立即使用BIOS,快速按住Shift键,将弹出GNU GRUB菜单屏幕​​。 使用UEFI按(可能几次) Esc键进入GNU GRUB菜单屏幕​​。 有时制造商的启动画面是Windows启动器的一部分,因此当您启动机器时,它会直接进入GNU GRUB菜单屏幕​​,然后按Shift键是不必要的。

如果在引导时没有出现GRUB菜单时这不起作用,那么请尝试以下答案:

  • 如何在启动时进入GRUB菜单?
  • 在Windows 10上安装Ubuntu 15.10后,双启动启动菜单不显示

启动修复

从Ubuntu打开终端并键入:

 sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install -y boot-repair sudo boot-repair 

打开Boot Repair应用程序,然后选择Advanced Options – > Other Options选项卡 – > Repair Windows boot files 。 引导标志应放在安装Ubuntu的同一分区上。 安装Ubuntu的分区可以从Ubuntu内置的Disks应用程序中识别。

在此处输入图像描述

如果您无法选择“ 修复Windows启动文件”选项,因为它显示为灰色,请参阅此答案 。


Rescatux

Rescatux是一个免费的可启动的实时CD / USB,可以修复GRUB和Windows引导程序。 Rescatux具有图形界面,其中包含操作系统救援任务菜单。 如果您的硬盘具有MBR分区格式,则可以选择“ 还原Windows MBR(BETA)”选项以修复Windows引导加载程序。 如果您的计算机具有UEFI固件,则可以从UEFI选项引导选项中进行选择。

启动选项:

  • (> = 0.41 beta 1)更新UEFI订单
  • (> = 0.41 beta 1)创建新的UEFI Boot条目
  • (> = 0.41 beta 1)UEFI分区状态
  • (> = 0.41 beta 1)假的Microsoft Windows UEFI
  • (> = 0.41 beta 1)隐藏Microsoft Windows UEFI
  • (> = 0.41 beta 1)重新安装Microsoft Windows EFI
  • (> = 0.41 beta 1)检查UEFI引导

GRUB选项:

  • (> = 0.40 beta 11)简易GNU / Linux引导修复
  • 恢复GRUB和GRUB2
  • (> = 0.31 beta 4)更新任何GRUB2菜单
  • 更新Debian / Ubuntu GRUB菜单

Windows选项:

  • 还原Windows MBR(BETA)
  • 清除Windows密码
  • (> = 0.31 beta 4)将Windows用户提升为管理员角色
  • (> = 0.41 beta 1)重新安装Microsoft Windows EFI
  • (> = 0.31 beta 4)解锁Windows用户

密码选项:

  • 更改GNU / Linux密码
  • 重新生成sudoers文件
  • 清除Windows密码

在此处输入图像描述
Rescapp是一个很好的向导,可以指导您完成救援任务。


如何从Ubuntu制作Rescatux live USB

  1. 插入USB闪存驱动器并使用GParted应用程序检查闪存驱动器上是否已启用引导标志。 卸下USB闪存盘。 打开GParted并从驱动器菜单列表中选择USB闪存驱动器。 从GParted菜单中选择: Partition – > Manage Flags – > check boot

  2. validation要安装Rescatux live USB的设备确实是您的闪存驱动器非常重要 ,这样您就不会覆盖任何可能导致操作系统无法启动的系统或个人文件。 在Ubuntu中,您可以使用磁盘应用程序找到闪存驱动器的设备名称。

  3. 卸载USB分区设备。 假设USB分区设备是/dev/sdc1

     sudo umount /dev/sdc1 # replace sdc1 with the partition name of your USB drive 
  4. 使用cd将目录更改为您下载的Rescatux iso文件所在目录的路径。

  5. 将Rescatux iso文件写入USB闪存驱动器。 在以下命令中,将rescatux_0.xxxx.iso替换为您下载的Rescatux iso文件的名称。

     sudo dd if=rescatux_0.xxxx.iso of=/dev/sdc # this command also works in Windows Subsystem for Linux sudo sync 

我还可以使用内置的Startup Disk Creator应用程序制作Rescatux live USB。

无法撤消对Windows的分区更改。 您将不得不重新安装或恢复Windows,然后重新安装Ubuntu。

首先,尝试运行Boot-Repair( info )并查看是否有帮助。 要运行此:

  1. 从Ubuntu live DVD或USB启动。

  2. 一次在终端中输入这些行。

     sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install boot-repair 
  3. 在Dash中搜索Boot-Repair并启动它。

    在此处输入图像描述

要使用Boot-Repair修复计算机,只需单击“推荐修复”按钮。 如果它奏效了,你就完成了。


如果引导修复不起作用,请使用Windows恢复CD运行修复(请向PC制造商索取)。

  1. 从恢复CD启动。 你应该看到这个。

    IMG:

  2. 打开命令提示符应用程序,然后键入bootrec /fixmbr

    IMG:
    (图片来自HowtoGeek )

  3. 关闭窗口,然后选择“启动修复”。 等到该过程完成。 通常需要大约30分钟-2小时。

如果Windows已成功修复,您就完成了。 如果不是,则必须使用Windows安装CD重新安装Windows。

如果您没有Windows安装CD,则可以启动Ubuntu live DVD / USB并安装具有与Windows引导加载程序等效function的引导加载程序。

 sudo apt-get update sudo apt-get install lilo sudo lilo -M /dev/sda mbr 

Lilo会在安装后给你一个警告,但你可以忽略它,因为lilo在用作Windows风格的引导加载程序时工作正常。


接下来,在安装或恢复Windows之后,您必须删除Ubuntu分区。 识别它们并使用Windows中的磁盘管理实用程序将其删除。

在此处输入图像描述

之后,以同样的方式重新安装Ubuntu。

Boot-Repair将负责这一点。

首先打开一个新终端,然后输入:

 sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair boot-repair 

启动修复

另请参见此工具的参考和方法

安装Ubuntu时未检测到已安装的Windows操作系统。 来自默认Ubuntu存储库的os-prober检测系统上可用的其他OS,并在终端中输出结果。 如果os-prober不起作用,请检查命令sudo fdisk -l是否能够找到Windows分区。

如果找到Windows分区,则键入sudo update-grubsudo update-grub更新GRUB引导加载程序并更正错误的条目。 这个命令解决了我的问题,如下所示。

sudo update-grub && sudo reboot更新GRUB引导程序并重新启动。

我在Windows 10旁边安装了Ubuntu。现在我看不到在GRUB启动菜单中启动Windows的选项。

注意:分区仍然存在。

在此处输入图像描述

确保以UEFI模式启动。 使用sudo efibootmgr -t nn来使用EFI的菜单。 您可以选择Windows启动管理器或ubuntu(GRUB)。
注意:每次更新BOOTMGR时,Windows都会在其自己的EFI系统分区上擦除GRUB安装。

如果操作系统以不同的模式安装,则双启动Windows和Ubuntu无法正常工作。 如果您在具有GPT分区的同一驱动器上以传统模式安装了Ubuntu,则可以使用Boot Repair的Advanced选项卸载grub-pc并安装grub-efi-amd64。 这将Ubuntu安装从BIOS启动转换为UEFI启动,与最近制造的预安装Windows笔记本电脑的固件相同。

在此处输入图像描述
BIOS与UEFI

有关将Ubuntu转换为UEFI模式的部分,请查看https://help.ubuntu.com/community/UEFI 。

grub引导加载程序也可以在相反的方向上从UEFI转换到BIOS。 Linux可以在BIOS模式下从GPT磁盘启动。 请参阅以下答案: 从EFI转换为BIOS启动

方法1

1.在启动时按“ esc ”(可能是计算机上的不同方式)进入Windows恢复模式。

2.点击“ 疑难解答

3.单击“ 高级选项

4.选择“ 命令提示符

5.键入以下命令:

 bootrec /fixmbr bootrec /fixboot bootrec /scanos bootrec /rebuildbcd 

6.现在重新启动计算机

好的,如果这对你有用,如果没有,那么试试

方法2。

1.使用Rufus制作Ubuntu live USB驱动器并启动进入Ubuntu。

2.启动终端类型

 sudo fdisk -l 

3.注意linux安装的根部分。
示例: (/ dev / sda8)在我的情况下。
和你的引导分区,用*号表示。
示例: (/ dev / sda6)在我的情况下。

4.现在安装你的root分区进行一些更改和一些绑定。 下面用你的root分区替换“ / dev / sda8 ”。

 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驱动器更改为hardrive的根目录

 sudo chroot /mnt 

6.现在将grub安装到你的引导部分,你记下了* sign,用引导分区替换“ / dev / sda6 ”。

 grub-install /dev/sda6 

7.现在的类型。

 exit 

8.先前安装的Unount分区。

 sudo unmount /mnt/dev sudo unmount /mnt/proc sudo unmount /mnt/sys sudo unmount /mnt 

9.卸下pendrive并重新启动电脑。

而下次双启动窗口和linux时请参考这个答案双启动Windows和Linux

你确定你已经仔细安装了ubuntu,即没有擦除Windows分区吗? 请查看以下post 。 这将提供更多信息继续。

在启动过程中按住Shift键 ,这会给你带来Grub菜单。 或者,如果您只想显示菜单,请编辑/etc/default/grub文件

 sudo gedit /etc/default/grub 

在行GRUB_HIDDEN_TIMEOUT=0的开头插入“#”。

现在保存然后运行:

 sudo update-grub 

这应该可以使每次启动时出现Grub菜单。

最好去看看这个GRUB wiki https://help.ubuntu.com/community/Grub2

某些安全启动计算机似乎无法从grub启动Windows。 解决方法是为每种类型的引导提供一组不同的EFI文件,将第二组Ubuntu放在USB记忆棒上,并将EFI文件保留在Windows的硬盘上。

你已经在硬盘上安装了一套工作的Ubuntu EFI文件,所以拿一个(小)USB棒(空,因为你将丢失所有数据),在其上放一个GPT分区表,并为其制作一个250M分区EFI文件。 将硬盘的EFI文件复制到操纵杆。 它们将出现在EFI目录下的/boot/efi目录中。

获取EFI目录及其所有内容,并将其放在USB分区上。 我建议编辑EFI/ubuntu/grub.cfg的棒版本,将菜单项“Ubuntu”的名称更改为“Ubuntu on USB”或其他东西,以便明确启动哪组文件。

现在尝试从USB启动,看看你是否得到了改变的菜单项,并且它是有效的。 当USB启动工作时,您可以简单地转到/boot/efi/EFI/Boot ,它应该是硬盘的EFI分区,它应该包含Ubuntu版本的启动文件的副本(可能有不同的名称),它也应该在/boot/efi/EFI/ubuntu
使用md5sum确认您拥有/boot/efi/EFI/Boot中所有文件的副本,因为您要删除它们! 复制文件/boot/efi/EFI/Microsoft/bootxmgfw.efi并将其重命名为/boot/efi/EFI/Boot/bootx64.efi ,您应该可以再次从硬盘启动Windows – 删除操作杆并尝试Windows启动。

当您更新内核并获得在硬盘上生成的新grub.cfg时(未使用,因为硬盘仅启动Windows),您必须自己将其复制到USB记忆棒的EFI/ubuntu/grub.cfg

希望在某些时候,grub无法在您的计算机上启动Windows的问题将得到解决,您只需将硬盘的EFI/Boot文件替换为操作系统的EFI/Boot文件即可。

只需确保您拥有删除的任何内容的副本,以便在必要时替换它们。 这项技术对东芝来说很有用。

确保Windows 10安装分区仍然存在并根据以下答案继续:

Windows 10的默认安装至少需要4个分区:

  1. sda1(恢复)
  2. sda2(对于以EFI模式启动的计算机,EFI系统分区(ESP)通常安装在/boot/efi 。)
  3. sda3(MSR)
  4. sda4(Windows操作系统,通常为“C”)

如果在Ubuntu安装期间/boot/efi分区或MSR分区已损坏或被删除,您可能无法在grub中看到Windows。 在Ubuntu中尝试以下命令以显示所有可用分区:

 sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL 

它应该让您了解系统发生了什么,并允许您检查所有分区是否仍然存在。 您可能尝试使用Windows安装DVD / USB修复Windows。

您可以尝试安装Grub Customizer应用程序,看看Windows是否可用
列表:

 sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer 

然后,您可以启动Grub Customizer并更改可用于引导的操作系统。

以下是正确安装的截图:

在此处输入图像描述

在我的情况下,我做了Windows 7的干净安装,在SSD上留下了一些未分配的空间,在随后的Mint 18.3安装中,默认的“沿着”选项没有在grub启动菜单中获得Windows。

解决方案很简单:在Mint中运行命令,Windows 7与Memtest btw一起添加到grub菜单。

 sudo update-grub 

我有类似的问题。 在bios中更改启动顺序后,它在Windows上启动但仅在安全模式下启动。 为了解决这个问题,我做了Windows + R-> msconfig-> boot:normal。 一切都解决了。 希望这可以提供帮助。

首先我们将带回Windows MBR然后我们将重新安装grub并带回linux

修复Windows MBR(您可以选择解决方案1或解决方案2)启动Linux并确保您具有可用的Internet连接并在终端上键入以下内容。

1.解决方案

 sudo apt-get install syslinux 

如果已安装软件包,请使用以下命令编写MBR:

 sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda 

2.解决方案

 sudo apt-get install mbr 

如果已安装软件包,请使用以下内容编写MBR。

 sudo install-mbr -in -p D -t 0 /dev/sda 

两者都很常见

如果要将MBR安装到其他驱动器,请替换sda。 不要放sda1sda2sda3 只需将其作为硬盘的sda

接下来我们需要安装grub,重新启动boot-repair将修复此问题并重新安装grub.Reboot并且两者都可以工作

您尝试过的所有选项似乎都是针对Windows 8的mbr模式,但您使用的是UEFI,因此您应该修复UEFI分区; 当我的Windows引导程序损坏时,我尝试了以下命令。

 bcdboot c:\windows /sf: /f ALL 

这里c:\ windows是windows(c 🙂 partiton上windows文件夹的位置。

/ s是一个允许在UEFI系统分区上安装UEFI引导加载程序文件的选项,它是fat32格式的,在我的情况下是(/ dev / sda4)所以f:

(f:是uefi partiton的信)

执行此命令后,您将获得安装成功/失败

这应该在UEFI分区中重新安装Windows 8启动代码。

我从修复磁盘启动并选择高级选项然后命令行修复时尝试过此命令。

您可以通过进入控制面板,选择备份和恢复 – >创建恢复磁盘/ usb来创建恢复磁盘,也可以从某人借用它。

PS。 如果您还没有尝试过,那么您可以尝试grub菜单中显示的所有选项,特别是refind,它会自动检测所有UEFI操作系统。 您还可以尝试grub菜单中的所有窗口条目来检查它们中的任何一个是否有效。 然后,您可以在系统启动时从BIOS菜单中将uefi模式切换到BIOS,然后检查它在那里显示的选项,以及它们是否有效。

如果您使用的是Bitlocker,您可能在安装Ubuntu之前对分区进行了一些更改(比如为Ubuntu安装释放未处理的空间),那么您可能会遇到这个问题,因为GRUB无法处理启动Windows时出现的安全提示请你输入bitlocker恢复密钥。

在安装Ubuntu 16.04.02和Windows 7之后,我遇到了几乎相同的问题.Ubuntu会很好地启动,但是在从GRUB中选择Windows 7加载程序之后,屏幕会显示一些奇怪的常规多色歪斜线条并且一直卡在那里直到处​​理器风扇会打开并且很热,我决定关闭电脑以避免损坏。

救赎来自于使用Hiren的Boot CD并在其中的主菜单中使用Boot Windows 7选项,这使我能够获得bitlocker恢复密钥的提示,输入密钥,暂停和恢复我的Windows会话中的bitlocker,并使用我的之后的双启动系统。

跟着这些步骤:

  1. Ctrl + Alt + T或在Dash中搜索Terminal打开终端。

  2. 在终端中输入以下命令:

     sudo -H gedit /etc/default/grub 

    (这将在gedit打开grub配置文件。)

  3. 编辑文件并更改以下选项(在以下任何行之前删除注释#)并保存文件:

     GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=false GRUB_TIMEOUT=10 
  4. 在终端的新实例中运行以下命令:

     sudo update-grub 
  5. 重新启动计算机,如果正确分区系统,您现在应该可以启动Windows