您可以按如下所述使用引导修复工具创建Bootinfo摘要报告,然后将链接发布到该报告吗?
我知道您已经提供了有关启动配置的一些详细信息。但是,我要的报告包含更详细的信息,可能会使我们更好地理解为什么无法使用GRUB引导Windows。
如何使用引导修复程序提供“ Bootinfo摘要”
由于仍然可以引导Ubuntu,因此可以使用以下命令安装并运行Boot-Repair工具apt-get
,然后将其用于Create a Bootinfo summary
。
在终端窗口中运行以下命令以安装该boot-repair
工具。
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
- 完成后,输入命令
boot-repair
以启动工具。
- 稍有延迟后,
boot-repair
将询问您是否要下载其最新版本。由于您刚刚安装了最新版本,请回答No
。
- 如果
boot-repair
要求安装pastebinit
软件包,请用响应Yes
。
- 该工具现在将扫描您的系统,并(最终)显示下图所示的窗口。单击
Create a Bootinfo summary
框/按钮。这将收集有关系统引导配置的信息,但不会进行任何更改。
- 创建了bootinfo摘要后,
boot-repair
将显示一条包含URL的消息,该URL应该如下所示:http://paste.ubuntu.com/123456/
。
请更新/编辑您的问题并添加此URL。该链接指向的pastebin中的信息将(希望)有助于我们诊断问题。
我认为覆盖Windows分区的VBR导致了此问题。
我的理解是启动操作系统有几个步骤。就您而言,我认为以下步骤会发生。
- 您计算机上的BIOS尝试在硬盘驱动器的第一个扇区中运行代码。该第一扇区通常被称为MBR(主引导记录)。
- 除了MBR,每个分区还可以具有启动记录。它通常称为卷启动记录或VBR。硬盘驱动器上的MBR将控制转移到分区1(Windows分区)的VBR。
- Windows希望分区的VBR朝着引导诸如Windows 7的操作系统迈出下一步。因此Windows最初会安装一个VBR,它将控制权转移到
bootmgr
Windows分区中的Windows 程序。
但是,当您指示Ubuntu安装程序将GRUB安装到Windows分区时,GRUB似乎已用其自己的Windows VBR替换了。该GRUB VBR显示GRUB引导菜单。
- GRUB当前用于引导Windows的指令实际上是在Windows分区中定位VBR并将控制权转移到该分区。Windows分区中的VBR是GRUB的VBR。仅将控制权转移给它(重新)将显示GRUB引导菜单。
不幸的是,我不确定什么是解决此问题的最佳方法。我们要小心,不要试图破坏GRUB,并且在尝试解决Windows的启动问题时,不可能在您的计算机上引导任何东西。
以下是您的Bootinfo摘要中的一些信息的副本,以供参考。我在上面的评论基于此信息。
============================= Boot Info Summary: ===========================
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1
of the same hard drive for core.img. core.img is at this location and
looks for (,msdos2)/boot/grub on this drive.
sda1: ______________________________________________________________________
File system: ntfs
Boot sector type: Grub2 (v1.99)
Boot sector info: Grub2 (v1.99) is installed in the boot sector of sda1
and looks at sector 44090872 of the same hard drive
for core.img. core.img is at this location and looks
for (,msdos2)/boot/grub on this drive. No errors
found in the Boot Parameter Block.
Operating System: Windows 7
Boot files: /bootmgr /Boot/BCD /Windows/System32/winload.exe
sda2: ______________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 12.04 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img
引导Windows 7的可能解决方法
以下是编辑GRUB引导命令的建议,该命令可能允许您引导Windows7。我不确定这是否可行,但似乎值得尝试。
当前,您grub.cfg
使用下面的GRUB启动命令来启动Windows 7。
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
chainloader +1
}
我建议您尝试更改此设置并改用这些命令。
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
ntldr ($root)/bootmgr
}
这是执行此操作的步骤。
- 将系统引导至GRUB菜单。
- 选择(突出显示)GRUB引导菜单项
Windows 7 (loader) (on
/dev/sda1)
。
- 按下e以编辑Windows 7的GRUB引导命令。
- 如上所示,对该命令列表进行两项更改
menuentry
。
- 添加命令
insmod ntldr
- 将命令更改
chainloader +1
为
ntldr ($root)/bootmgr
- 按Ctrl+ X或F10使用这些编辑的命令启动。
注1:
如果上述解决方法成功加载Windows 7启动菜单,则可以通过以下方式将其设置为半永久性
- 使用
sudo
编辑该文件/etc/grub.d/40_custom
并添加第二,改性menuentry
如上所示。(如果这样做,我还建议您更改此“自定义”条目的标题。)
- 运行命令
sudo update-grub
以更新/boot/grub/grub.cfg
以包括您的自定义条目。(启动时,它将在GRUB菜单的底部。)
我认为以上建议只是部分解决方案。更好的解决方案是将Windows VBR还原到Windows分区,而不破坏GRUB的启动能力。
我认为...但不确定100%是否bootsect
可以使用Windows恢复命令来执行此操作。如果您想冒险,下面概述了一种可行的方法。
- 引导Windows时,按F8弹出
Advanced Boot Options
菜单。
- 选择
Repair Your Computer
条目。
- 穿过下一个窗户,直到到达
System Recovery Options
。
- 选择
Command Prompt
- 运行命令
bootsect /nt60 C:
但是,您可能还需要稍等一下,然后再看一下问题的其他答案,然后再尝试上述操作。
笔记2:
在搜索其他内容时,我在AskUbuntu上遇到了另外两个与您的问题相关的问题。
- 安装Ubuntu 11后Windows 7无法启动
- 安装Ubuntu后Windows 7无法启动
我不确定这些问题能提供多少帮助。第二个问题的答案是使用命令bootrec /fixboot
为Windows分区还原VBR。从这个问题中我的理解是使用bootrec /fixboot
命令可以解决问题。
但是第二个问题,坚持bootrec /fixboot
并没有解决这个问题。
(就那里发生的事情打败我了。)