如何使用 Ubuntu 创建 Windows 可启动 U 盘?

Zig*_*gnd 519 windows usb-creator usb-installation

我想创建一个 Windows 可启动 U 盘,但我目前没有 Windows 机器来这样做。我如何使用 Ubuntu 实现相同的目标?

Avi*_*Raj 302

WinUSB 陈旧、陈旧且过时。它可能会导致较新系统出现问题。您应该使用 WineUSB 或其他软件来代替 WinUSB。

然而,为了历史目的,这个答案原样留在这里。

通过WinUSB软件从 Ubuntu 创建可启动的 Windows USB(Vista 及更高版本)。

Ubuntu 12.04 到 15.04

在终端上运行以下命令以从PPA安装 WinUSB ,

sudo add-apt-repository ppa:colingille/freshlight
sudo apt-get update
sudo apt-get install winusb
Run Code Online (Sandbox Code Playgroud)

WinUSB 截图

Ubuntu EFI 警告:

在 EFI 加载的 Ubuntu 上安装 WinUSB 将卸载 grub-efi 包以安装 grub-pc 包。如果您在重新启动之前没有手动重新安装 grub-efi 软件包,它将使您的系统无法启动。

要手动重新安装,请执行以下操作:

sudo update-grub
sudo grub-install /dev/sda
sudo update-grub
sudo reboot
Run Code Online (Sandbox Code Playgroud)

  • 这个帖子已经过时了,WinUsb 已经停产了,但是有 [WoeUsb](https://github.com/slacka/WoeUSB) 维护得很好。也看看这些答案(需要更多的赞成):https://askubuntu.com/a/928874/256359 https://askubuntu.com/a/489556/256359 (9认同)
  • @empedokles 1. 如果你想制作一个 Windows XP USB,那就别管它了。它不适用于 WinUSB。2. 要修复错误 512,请阅读 [this](http://askubuntu.com/a/539803/269282)。 (6认同)
  • @ThoVo 阅读此答案:http://askubuntu.com/a/539803/269282 (2认同)
  • 在 15.10、16.04、16.10 中不起作用 (2认同)

Cor*_*ius 217

任何 Ubuntu 版本

甚至其他 Linux 发行版,只要安装了GPartedGRUB

使用以下命令在 Ubuntu 上安装 GParted、GRUB、7z 和 NTFS:

sudo apt-get install gparted grub-pc-bin p7zip-full ntfs-3g
Run Code Online (Sandbox Code Playgroud)

对于 BIOS:MBR 分区方案

  1. 使用 GParted,将 USB 驱动器的分区表重写为msdos,将其格式化为NTFS,然后“管理标志”并添加boot标志。

  2. 在 GParted 中,右键单击 USB 分区并选择Information。根据需要将 UUID 复制到某处。

  3. 挂载您的 Windows ISO 或 DVD,并将其所有文件复制到 USB 驱动器。

  4. 转到 USB 驱动器,如果命名的文件夹中boot有大写字符,请通过重命名将它们全部小写。

  5. 在 USB 驱动器上安装 GRUB。

    在下面的命令中,替换/dev/sdX为设备(例如/dev/sdbnot /dev/sdb1)并替换<USB_mount_folder>为您安装 USB 驱动器的文件夹(可能类似于/media/<username>/<UUID>)。

    sudo grub-install --target=i386-pc --boot-directory="/<USB_mount_folder>/boot" /dev/sdX
    
    Run Code Online (Sandbox Code Playgroud)
  6. 在 U 盘文件夹中创建一个boot/grub/名为grub.cfg.

    将其写入文件,替换<UUID_from_step_2>为您在第 2 步中复制的 UUID。

    echo "If you see this, you have successfully booted from USB :)"
    insmod ntfs
    insmod search_fs_uuid
    search --no-floppy --fs-uuid <UUID_from_step_2> --set root
    ntldr /bootmgr
    boot
    
    Run Code Online (Sandbox Code Playgroud)
  7. 卸载 USB 驱动器。

  8. 现在要使用它,请重新启动您的 PC,然后从 USB 驱动器启动。

对于 UEFI:GPT 分区方案 *

* 较旧的 Windows 版本/版本可能无法正确支持或根本不支持。我建议阅读Microsoft UEFI 固件页面。

  1. 使用 GParted,将 U 盘的分区表重写为GPT
  2. 创建一个新的主分区并将其格式化为FAT32
  3. 挂载您的 Windows ISO 或 DVD,并将其所有文件复制到 USB 驱动器。
  4. 查看efi/boot/文件夹中的USB 。如果有文件bootx64.efi( bootia32.efi) 那么你就完成了。USB 是可启动的。跳到步骤 7。
  5. 否则,sources/install.wim使用存档管理器(您必须已7z安装)打开并浏览到./1/Windows/Boot/EFI/. 从这里提取bootmgfw.efi的地方,其重命名为bootx64.efi(或bootia32.efi用于支持32位操作系统[?]),并把它放在USB的efi/boot/文件夹中。
  6. 如果您正在制作 Windows 7 USB,请将boot文件夹从文件夹复制efi/microsoft/efi文件夹。
  7. 不要忘记卸载(安全移除)USB 驱动器。
  8. 从 BIOS 中选择合适的 EFI 加载程序。

来源:我的博客文章可以在Make a bootable Windows USB from Linux 中找到

笔记

当与兼容的目标操作系统正确使用时,这两种方法都应该为您提供一个可启动的 USB 驱动器。但是,这并不能保证成功安装 Windows。

  • EFI 方法是 Win10 的方法。现在您可以安全地跳过步骤 4-6。 (8认同)
  • 我可以确认 UEFI/GPT 方法无需步骤 4-6 即可在 Windows 10 中运行。 (3认同)
  • @GuiImamura 右键单击​​ GParted 中的分区,选择管理标志并勾选 *boot* 旁边的复选框。 (2认同)
  • 在尝试了许多其他事情之后,这是唯一对我有用的。谢谢。 (2认同)
  • 如果您遇到任何错误,请查看他的博客文章(链接在他的答案底部)以获取详细信息。某些错误情况的解决方案可能有用。 (2认同)
  • @pointy 显然您需要先安装 Windows ISO,然后只需复制和粘贴即可。什么不能得到?我已经编辑了帖子以使其更清晰。 (2认同)
  • UEFI 方法对我不起作用:“cp:写入 './sources/install.wim' 时出错:文件太大” 建议的文件系统似乎不合适。 (2认同)

Eug*_*ene 117

使用 WoeUSB (WinUSB fork) 编写 ISO

一些答案已经过时,因为 WinUSB 不再工作。但是有一个名为WoeUSB的工作叉。

Github:https : //github.com/WoeUSB/WoeUSB

域名注册地址:

sudo woeusb --target-filesystem NTFS --device /path/to/your.iso /dev/sdX
Run Code Online (Sandbox Code Playgroud)

安装

不再卸载grub-efi!

? Ubuntu / Debian

sudo add-apt-repository universe # contains the p7zip-full dependency
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install woeusb
Run Code Online (Sandbox Code Playgroud)

? 拱  

pacaur -S woeusb
Run Code Online (Sandbox Code Playgroud)

? 软呢帽

dnf install -y WoeUSB
Run Code Online (Sandbox Code Playgroud)

? OpenSUSE

zypper install WoeUSB
Run Code Online (Sandbox Code Playgroud)

识别 U 盘(/dev/sdX 路径)

图形用户界面方法

搜索名为disks的程序,或者如果您使用 gnome,则可以通过执行来启动它gnome-disks

命令行方法

有几个命令可用于列出存储设备。您可以尝试以下方法之一:

sudo lsblk --scsi --paths 
sudo lshw -class disk -short
Run Code Online (Sandbox Code Playgroud)

识别您的 USB 设备并查看它的路径(如 /dev/sdX)。

编写 ISO

安装后,使用以下命令将 Windows ISO 写入您的存储设备。在下面的命令中,将 /dev/sdX 中的 X 替换为您的 USB 设备路径(参见上文如何找到它)。

sudo woeusb --target-filesystem NTFS --device /path/to/your.iso /dev/sdX
Run Code Online (Sandbox Code Playgroud)

--target-filesystem NTFS如果安装映像大于 4GB,则需要该标志,当前 Windows 10 官方 ISO 文件就是这种情况。

  • 如果您看到错误“源映像中的文件已超出 FAT32 文件系统 4GiB 单个文件大小限制”,则需要在命令行中添加 `--tgt-fs ntfs`。 (19认同)
  • 在“错误:目标设备当前正忙”问题上,使用“sudo umount /dev/sdb”(或相应设备)。(“弹出”USB 记忆棒 _not_ 帮助,因为它不能完全消失,只能卸载分区。否则错误将是:`探测初始化失败:找不到介质`) (10认同)
  • 完美地工作。在 Achlinux 上`pacaur -S woeusb-git` (3认同)
  • 这似乎不再起作用,但维护者创建了一个重写:https://github.com/WoeUSB/WoeUSB-ng,其中还包括一个 gui 版本,非常方便 (3认同)
  • 还使用 Win10_1803_x64 iso 在 Fedora 28 上工作。安装:`dnf install -y WoeUSB` (2认同)

kar*_*rel 109

Ubuntu 14.04 及更高版本

WoeUSB 是用于创建用于安装 Windows 的可引导 USB 闪存驱动器的工具。Windows 7 和更高版本的映像支持本机 UEFI 引导。WoeUSB 是 WinUSB 项目的更新分支。

某些第三方安装程序具有/sources/install.wim大于 4GB 的Windows 安装映像 ( ),因此无法将 FAT32 作为目标文件系统。NTFS 文件系统支持已添加到 WoeUSB 3.0.0 及更高版本。

安装

在 Ubuntu 14.04/16.04/17.10-20.04 中安装 WoeUSB (GUI+CLI):

sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt update  
sudo apt install woeusb
Run Code Online (Sandbox Code Playgroud)

这将安装 WoeUSB 图形界面和 WoeUSB 命令行工具。WoeUSB 支持 FAT32/NTFS/ExFAT USB 闪存驱动器的 UEFI 和 BIOS。

要在所有当前支持的 Ubuntu 版本中安装 WoeUSB 命令行工具 snap 包,请打开终端并键入:

sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt update  
sudo apt install woeusb
Run Code Online (Sandbox Code Playgroud)

要启动 woe-usb snap package 命令行工具,请运行以下命令:

sudo snap install --edge woe-usb  
sudo snap connect woe-usb:removable-media
Run Code Online (Sandbox Code Playgroud)

如果出现permission denied错误,请单击Ubuntu 软件中woe-usb屏幕上的权限按钮,然后将权限选项从关闭切换到打开,如下面的屏幕截图所示。

woe-usb 权限

WoeUSB GUI 比 WoeUSB 命令行工具更易于使用。单击左侧的单选按钮From a disk image (iso),浏览到 Windows .iso 文件的位置,在目标设备下选择 USB 闪存驱动器,打开磁盘应用程序并检查磁盘中的设备名称匹配 WoeUSB 中的目标设备(它应该类似于 /dev/sd X,其中X是字母表中的一个字母),然后单击安装按钮进行安装以在 USB 闪存驱动器上创建可引导的 Windows 安装介质。

在此处输入图片说明

来自 Ubuntu 的 Windows USB 驱动器反复失败
WoeUSB 问题


Bra*_*iam 56

当前的 UNetbootin 引导链与 UEFI和预装Windows 8副本的计算机不兼容

您可以dd改为使用,同时要小心您在做什么:

sudo dd if=/path/to/iso/windows.iso of=/dev/sdX bs=4M; sync
Run Code Online (Sandbox Code Playgroud)
  • 替换sdX为您要使用的驱动器(在我的情况下为sdg):
  • 这要求您的主板能够从 CDROM-USB 启动。

如果您仍想使用 UNetbootin,您将需要两 (3) 样东西:

  1. 网络启动
  2. Gparted
  3. Internet 访问安装以上所有内容、Windows ISO 映像和超过 4GB 的 U 盘。

因此,首先,备份 U 盘中的所有内容。完成后安装 gparted 和 unetbootin:

sudo apt-get install gparted unetbootin
Run Code Online (Sandbox Code Playgroud)

现在在 Dash 中查找 gparted 或gparted在终端中输入。从右侧的下拉列表中选择您的 U 盘。就我而言,它是/dev/sdg,你的可能不同。删除所有分区并使用 Gparted 创建一个大的 FAT32 分区。

完成后,拔下并插入您的 USB 记忆棒以便它被挂载(您也可以从同一个 GParted 挂载它),现在执行 Unetbootin,再次,您可以查看破折号或在终端中输入。选择您要使用的 ISO,查找您的 ISO 所在的路径。

标记复选框以查看所有设备,在这里您必须选择您在 Gparted 中选择的相同设备,否则您的数据可能会丢失。选择继续。稍等片刻,大功告成。重新启动您的电脑并选择从 USB 启动。

  • `dd` 对我不起作用,计算机无法从随身碟启动。如果你想在 **ntfs 格式的** pendrive 上使用 UNetbootin,你必须从命令行启动它:`sudo unetbootin installtype=USB targetdrive=/dev/sdb1`(sdb1 是 **my** pendrive 的 ntfs-格式化的分区,你的可能不同)。 (8认同)
  • 从 [serverfault 上的这个答案](http://serverfault.com/a/7022/151463) 开始,dd 方法经常失败,因为它要求您的主板能够启动 *USB-CDROM* 而不仅仅是 *USB -硬盘*。 (7认同)
  • 我更喜欢你的答案(dd 变体)而不是接受的答案,仅仅是因为它不需要添加另一个存储库,甚至根本不需要安装任何软件(不需要 unetbootin,只需使用 dd)。 (2认同)

小智 20

在非 UEFI 机器上,我们可以使用 GRUB2 使 U 盘可启动。然后,我们可以在 GRUB2 中使用 'ntldr' 命令从 USB 启动 Windows。

  • 在 USB 驱动器的目标分区上启用引导标志。使用名为“GParted”的工具可以轻松完成。它是一个用于驱动器分区的 GUI 工具。
  • 如果安装映像是 ISO 文件,则挂载它并访问这些文件。
  • 将所有文件复制到 USB 驱动器的根目录。
  • 将 GRUB 安装到 U 盘:

    sudo grub-install --boot-directory="/media/user/MyUSBDrive/boot" /dev/sdX
    
    Run Code Online (Sandbox Code Playgroud)
  • 通过将以下文件作为“/boot/grub/grub.cfg”放置在 USB 驱动器中,配置 GRUB 以启动 Windows:

    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    menuentry 'Install Windows 8' {
     ntldr /bootmgr
    }
    
    Run Code Online (Sandbox Code Playgroud)

请参阅我的博客中的完整答案 从 Linux 创建可引导的 Windows USB

  • 这是终极答案!!! (4认同)
  • 这与答案“任何 Ubuntu 版本 ... MBR 分区方案”相同,但它缺少 `grub-install` 的 `--target=i386-pc` 选项并且不使用 grub2 [搜索](https ://www.gnu.org/software/grub/manual/grub.html#search) 命令来查找要启动的“root”。或许不需要... (3认同)
  • 无需安装。最简单的步骤。应该在接受答案之前尝试过这个 (2认同)

sud*_*dus 15

一个简单的“自己动手”的方法

以下链接描述了一种相当简单的“自己动手”方法。您可以创建在 UEFI 模式和 BIOS 模式下工作的 Windows 安装驱动器,


这种“自己动手”的方法适合您

  • 如果您的 Windows iso 文件包含install.wim大小 > 4 GiB 的文件,或者
  • 如果你不喜欢 PPA,或者
  • 如果你想“自己动手”并了解细节

mkusb 版本 12.5.6 和更新版本

这种“自己动手”方法在mkusb-towmkusb 版本 12.5.6 (mkusb-dus) 和 mkusb-plug 中实现并可用。

您可以通过以下命令从 mkusb PPA 获取/更新此新版本的 mkusb

sudo add-apt-repository universe  # this line only for standard Ubuntu

sudo add-apt-repository ppa:mkusb/ppa
sudo apt-get update
sudo apt-get install mkusb mkusb-plug

sudo apt-get install usb-pack-efi  # only for persistent live drives
Run Code Online (Sandbox Code Playgroud)

mkusb-nox 和 mkusb 版本 12(32 位系统的旧方法)

这种“mkusb”方法适合您

  • 如果您运行的是 32 位操作系统,并且其他方法存在提取文件被截断的问题
  • 如果要为 Windows 7 或 8 创建启动驱动器
  • 如果您想为 [旧] Windows 10 版本创建启动驱动器,其中 iso 文件中的任何文件都不会超过 4 GiB。

很难找到可以在 Windows 中创建引导驱动器(U 盘、存储卡...)的 linux 工具,因此我将此功能添加到mkusb-nox,后来创建了具有此功能的mkusb 版本 12。它适用于所有当前版本的 Ubuntu(和 Ubuntu 风格:Kubuntu、Lubuntu ... Xubuntu)和 Debian 8-10。创建的启动驱动器可以在 UEFI 和 BIOS 模式下启动 64 位 Windows。

dus 与 guidus 别名 mkusb 版本 12: 在此处输入图片说明 在此处输入图片说明

  • Mkusb-nox 是我找到的最好的解决方案,尤其是因为此页面上引用 Winusb 的答案已过时,因为该程序不再受支持,并且在 16.04 中无法开箱即用,请继续做好 Sudodus 的工作。 (2认同)

小智 13

已接受答案中的 winusb 是我找到的唯一简单方法。

但是,没有用于 saucy 的 winusb 包。但是,您可以通过在此处下载并使用软件安装程序打开来安装 raring 包。它适用于俏皮。

http://ppa.launchpad.net/colingille/freshlight/ubuntu/pool/main/w/winusb/


Hey*_*Hey 7

  1. 安装VirtualBox和 VirtualBox 扩展

  2. 下载您要安装的Windows 映像。

  3. 创建 Windows 虚拟机,并使用您下载的 Windows ISO 文件进行设置。

  4. 插入 USB 驱动器,并使用 VM 的Devices/USB菜单将其公开给 VM。

  5. 在虚拟机中运行 Microsoft 的媒体创建工具(如果您从 Windows 访问它,您只会被定向到正确的页面)。使用此工具创建可启动的 Windows USB。

这种方法的优点是它只依赖于微软的工具,它会为你完成配置。最新的 Windows 映像包含超过 FAT32 大小限制的文件,这使得手动创建可启动 USB 驱动器变得很痛苦。我的 Dell XPS 的 UEFI 无法识别我的 WoeUSB 创建的驱动器。


Luz*_*ral 6

您可以按照这些说明使用 WinUSB 在您的 Ubuntu 上安装 WinUSB。

好的,如果您来自 Ubuntu 13.10,13.04,12.10,12.04,请在终端中运行:

sudo add-apt-repository ppa:colingille/freshlight
sudo apt-get update
sudo apt-get install winusb
Run Code Online (Sandbox Code Playgroud)

如果您来自 Ubuntu 14.04,则在终端中运行它:

sudo add-apt-repository ppa:colingille/freshlight
sudo sh -c "sed -i 's/trusty/saucy/g' /etc/apt/sources.list.d/colingille-freshlight-trusty.list"
sudo apt-get update
sudo apt-get install winusb
Run Code Online (Sandbox Code Playgroud)

WinUSB 带有一个带有最少选项的简单 GUI,这里是如何使用 WinUSB 从 Ubuntu 制作可启动的 Windows USB。您可以使用任何适用于 XP、Windows 7、Windows 8、Windows 8.1 或任何其他系统的 Windows ISO。

  1. 插入闪存驱动器并获取您的 Windows ISO(我使用的是 Windows 10 Technical Preview)或插入 Windows CD/DVD
  2. 启动 WinUSB,没有其他真正需要解释的了。
  3. 选择您的来源,ISO 或 CD 驱动器
  4. 选择您的目标 (USB) 设备。如果它没有出现,请点击刷新并确保它已安装。
  5. 单击“安装”并输入您的密码(需要安装设备并直接写入驱动器)

这就是创建可引导的 Windows USB 记忆棒所需要做的一切

来源: 如何在 Ubuntu 中安装和使用 WinUSB


C.S*_*ron 5

使用 mkusb-plug 安装 Windows

在此输入图像描述

步骤1

在此输入图像描述

第2步

在此输入图像描述

步骤3

[在此输入图像描述]4]

步骤4

在此输入图像描述

步骤5

在此输入图像描述

步骤6

在此输入图像描述

步骤7

在此输入图像描述

步骤8

您现在应该已经准备好了 USB 安装程序,可以用 Windows 感染您的计算机

https://help.ubuntu.com/community/mkusb#Windows_USB_install_drive


归档时间:

查看次数:

1650999 次

最近记录:

4 年,3 月 前