如何使用Ubuntu创建Windows可启动USB记忆棒?


446

我想创建一个Windows 8可引导USB记忆棒,但是我没有Windows计算机。

那么我该如何使用Ubuntu呢?


31
Psicofrenia“ UNetbootin允许您为Ubuntu,Fedora和其他Linux发行版创建可启动的Live USB驱动器,而无需刻录CD。”,我已经尝试使用它,并且发现UNetbootin确实不能用于创建Windows可启动的USB记忆棒。 。
Zignd

您是否尝试过按照Windows 8教程中的有关如何刻录USB滴答声并使用Wine来运行这些指定的软件之一的方法?
肾盂肾炎


1
@MrSeed我已经尝试过本教程,还下载了旧版本的UNetbootin,但是问题在于旧版本依赖于Ubuntu 13.04不能使用的库,因为它太旧了。库可用,但该应用程序在安装后仍无法使用。
Zignd

2
UNetbootin总是产生任何错误
gal007

Answers:


299

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

WinUSB屏幕截图

对于Ubuntu EFI的警告:

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

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

sudo update-grub
sudo grub-install /dev/sda
sudo update-grub
sudo reboot

1
会像sudo add-apt-repository "deb http://ppa.launchpad.net/colingille/freshlight/ubuntu saucy main"对的14.04更好?apt-add-repository不只是PPA的...
Wilf 2014年

6
@empedokles 1.如果要制作Windows XP USB,请不要理会。它不适用于WinUSB。2.要解决错误512,请阅读此内容
Cornelius 2014年

2
@ThoVo阅读了这个答案:askubuntu.com/a/539803/269282
Cornelius

2
不适用于15.10、16.04、16.10
牧场

6
这篇文章是过时的,是了WinUSB停产,但有WoeUsb是良好编程和维持。还要看看这些答案(需要更多投票):askubuntu.com/a/928874/256359 askubuntu.com/a/489556/256359
davcri

209

任何Ubuntu版本

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

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

sudo apt-get install gparted grub-pc-bin p7zip-full ntfs-3g

对于BIOS:MBR分区方案

  1. 使用GParted,将USB驱动器的分区表重写为msdos,将其格式化为NTFS,然后“管理标志”并添加boot标志。
  2. 在GParted中,右键单击USB分区,然后选择信息。将UUID复制到需要的地方。
  3. 挂载Windows ISO或DVD,并将其所有文件复制到USB驱动器。
  4. 转到USB驱动器,如果命名的文件夹boot具有大写字母,请通过重命名使它们全部为小写字母。
  5. 在USB驱动器上安装GRUB。

    在以下命令中,替换/dev/sdX为设备(例如/dev/sdb不是 /dev/sdb1),并替换<USB_mount_folder>为安装USB驱动器的文件夹(可能是/media/<username>/<UUID>)。

    sudo grub-install --target=i386-pc --boot-directory="/<USB_mount_folder>/boot" /dev/sdX
    
  6. boot/grub/在名称为的USB驱动器文件夹中创建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
    
  7. 卸载USB驱动器。

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

对于UEFI:GPT分区方案*

*可能不完全支持或根本不支持较早的Windows版本。我建议阅读Microsoft UEFI固件页面。

  1. 使用GParted将USB驱动器的分区表重写为GPT
  2. 创建一个新的主分区,并将其格式化为FAT32
  3. 将所有Windows文件(从已安装的ISO或DVD)复制到USB驱动器。
  4. 查看efi/boot/文件夹中的USB 。如果有文件bootx64.efibootia32.efi),那么您就完成了。USB是可引导的。跳至步骤7。
  5. 否则,sources/install.wim使用存档管理器打开(必须已7z安装)并浏览到./1/Windows/Boot/EFI/。从此处解压缩bootmgfw.efi某处,将其重命名为bootx64.efi(或bootia32.efi对于受支持的 32位OS [?])并将其放在USB efi/boot/文件夹中。
  6. 如果要使用Windows 7 USB,请将boot文件夹从复制efi/microsoft/efi文件夹。
  7. 不要忘记卸载(安全卸下)USB驱动器。从BIOS中选择合适的EFI加载程序。

来源:有关此内容的我的博客文章可在 “从Linux制作可启动Windows USB”中找到。

注意

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


2
@GuiImamura右键单击GParted中的分区,选择Manage Flags并勾选boot旁边的复选框。
Cornelius

8
EFI方法是用于Win10的方法。现在,您可以安全地跳过步骤4-6。
伊万·阿尼舒克

2
在尝试了许多其他事情之后,这是唯一对我有用的方法。谢谢。
becko '16

3
我可以证实,UEFI / GPT方法作品,未经步骤4-6与Windows 10
josch

2
如果遇到任何错误,请查看他的博客文章(在他的答案的底部链接)以获取详细信息。解决某些错误情况的方法可能会很有用。
Teo

100

Ubuntu 14.04及更高版本

