我需要在当前运行 Ubuntu 10.10 的机器上安装 Windows XP。我有一个 XP 的集成 ISO,只有一个 USB 启动盘。我无法访问另一台 Windows 机器,而且我的 Windows 虚拟机无法识别我的 USB 驱动器。解决方案必须完全基于 Linux。
答案1
除非您修改了 SETUPLDR.BIN,否则它无法直接从 USB 工作。
Needed:
Modified SETUPLDR.BIN
special stuff in the bootsector of the partition (use ms-sys).
Modified copy of txtsetup.sif copied to the root level
NTDETECT.COM copied to root level
WinUSB 不执行此操作,UNetBootin 不执行此操作,diskpart 教程不执行此操作,WinToFlash 不执行此操作,并且使用 dd 将 iso 位拆解到设备上也不执行此操作。
Rufus 可以做到这一点。但是,它是一款仅适用于 Windows 的实用程序(Wine 不支持),因此请按照此处的教程(大帖子)操作:
https://superuser.com/questions/99478/make-a-bootable-usb-to-install-windows-xp-from-linux
您还可以尝试使用 QEMU 或 VirtualBox,实际上您可以将虚拟机的硬盘之一作为您的真实目标硬盘,然后让虚拟机管理程序像 CD 一样启动 iso(实际的硬件模拟,而不是 Grub4DOS 所做的 BIOS 磁盘模拟。是的,“真正的假货”而不是“假货”。)。请注意,您需要创建第二个硬件配置文件,因为 Windows 在安装的第一部分将自身配置为特定的硬件配置,而虚拟机管理程序所召唤的硬件平台与您的真实硬件平台不同。不确定这是否会起作用。我建议模仿 Rufus。
将整个 iso 加载到内存并启动的方法通常会导致某个时候出现蓝屏。Firadisk 会阻止该蓝屏。如果您确实想使用该方法,请参阅以下内容:http://diddy.boot-land.net/firadisk/files/win_iso_install.htm
编辑:刚刚尝试了 Multisystem(一个 Linux 应用程序)来使 USB 驱动器可启动到 XP 安装程序。它确实有效,但是,它使用将整个 iso 与 Firadisk 一起加载到内存中的方法,如上面的链接所述。
就我个人而言,我认为 Multisystem 创建 USB XP 安装程序的具体解决方案并不理想。我必须安装 xterm 并运行一个下载了一堆东西的安装脚本。我只告诉 Multisystem 使其可从 XP 安装 iso 启动,结果 USB 驱动器包含 Grub2、Syslinux、Grub4DOS、可启动的 Grub2 iso、Plop 东西和一堆菜单项。您必须知道在第一个菜单(Grub2 菜单)下点击“Grub4DOS”才能进入安装 XP 的选项。您可能会认为,如果这是我唯一想要启动的东西,XP 安装将位于第一个菜单中(是的,我知道,使用 Grub4DOS 方法是不可能的,但菜单中的注释怎么样?)。此外,它必须将整个 iso 加载到内存中,这需要 RAM 和时间。(如果系统没有足够的 RAM 怎么办?)
每次使用 U 盘时,Multisystem 都会坚持安装 Grub2(即使已经安装),甚至还想调整 U 盘分区的大小。然后在那里放了一堆额外的东西。
笔记: 必须从非免费选项卡安装 Firadisk 才能制作 USB XP 安装程序。我读过的操作指南说还要安装 Plop 来创建 USB XP 安装程序,但我不明白为什么需要这样做。
另请注意: 您必须使用 Grub4DOS 菜单选项启动 XP 安装程序的第二阶段,以再次将 iso 加载到内存中,这在第二阶段仍然需要。(而不是仅仅启动到目标硬盘驱动器)也就是说,如果您选择 RAM'ed iso + Firadisk 方法。
我建议模仿 Rufus 的做法。只需复制文件并进行一些调整即可。
杰克
答案2
当然可以使用 UNetbootin。不过需要注意一些重要事项,否则它将无法正常工作:
首先,确保将 USB 密钥格式化为 NTFS 并将其标记为可启动 - 您可以使用 gparted 来执行此操作(sudo apt-get install gparted
)。然后运行已安装 USB 密钥的 UNetbootin。在其界面上,选择“Diskimage”,然后浏览您的 .ISO 文件。选中“显示所有驱动器”框(以便它可以找到您的 NTFS 格式的 USB 密钥)并选择正确的驱动器(小心!) - 在我的情况下,它是“/dev/sdd1”。
点击“确定”并等待。复制所有文件需要很长时间。所以请等待。
答案3
该实用程序将在 Linux 中运行(大概适用于 Ubuntu):
http://unetbootin.sourceforge.net/
它说你只要给它一个 ISO 文件,它就会将 USB 变成该 ISO 的可启动副本。然后从 BIOS 启动 USB 设备。
答案4
这可能适用于裸机>http://ansi.interblc.com/2010/02/06/howto-boot-iso-images-via-grub2-with-ubuntu/。当然,它也可能只是让安装程序呕吐...还没有尝试过。
另一个选项可能是从 usb 启动 bartpe,并将安装文件暂存于 i386 文件夹中,就像您执行 oem 安装并将引导扇区从 iso 复制到 HD 一样。这可能变得非常棘手,但我让它工作了一次。