我正在使用 Linux(Ubuntu Zasty 17.04)。
我在各个地方找到的 10 多个“解决方案”都没有用。
我做了什么:
- 在 USB 驱动器上创建 MBR 分区表
- 在整个驱动器上创建一个单独的活动分区
- 将类型设置为 0xb“W95 FAT32”
- 格式化分区“mkfs.vfat /dev/sdb1”
- 挂载安装程序 iso 和 USB 驱动器,复制所有文件,然后卸载。
有效的方法:- 使用 EFI 启动完美
不可以做的: - 使用 BIOS 启动。
显然。此时没有设置 MBR,因此 BIOS 不知道如何启动。
尝试过:
- 使用 LILO 安装 MBR(MBR 代码如何知道要引导什么?)
- 尝试安装 syslinux MBR(有点相同)
使用“kvm -m 2048 -cdrom [path to iso] -hda /dev/sdb”启动 iso 并且:
...尝试自动修复 USB 驱动器上的启动记录
- 尝试使用 bootrec.exe 手动修复它
- (发现 bootrec/ScanOs 甚至看不到可启动的 Windows 系统)
- 手动创建新的 BCD,添加 bootmgr 和 osloader
无法弄清楚要使用什么根和路径,所以这显然是错误的,但我希望可以以某种方式修复它。
此时,Windows 引导加载程序启动正常,但它当然无法启动系统,因为驱动器上没有 \Windows 目录,所以默认路径和根目录不起作用。
所以问题是:
- 可以通过这种方式使 Windows 引导加载程序启动 Windows 安装程序吗?
- 如果没有,我该如何让该驱动器通过 BIOS 启动?
提前感谢您的回答。
答案1
@netom,
您到目前为止所做的一切(格式化、分区、复制)都没有问题。
你需要:
Windows MBR(主引导记录)和 Windows PBR(分区引导记录)。
Windows 启动顺序:
BIOS 加载 MBR,MBR 加载活动的 PBR,PBR 从活动(文件 \bootmgr)加载 Windows 启动管理器等等。
发行版 BCD(用于 UEFI 和 BIOS)已经具有“通用”的默认启动项(例如,它们期望所有必要的启动可执行文件都位于标准文件夹/目录中的“启动设备”上)。
您需要一个 Linux 工具来写入 Windows 7/8/10 启动扇区。
https://help.ubuntu.com/community/RestoreUbuntu/XP/Vista/7Bootloader
也可以看看修复 Windows 启动问题- 最后一段 - 手动 Windows 启动修复。
答案2
我发现了一个叫做鲁弗斯(官方网站)。它用于为 Windows 安装程序制作可启动的 USB 驱动器。
我将在虚拟机上尝试后更新此答案。
编辑:我无法使用 Rufus 创建可启动 ISO。我不知道 Rufus 是否无法做到这一点,或者虚拟机是否阻止可启动 USB 磁盘启动。我不知道为什么你需要一个 BIOS 可启动 USB 驱动器,因为 EFI 是可启动的。
编辑:我不知道你是否懂中文,但中国有很多可启动的 USB 工具。最著名的有大白菜、老毛桃等等。它们还没有英文版,但它们确实可以创建能够从 BIOS 和 EFI 启动的可启动 USB 驱动器。
我还注意到有启动 CD,例如Hiren 的 BootCD。英文版的PE系统,可以刻录到U盘里。也许你可以先从PE系统启动,然后从PE系统运行Windows 10安装程序。至少大多数中国人都是这样安装操作系统的。
答案3
另一个网站声明FAT 分区的类型应为 0xc,而不是 0xb。Rufus 有一个默认隐藏且未启用创造的特征两个都按下 UEFI+BIOS 启动 USBAlt-E。
不过Rufus使用的方法也可以手动完成。
- 在 USB 驱动器上创建两个分区,其中:
- 第一个分区:NTFS
- 第二个/最后一个分区:FAT32
- 将 UEFI 的 *.efi 启动文件复制到 FAT32 分区(解释:UEFI 固件不需要 MBR,但会扫描驱动器以查找包含 *.efi 文件的 FAT32 分区)
- 安装 BIOS 的启动文件并将安装媒体光盘的所有内容复制到 NTFS 分区(说明:BIOS 将读取驱动器第一个扇区上的 MBR,然后依次在第一个活动分区即 NTFS 分区上运行引导加载程序)。
- 这里最重要的秘密就是复制引导文件夹和电喷文件夹从媒体光盘复制到两个分区。