如何将Windows .iso刻录到USB设备上?

我想在Ubuntu上将Windows ISO刻录到USB设备中。我该如何操作?
我知道如何将Ubuntu ISO刻录到USB设备中,但是对于Windows ISO来说,操作方式不同。

2http://askubuntu.com/questions/289559 - gliptak
2你可以在serverfault上使用命令行找到最佳答案。 - erik
3为什么这被标记为重复?链接的问题比这个新近了将近2年。 - jazzpi
1@jazzpi 而且他还以“答案”中有人提到NTFS为借口,将其限定为Windows特定的。 - Lilian A. Moraru
10个回答

UNetbootin应该可以使用:http://unetbootin.sourceforge.net/ 或者你可以尝试逐位复制:
1. 插入USB设备,然后打开磁盘工具(在10.10及更早版本中,系统->管理->磁盘工具)。 2. 在程序左侧的列表中选择USB设备,并查找它的挂载位置:/dev/sd[1个字母][可选1个数字]。例如:/dev/sdc/dev/sdc1。 3. 确保USB设备已卸载(不是安全移除,而是卸载)。如果已挂载,可以执行卸载操作:
sudo umount /dev/sd[1个字母][可选1个数字]
4. 假设.iso文件位于您的主文件夹中,请打开终端并输入以下命令:
sudo dd bs=4M if=[您的.iso文件] of=/dev/sd[那个字母]
示例:
sudo dd bs=4M if=windows7.iso of=/dev/sdc

等待它完成。 (“bs=4M” - 比特是可选的,只是使其更快。)


23另一种我检测驱动器的方法是:我输入"sudo dd if=kubuntu.iso of=/dev/sd",然后按下Tab键几次,在插入USB之前,再次按下Tab键几次,然后检测哪个被添加了,例如出现了sdc和sdc1,然后我在末尾加上c并按下回车。 - Lilian A. Moraru
20@LilianA.Moraru UNetbootin允许您创建可启动的Ubuntu、Fedora和其他Linux发行版的Live USB驱动器,而无需刻录光盘。你曾经成功使用它制作过Windows的USB吗? - Cornelius
USB设备的尺寸应该与ISO的尺寸匹配吗? - Dims
这个dd程序是否也能创建可启动的memtest.iso文件? - EdiD
6据我理解,之后运行sudo sync也是一个好主意,以确保dd已经完成了对U盘的物理写入。 - Ryan Kennedy
@EdiD 不,它可以是任何尺寸,只要满足 UBB 尺寸大于 iso 尺寸的条件。 - Yuri
您可以使用sudo fdisk -l命令检查要卸载的驱动器。 - mwm
7自2015年起,不建议同时使用Debian和Unetbootin。关于dd解决方案的工作原理我仍在努力弄清楚。 - user391552
38如果您的USB驱动器速度较慢,您可以通过向其发送USR1 kill消息来检查dd的当前状态:从另一个终端输入sudo kill -USR1 $(pidof dd)。然后它将在自己的终端中打印其状态。 - Mitja
1@LilianA.Moraru,为什么你选择了bs=4M而不是bs=40M - Pacerier
1对我来说不起作用。它会擦除分区表。 - ptkato
1@Patrick 这是故意的。试着从中启动。 - a06e
@becko我遇到了和Patrick一样的问题。我可以在Dolphin中挂载驱动器,但是gparted无法识别分区表。它也无法启动。我唯一能让它启动的方法是创建一个空分区,挂载ISO并手动复制文件。 - Mike
1@becko 请参考http://onetransistor.blogspot.com/2014/09/make-bootable-windows-usb-from-ubuntu.html - Mike
10完全不起作用 - Pavel
以下步骤效果更好。对我来说,似乎这些步骤完成得太快了。当我按照使用gparted进行NTFS格式化的步骤,然后执行dd命令时,一切都正常。 - Nicholas DiPiazza
8你可以在dd命令中添加status=progress选项,以实时查看进度输出。此外,你可以通过运行lsblk命令来查看所有驱动器的列表,并使用它来找到你的USB闪存驱动器的标识符。 - Pastafarianist
它没有输出任何消息,已经过了大约10分钟了。我应该担心吗?它真的在运行吗? - Abhishta Gatya
http://unetbootin.github.io/linux_download.html - Ahmad Ismail
3对我来说没有起作用 - cjohansson
没用 - "dd: failed to open '[Win10.iso]': No such file or directory" - 但是文件明明在那里(我把它放在我的“主目录”中,以便尽可能地与说明相匹配)... 我要给这个评分打个低分,因为显然它不起作用,而且我不是唯一一个提出这种说法的人。 - Gregory Opera
我最后只是在我女儿的苹果iMac上使用了一个程序,根据记忆... 一些Etcher推荐的程序,在Linux下使用Etcher烧录Windows 10映像时。不过,我无法测试您的建议,因为我只需要Windows大约五分钟,而我们的电脑都没有使用Windows(也就是说,我不再拥有副本)。 - Gregory Opera
如果计算机的BIOS支持UDF文件系统引导,那么dd解决方案就可以使用。Windows 10 ISO镜像自带这个文件系统。如果BIOS不支持从UDF引导,仅仅将ISO文件原样复制到USB闪存驱动器是不够的。请参考https://superuser.com/a/1063221/579659。 - digital_infinity

  1. 插入USB设备,然后运行gparted。

  2. 从GParted窗口右上角的列表中选择USB设备,并检测它被挂载在哪个位置:/dev/sd[1个字母](我的是/dev/sdc)。

  3. 确保USB设备已卸载(右键点击并选择卸载)。
  4. sudo dd if=[你的.iso文件路径] of=/dev/sd[那个1个字母]

    在我的情况下:sudo dd if=/home/downloads/windows7.iso of=/dev/sdc