WinUSB是用于创建用于安装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 / 18.04 / 18.10 / 19.04中安装WoeUSB(WinUSB项目的更新版):

sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt update  
sudo apt install woeusb

要在Ubuntu 14.04 / 16.04 / 16.10 / 17.04中安装WinUSB:

sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt update  
sudo apt install winusb

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

WinUSB GUI比WinUSB命令行工具更易于使用。要在NTFS分区上安装Windows ISO并使用WinUSB和WoeUSB命令行工具编辑设备的主启动记录(MBR),请运行以下命令:单击显示为从磁盘映像(iso)左侧的单选按钮。,浏览至Windows .iso文件的位置,在“ 目标设备”下选择一个USB闪存驱动器,打开“磁盘”应用程序,并检查“磁盘”中的“设备名称”是否与WinUSB中的“目标”设备相匹配(应该类似于/ dev / sd X(其中X是字母),然后单击“ 安装”按钮进行安装,以在USB闪存驱动器上创建可引导的Windows安装介质。

在此处输入图片说明

在EFI加载的Ubuntu上安装WinUSB会卸载grub-efi软件包,以便安装grub-pc软件包,因此在重新启动之前,请运行以下命令来修复grub:

须藤更新
sudo grub-install / dev / sd X#将X替换为grub所在分区的字母
须藤更新
须藤重启

1
它有效(使用64位版本)
Pavak Paul

2
还是像其他所有人一样使用dd ...
ChangosMuertos

1
我必须去买更高质量的USB记忆棒才能正常工作。我想这不是WinUSB特有的问题。
赛斯(Seth)

$ sudo add-apt-repository ppa:nilarimogard / webupd8无法添加PPA:'ppa:〜nilarimogard / ubuntu / webupd8'。错误:“〜nilarimogard”用户或团队不存在。
Christophe Ferreboeuf'2

它可以在我的计算机上使用。您应该看到一条消息:More info: https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8 Press [ENTER] to continue or ctrl-c to cancel adding it看到此消息后,按Enter键继续。也许您有连接问题。
karel

52

用WoeUSB(WinUSB fork)编写ISO

由于WinUSB不再起作用,因此某些答案已过时。但是有一个名为WoeUSB的工作叉。

GitHub:https : //github.com/slacka/WoeUSB

安装

不再卸载 grub-efi!

☞Ubuntu / Debian的

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install woeusb

☞拱门

pacaur -S woeusb-git

☞Fedora

dnf install -y WoeUSB

☞OpenSUSE

zypper install WoeUSB

编写ISO

安装后,使用以下命令编写Windows ISO:

sudo woeusb --device /path/to/your.iso /dev/sdX

(用与您的USB对应的字母替换Xin /dev/sdX。您可以在程序Disks中找到正确的字母。)


2
工作完美。在Achlinux上pacaur -S woeusb-git
dvim

1
WoeUSB非常完美!而且,与WinUSB不同,它不需要将整个Web工具包都作为依赖项(仅在台式PC上编译Web工具包要花费几个小时)。
davcri

2
出现Error: Target device is currently busy问题时,请使用sudo umount /dev/sdb(或使用相应的设备)。(“弹出” U盘是不是。帮助,因为它不能完全消失,只有分区卸载,否则就会报错:probing initialization failed: No medium found
弗兰克Nocke

2
还使用Win10_1803_x64 iso在Fedora 28上工作。要安装:dnf install -y WoeUSB
eddygeek

6
如果看到错误“源图像中的文件已超过FAT32 Filesystem 4GiB单个文件大小限制”,则需要将其添加--tgt-fs ntfs到命令行。
亚当·丁格尔

49

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

您可以dd改用,同时注意自己在做什么:

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

如果您仍然想使用UNetbootin,则需要两(3)件事:

  1. Unetbootin
  2. Gparted
  3. 可以通过互联网访问上述所有内容,Windows ISO映像和容量超过4GB的USB记忆棒。

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

sudo apt-get install gparted unetbootin

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

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

选中该复选框以查看所有设备,在这里您必须选择在Gparted中选择的同一设备,否则您的数据可能会丢失。选择继续。等待片刻,完成。重新启动电脑,然后选择从USB启动。


1
@gcb很奇怪,是Windows 8吗?
Braiam

1
好点子。没有。这是Windows7专业版。我将用win8检查一下该CD是否具有sd / hdd格式。
gcb

2
我更喜欢您的答案(dd变体)而不是已接受的答案,这仅仅是因为它不需要添加其他存储库甚至根本不需要安装任何软件(不需要unetbootin,只需使用dd)。
doublehelix 2015年

7
dd不适用于我,计算机只是没有从笔式驱动器启动。如果要在ntfs格式的 pendrive 上使用UNetbootin ,则必须从命令行启动它:sudo unetbootin installtype=USB targetdrive=/dev/sdb1(sdb1是我的 pendrive的ntfs格式的分区,您的分区可能有所不同)。
erik

7
截至serverfault答案, dd方法经常失败,因为它要求您的主板能够引导USB-CDROM而不只是USB-HDD
erik

19

在非UEFI机器中,我们可以使用GRUB2使USB记忆棒可启动。然后,我们可以在GRUB2中使用“ ntldr”命令从USB启动Windows。

  • 在USB驱动器的目标分区上启用启动标志。使用名为“ GParted”的工具可以轻松完成此操作。它是用于驱动器分区的GUI工具。
  • 如果安装映像是ISO文件,请安装它并访问文件。
  • 将所有文件复制到USB驱动器的根目录。
  • 将GRUB安装到USB驱动器:

    sudo grub-install --boot-directory="/media/user/MyUSBDrive/boot" /dev/sdX
    
  • 通过将以下文件作为“ /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
    }
    

在我的博客上查看完整的答案 从Linux创建可启动的Windows USB


2
无需安装。最简单的步骤。应该在接受答案之前尝试过此方法
Anurag 2015年

grub-install命令需要以超级用户身份运行。仅缺少信息
Anurag

4
这是最佳答案!!!
Danial Behzadi

3
这是一样的回答“任何Ubuntu的版本... MBR分区方案”,但它缺少的--target=i386-pc选项grub-install,并且不使用GRUB2 搜索命令查找“根”从启动。也许并不需要...
David Tonhofer

我认为明智的安装还需要其他东西,我没有i386-pc作为选择。
teknopaul

15

mkusb-nox和mkusb版本12可以创建Windows安装驱动器

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

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

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-nox

sudo apt-get install usb-pack-efi  # only for persistent live drives

看到这些链接,

mkusb-nox 11.1.2:新增功能:为Windows安装USB安装驱动器

mkusb / v7-Ubuntu帮助页面

mkusb-nox可以在Windows 7-10上创建USB引导棒,但是您必须应对命令行界面。

编辑1:新增: mkusb版本12,新版本为相同的方法提供了图形用户界面。看到这些链接,

help.ubuntu.com/community/mkusb#Windows_USB_install_drive

mkusb-nox: 用户对话的屏幕截图

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

编辑2:

  • 现在可以通过标准(且稳定)的PPA获得新的改进版本mkusb 12.2.9

    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-nox
    
    sudo apt-get install usb-pack-efi  # only for persistent live drives
    
    • 它也可以从以UEFI模式运行的已安装系统中以BIOS模式安装。

    • 压缩了一些较小但令人讨厌的错误。

    • 使用我已经能够下载的iso文件,我可以创建这些类型的Windows安装驱动器

      • 在BIOS模式下启动的Windows 7安装程序
      • 在UEFI模式和BIOS模式下启动的Windows 8.1安装程序
      • 在UEFI模式和BIOS模式下启动的Windows 10安装程序

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


2
Mkusb-nox是我找到的最好的解决方案,尤其是因为此页面上引用Winusb的答案已过时,因为该程序不再受支持,并且在16.04中不可用,请保持良好的工作状态Sudodus。
CSCameron

1
杜斯为我工作。
阿尔贝托·索尔维亚·诺维拉

感谢您的工作。来自Ubuntu 16.04的FYI在过程结束时出现错误:Bootloader: grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
Pointy

...但是USB记忆棒似乎可以工作(我将Win 10安装在用于制造USB记忆棒的计算机不同的计算机上。)
Pointy

@Pointy,您是否在已安装的Ubuntu系统中以UEFI模式运行mkusb?在这种情况下,就会出现问题:grub-pc除非grub-efi删除了“竞争”包,否则无法安装程序包。可以通过运行带有mkusb的[持久]实时Ubuntu或基于Ubuntu的系统来解决。这样的系统可以在BIOS和UEFI模式下工作,并且 grub-pc可以与软件包“ grub-efi”一起安装。看到此链接,help.ubuntu.com
community/


7

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

Okey,如果您来自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

如果您来自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

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


4

对于使用woeUsb获得文件限制异常的任何人,请使用terminal命令

sudo woeusb --device /home/uName/Downloads/Win10_1809Oct_English_x64.iso /dev/sdb --target-filesystem NTFS

而不是/home/uName/Downloads/Win10_1809Oct_English_x64.iso使用您的iso文件路径和

代替/dev/sdb使用您的路径,而是使用闪存驱动器。


2

为了完整起见,让我添加有关如何从ThinkPad的UEFI / BIOS更新ISO创建可引导USB磁盘的说明。上面的答案对我都不起作用。(也许其他供应商也有类似的问题。)

  1. 使用以下命令创建一个img文件geteltorito

    sudo apt install genisoimage
    geteltorito <image>.iso -o <image>.img
    
  2. 将img文件写入磁盘。使用此确切的块大小很重要。

    sudo dd if=<image>.img of=/dev/sdX bs=512K && sync
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.