我需要从 ISO 文件创建 Windows 安装 USB 驱动器。我使用了 UNetbootin,它似乎是唯一可以写入非 Linux 映像的工具。
USB 磁盘可以启动(某种程度上),但它卡在了第一阶段。出现 UNetbootin 启动画面,不断从 10 倒数到 0,然后重新启动。
屏幕显示如下:
有没有办法让 Windows 从在 Linux 上创建的 USB 映像启动?
答案1
方法 1
使用gparted 格式驱动器FAT16,设置启动标志。
使用档案管理器将 iso 提取到驱动器。
(或者只是将 DVD 复制到驱动器)。
就是这样。
对我有用
方法 2
要创建可启动安装程序光盘,请选择 ISO 映像或 CD/DVD 光盘,然后单击安装
这将创建您的 Windows Vista/7 安装程序 USB。值得一提的是,该工具可能也适用于 Windows 8;但是,它尚未经过测试。话虽如此,开发人员提到支持的图像包括“Windows Vista、Seven+”。您可以从开发人员网站提供的 Deb 包(适用于 Oneiric、Natty、Maverick 和 Lucid)或下面提供的 PPA 安装 WinUSB。
sudo add-apt-repository ppa:colingille/freshlight
sudo apt-get update
sudo apt-get install winusb
由于 WinUSB 也可以通过命令行运行,因此您可以按照下面给出的命令行格式创建 Windows 7 或 Windows Vista USB 安装程序
sudo winusb --format <iso path> <device>
使用上述方法格式化 USB 后,安装 Windows 分区并编辑主引导记录:
sudo winusb --install <iso path> <partition>
答案2
这是一个简单的过程。
对于 BIOS:MBR 分区方案
将 USB 格式化为 FAT32 并使用“启动”标志进行标记。(NTFS 也可以,但在本教程中,我使用 FAT32,因为您可以通过这种方式使其可进行 UEFI 启动。)
将 USB 安装在某处,例如
/media/<user>/<disc_label>
使用以下命令将 grub 安装到 USB:
grub-install --force --no-floppy --boot-directory=/media/<user>/<disc_label>/boot /dev/sdX
(安装到磁盘;不是分区!)
将 iso 的内容提取到 USB 驱动器的根目录下;我个人使用 7z 来实现此目的:
7z x /path/to/win.iso
(请注意,Win7 iso 有一个启动目录;您需要将使用 grub 创建的启动目录与 iso 的内容“重叠”。)
你应该得到类似这样的结果
├── autorun.inf
├── boot
│ └── grub
├── bootmgr
├── efi
├── setup.exe
├── sources
├── support
└── upgrade
编辑/创建 boot/grub/grub.cfg 使其包含以下菜单项:
menuentry 'Windows 7 AIO Installer' --class windows --class os { set root=(hd0,1) insmod part_msdos insmod fat insmod ntldr ntldr /bootmgr }
当进入 grub 提示符 (
grub>
) 时,输入boot
并按Enter享受您的可启动棒。
这可能有点绕弯子,但这可以让您通过编辑 grub.cfg 文件根据需要添加其他资源。我个人有一个 Windows 7 All In one(win7 的 9 个版本)安装程序、Mini Windows XP(来自 hirens)、DOS 6.22、memtest 和 gparted live,它们都安装在一个 USB 上。
对于 UEFI:GPT 分区方案 *
向上复制
efi/microsoft/boot
一层:cp -r efi/microsoft/boot efi/boot/
(由于 FAT32 文件系统不区分大小写且挂载选项不同,因此路径可能全部为大写、小写或混合使用。请调整命令以适合您的情况。)
摘自
1/Windows/Boot/EFI/bootmgfw.efi
sources/install.wim
7z e sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
将此文件放置为
efi/boot/bootx64.efi
mv bootmgfw.efi efi/boot/bootx64.efi
享受您的 UEFI 可启动的 Windows 7 USB!
对于 UEFI:GPT 分区方案 - 第 2 章**
当我用更现代/更快/更大的 SSD 替换我的 SSD 时,我将旧的 SSD 变成了 USB 驱动器。为了访问该驱动器上的现有 grub,我执行以下操作:
创建一个
efi/boot
目录(如上所述)复制
efi/debian/grubx64.efi
并efi/debian/grub.cfg
至efi/boot/bootx64.efi
和efi/boot/grub.cfg
。通过计算机的启动菜单启动新的 USB 驱动器。
我猜想每次安装新版本的 grub 时都应该这样做。(但即使在两年后我更新系统之前,旧版本也能正常工作)
你可能想在/etc/default/grub
(GRUB_DISABLE_OS_PROBER=true
)中禁用操作系统探测 - 参见这一页。