你必须以su或sudo身份运行dd。值得一提的是,gparted也需要su权限,但通常会使用gksudo来提示输入密码。

这意味着你可以将gparted锁定到持久化的liveboot USB上,用于现场诊断。


2+1 稍微修改这个让我也能启动我的自制操作系统。 - geometrian
2没对我起作用,仅使用 /dev/sdc[字母],还需要指定分区,例如 /dev/sdb1 以便使用 dd 进行复制。然而,USB 启动不起作用。 - n3rd
1@HertzelGuinness,为什么你喜欢Ubuntu而不是其他众多的发行版呢? - Pacerier
@Pacerier 是指 Linux 系统,不用在意发行版。(个人而言,我也使用其他的发行版……) - Hertzel Guinness
36为什么你要将它格式化为NTFS?当你使用dd命令写入块设备时,它会清除掉你之前的任何格式化设置... - TJ Ellis
我的设备是/dev/sdd/,但只有当我输入/dev/sdd1时才能正常工作。你知道为什么会发生这种情况吗?它还会给我一个错误提示,说设备空间不足,但实际上只写入了10MB。 - ptkato
@Patrick 在运行 dd 命令之前,你可能需要卸载 /dev/sdd - 也就是从文件系统中卸载该设备。 - alex.pilon
7在Ubuntu 14.04上进行直接的dd复制(使用Win10 iso)对我来说有点意外,因为它在闪存上创建了一个UDF文件系统(我原本期望它是iso文件系统)。然而,它并没有在我的Lenovo P50上启动(不过我必须承认我可能在BIOS中设置了太多限制的引导选项:))最终,根据这篇文章使用winusb解决了问题。 - tlwhitec
@tlwhitec 非常感谢!我整天都试了很多其他方法,只有你的方法有效! - paibamboo
@tlwhitec 非常感谢!我整天都尝试了很多其他方法,只有你的方法有效! - paibamboo
很高兴知道 @paibamboo,你也可以通过给我的评论点赞来感谢我 ;) - tlwhitec
没有为我工作 - cjohansson

如果您使用UEFI(而不是BIOS或带有BIOS兼容模式的UEFI(也称为CSM))启动,您只需要GParted和一个文件管理器。
ISO必须配置为支持UEFI启动才能正常工作。我已成功地在Windows 8.1和Ubuntu 14.04上进行了此操作,但对于其他操作系统我不能保证。(编辑:我刚刚尝试了Windows 10,但没有成功。不知道为什么,但WinUSB可以使用,所以我没有进一步调查。)
以下是我用于创建UEFI固件可引导的USB驱动器的步骤:
  1. 在您的USB驱动器上创建一个GPT分区表。在GParted中,选择“设备”,然后选择“创建分区表...”。在下拉菜单中选择gpt。
  2. 使用GParted将USB驱动器上的分区格式化为FAT32。所有符合UEFI规范的固件都必须支持FAT12、FAT16和FAT32,所以这些任何一种都可以,但是NTFS不会起作用
  3. 像处理其他外部存储设备一样挂载USB驱动器,以便您可以访问所创建的分区上的文件系统。
  4. 挂载您希望添加到USB驱动器的ISO文件,以便您可以访问其中的文件。
  5. 现在,当您在文件管理器(如Nautilus或其他)中同时访问ISO和USB驱动器作为文件系统时,只需将ISO中的所有文件复制并粘贴到USB驱动器中
  6. 向您创建并添加文件的分区添加“boot”标志。在GParted中,右键单击该分区,选择“管理标志”,然后选中“boot”选项。
