我在笔记本电脑(SSD 驱动器)上运行 Ubuntu 13.04,最近又买了一个 HDD(第二个驱动器)来代替 CD-ROM。我想要实现的是将 Ubuntu 作为主操作系统,并能够偶尔启动 Windows 7。
我想要的设置是这样的:
- hd0,0-(Ubuntu 安装到 /)
- hd1,0——WINDOWS 分区
- hd1,1——数据分区
由于现在我没有 CDROM,所以我必须从某个分区安装 Windows。我找到了一个教程,展示了如何使用Grub4Dos
它来做到这一点。所以我做了以下事情:
- 复制
grub.exe
到/
- 在 Ubuntu 中的 grub2 配置中添加了自定义条目,以便能够在启动时进入 Grub4Dos。
- 将我的 Win7 ISO 挂载到
/mnt
。然后使用以下命令将所有内容复制到DATA
分区 (FAT32):cp -R /mnt/* /media/my_name/DATA
- 重启机器并进入
Grub4Dos
- 然后我再次检查了我的解压 ISO 是否可用
(hd1,1)
- 是的。 - 应用如下:
root (hd1,1)
chainloader (hd1,1)/bootmgr
boot
之后,某些 Windows exec 启动(看起来像 Windows 安装程序)并立即报告问题:
Windows 启动管理器
Windows 无法启动。最近的硬件或软件更改可能是原因。 修复此问题: 1. 插入 Windows 安装光盘并重新启动计算机。 2. 选择您的语言设置,然后单击“下一步”。 3.单击“修复您的计算机”。 如果您没有此光盘,请联系您的系统管理员或计算机 制造商寻求帮助。 文件:\Boot\BCD 状态:0xc000000f 信息:尝试读取启动配置数据时发生错误。
我在网上寻找解决方案,但所有资源都指向我通过 CD 修复 Windows,而我显然没有 CD(没有安装 CD-ROM 驱动器)。
我仔细检查了该hd1,1
文件/boot/bcd
夹,确实如此。所以看起来没有损坏。
谁知道发生了什么事?
答案1
要使磁盘可启动(无论是否使用 grub4dos),您必须写入 Windows 7 MBR 和 PBR 并使分区处于活动状态。
使用 grub4dos 时,你可以直接加载 bootmgr,跳过引导记录,但\boot\BCD 必须位于活动分区上!
有多种工具可以写入 NT6(Vista、Windows 7/8)引导记录。任何磁盘管理工具都可以激活分区(parted - 引导标志)。
以上陈述适用于 BIOS 固件启动。
对于 UEFI 启动,您需要 ESP(EFI 系统分区),其中放置 Windows 启动文件,并在 NVRAM 中放置相应的启动项。