(在测试过程中,我在设置引导标志后无法挂载USB驱动器。我不知道为什么,但是GParted仍然可以看到它,并且最终的结果仍然是一个可引导的USB驱动器,所以我想这并不重要。)
  1. 重新启动计算机,选择从USB驱动器启动。

再次强调:要使此方法有效,您的计算机固件必须符合UEFI规范,并且ISO文件必须准备好用于UEFI引导。

如果在ISO文件中找到EFI目录,通常是一个很好的指示。

要查看当前是否正在使用UEFI引导,请在终端中运行sudo efibootmgr -v命令。如果列出了多个引导选项,则说明一切正常。如果您正在使用BIOS兼容模式,则会显示以下内容:

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

有关UEFI的更多信息,请阅读这篇关于该主题的优秀文章: https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/

此外,我认为Ubuntu不能在启用安全启动的情况下工作,因此您必须禁用它才能使用UEFI启动Ubuntu。


1USB也应该有GPT分区表,对吧? - VRR
2噢,是的,你可能应该这么做。显然我的固件也支持msdos分区表,所以我没有遇到那个问题。但这可能不适用于每个人。所有符合UEFI规范的固件必须支持GPT分区表,所以如果你使用的是GPT,USB驱动器应该可以在更多的固件上使用。我会更新我的回答。 - Lars Nyström
2如果在Ubuntu中使用GPT并且设置了引导标志,似乎无法挂载驱动器。当它仍然使用msdos分区表时,它是可以工作的,这很奇怪。无论如何,尽管我无法挂载它,但我的固件检测到它作为可引导设备,并且正常运行。 - Lars Nyström
2嗯,尝试只设置GPT FAT32而不更改标志。这样应该能够挂载并启动。 - VRR
1我没有时间进行更多的测试,但我的答案适用于我,并且应该适用于所有使用UEFI引导的人(现在大多数人都应该是),所以我现在就把这里留下了。如果你认为有什么错误的地方,请随意编辑我的回答。 - Lars Nyström
我不相信我有权限以那种方式编辑你的问题。如果你有兴趣扩展答案,可以随意使用我的回复。 - VRR
这让我能够从U盘启动Windows安装程序,但实际上我无法安装Windows,因为它显示缺少驱动程序。如果我使用媒体创建工具创建一个相同版本的USB启动盘,那么一切都能正常运行。所以至少对于Windows 10专业版64位来说,这种方法肯定有问题。 - Florian
对我来说没有起作用 - cjohansson
上述的技巧没有起作用,但我找到了一个有效的方法。在复制过程中,使用上述步骤时出现了一个错误:“install.wim文件太大”(我的源ISO是Windows 10更新2004版)。有一个神奇的Linux工具叫做“wimsplit”,可以解决文件大小的问题。这里有一个完整的教程:https://gist.github.com/dragon788/26921410d8de054366188c5c5435ae01 - Vahid Pazirandeh

如果你正在使用Ubuntu将Windows ISO烧录到USB,你可以使用WinUSB。Unetbootin无法处理Windows ISO文件,它只支持Linux发行版。
然而,在当前的Ubuntu版本上安装WinUSB并不是一件容易的事情。更重要的是,WinUSB有较旧的GRUB依赖项,可能会干扰你的引导程序设置,因此你可能最终得到一个无法启动的Ubuntu系统。如果你只是想制作一个用于摆脱Ubuntu的Windows USB,那么这应该不是一个大问题。但这也没有百分之百的保证。
目前有两种操作系统引导方法:EFI加载和MBR加载。哪种方法适合你取决于PC/主板的能力。关于如何为上述每种引导方法创建可启动的USB的方法,请参考《如何使用Ubuntu创建Windows可启动的USB闪存驱动器?》。
WinUSB只能制作MBR可引导的USB驱动器。

4您的安装程序出现故障。 - empedokles
2这个已经不起作用了 :( *至少对我来说不起作用 - moldovean

你可以使用WinUSB将Windows ISO烧录到U盘上。
更多详细信息和Ubuntu软件包可以在这里找到。
注意:烧录Windows 7 ISO需要至少4GB的U盘。

2WinUSB已经过时并且存在一些问题,请查看WoeUSB的继任者/分支。 - Frank N
那对我来说在Windows 7上确实有效。dd工具似乎无法创建有效的引导系统。WoeUSB通过一些魔法使得U盘可启动。(我没有尝试过旧版WinUSB工具,只用了2018年仍然活跃的新版本。) - Alexis Wilke

有一个叫做Multisystem的工具可以将USB驱动器制作成可启动的,并且能够从中启动各种操作系统-其中包括Windows XP、Vista和Seven是支持的(该程序的网页只有法语;程序本身是本地化的)。我能够使用这个工具从USB闪存盘启动WinXP安装ISO。

请注意,Windows光盘是一个安装光盘,而不是一个可用的“实时”发行版。


很简单... 我们将一步一步地进行:使用Power ISO:
1. 下载并安装Power ISO。 2. 打开Power ISO。 3. 点击工具,然后选择创建可启动的USB驱动器。 4. 可能会要求以管理员身份运行,然后请以管理员身份运行。 5. 现在浏览源映像文件。 6. 选择目标USB驱动器,然后点击开始。 7. 完成。您的可启动USB已准备好用于从可启动USB安装操作系统。
注意:U盘必须为4GB或更大。

1Power ISO也可以在Ubuntu上使用吗?我不知道这一点! - ankush981
1PowerISO for Linux没有图形界面版本,只有命令行实用程序。 - ptkato
1它确实有一个图形用户界面(现在),但在工具菜单中似乎没有将文件刻录到USB的选项。 - user72056

从Windows系统中,尝试使用unetbootin软件;而在Linux发行版中,可以在终端中使用以下命令(这对我有效,但是请注意会丢失U盘中的内容,所以请先备份):
sudo dd if=<ISO_FILE> of=/dev/sd<FLASH_DRIVE_ID>

2<FLASH_DRIVE_ID>是一个小写字母,例如b、c、d等,但我们怎么知道是哪一个? - user68186
1这是用来烧录Windows ISO的。由于某些原因,当我在启动时尝试进行格式化时,屏幕变黑,无法工作。 - user3091970

我知道这个问题有点过时,但为了完整起见,我在这里附上一个链接,这是一个现代标准的Ubuntu图形界面应用程序,用于将ISO文件刻录到闪存驱动器上:Disk Creator

6仅适用于Linux ISO! - Cornelius
1看起来这个该死的问题永远不过时。为什么Debian没有一个标准的软件包来写入Windows ISO镜像呢?你永远不知道在尝试不同的可启动USB写入工具时会安装多少病毒。我已经写了这个代码,它非常简单明了。为什么没有人提供一个标准的写入工具呢? - Brian Cannard

Ubuntu在Natty版本中可以通过Nautilus挂载.iso文件。
你试过将.iso文件的内容复制到所需的USB驱动器上吗?
然后,你应该能够告诉你的电脑从USB启动而没有任何问题。
如果这种方法行不通,你可以使用UNetBootin来将.iso文件复制/刻录到光盘上。 这篇博客文章描述了如何操作。

10仅仅复制文件是绝对行不通的;还需要引导加载程序代码。给出错误信息评为-1。(Unetbootin应该可以使用许多可启动的光盘,因为它不仅能复制文件,还可以制作可启动的USB驱动器;但对于Windows可启动光盘就不确定了。) - Piskvor left the building
3Piskvor的评论仅适用于使用BIOS引导的情况。如果您正在使用UEFI引导,只要驱动器是带有引导标志的FAT32分区,并且ISO文件包含了UEFI引导所需的文件,复制文件可能会起作用。 - Lars Nyström
我一直对我多年前给出的这个答案感到非常困惑,因为我确信它是正确的。然而,我意识到为什么它不应该是正确的,你的答案也很有道理。在那些日子里,我经常通过USB进行安装(在UEFI进入我的生活之前100%),我确信它是有效的。谢谢你帮我解决了这个疑问!+1 - nikomax