如何将Windows 10 ISO刻录到USB?

我用了dd方法,将iso写入了USB驱动器,但我不确定这是否就是我需要做的全部,因为这是Windows系统,可能没有GRUB,所以我不确定,所以我向专家请教。
winusb在Windows 10上不起作用,所以这与之前的问题不同。

你用了哪个dd方法?还有,你从哪里得到的ISO文件? - Wilf
@wilf 我是从官方Windows 10网站获取的(http://windows.microsoft.com/zh-cn/windows/preview-iso)。 - SakuraKaminari
@Wilf 我使用了 sudo dd if=/home/sakurakami/Downloads/Windows.iso of=/dev/sdf bs=4M - SakuraKaminari
@Wilf 操作成功了,我甚至用 openssl sha1 Windows.iso 验证了 SHA-1 哈希值。 - SakuraKaminari
@karel,WinUSB没有起作用。 - SakuraKaminari
@Wilf 我还是不知道怎么做。我得到了很多建议,但没有一个看起来行得通。 - SakuraKaminari
抱歉,快速阅读“操作成功”。你是如何确认它不起作用的?你尝试过虚拟机、重新启动并从USB引导吗?我认为dd应该能正常工作,因为它只是复制ISO的内容。USB存储器的格式(ext4、fat32等)和品牌是什么? - Wilf
@Wilf "快速读取'手术成功'"是什么意思?我试着从中启动,哈哈,但没有成功。我以为使用dd命令可以随意选择格式,但它是ntfs格式,而且是金士顿数据旅行者3.0。我以前多次将其用作可启动设备,哈哈,只是无法让Windows正常工作,哈哈。 - SakuraKaminari
@wilf 我试过使用虚拟机,但是没有成功,不过看起来我有关于这个的建议,等一下哈哈 - SakuraKaminari
你是使用UEFI还是(传统的)BIOS? - aastefanov
@alb3rtano0012 我正在使用一台预装有Windows 7的电脑,所以是BIOS。 - SakuraKaminari
说实话,WinUSB(1.0.11)在我这里还算有效。不过需要等一段时间让它完成任务。 - kcpr
可能是重复的问题,参考链接:如何使用Ubuntu创建Windows可启动的USB闪存驱动器? - wjandrea
请参阅我刚刚标记的重复内容上的这个答案。我已经确认它适用于Windows 10,MBR和GPT模式。 - wjandrea
关于启动USB的快速评论 - 可能不适用。在我的电脑上,当我选择“重新启动”并插入一个USB时,如果是EFI模式,我经常看不到它,实际上必须关闭电脑才能看到并从USB启动。 - Charles Green
8个回答

我尝试了这个帖子中的所有方法,但都没有成功(而且说真的,问题是关于如何将文件写入一个USB键,为什么有人会建议将ISO复制到另一个分区呢?)。
对我来说有效的解决方案是(假设你的USB驱动器是/dev/sdc):
  • 运行gparted
  • sdc上创建一个新的分区表,类型为msdos
  • 创建一个NTFS分区,在其上设置引导标志
  • 提取iso文件(可以使用7z x windows10.iso命令)
  • 将内容复制到已挂载的NTFS分区(肯定是/dev/sdc1)中,可以通过cprsync、GUI等方式进行

  • 最后,从这篇文章中获取的关键步骤:https://superuser.com/a/817656/248812是:

    sudo ms-sys -7 /dev/sdc

    ms-sys可在ppa中获得: https://launchpad.net/~lenski/+archive/ubuntu/ms-sys

没有ms-sys,插入USB键时会出现闪烁的光标。

使用它,Windows徽标会显示出来。

8这对我在Windows 10上有效。关于ms-sys,我直接从https://launchpad.net/~lenski/+archive/ubuntu/ms-sys/+files/ms-sys_2.2.0-1ubuntu1_amd64.deb下载了deb文件,并使用`dpkg -i <deb_file>`进行安装。 - Vincenzo Pii
这个方法起作用了,电脑启动了,尽管它会出现蓝屏死机的情况... - Lilian A. Moraru
3对于 Fedora 用户,ms-sys 软件包可以在这里找到:https://copr.fedorainfracloud.org/coprs/scorpionit/ms-sys/ - Maxim Egorushkin
5对于Arch用户来说,ms-sys可以在AUR上找到。 - alecdwm
如果您的分区是MBR分区,这个方法适用。如果您的分区是GPT分区方案,请尝试使用以下链接中的方法:https://askubuntu.com/a/487970/80788 - HVNSweeting
复制内容 - 什么内容?是一个ISO文件吗? - Chris Stryczynski
@ChrisStryczynski 是的,请复制ISO内部的内容。 - Jean-Michaël Celerier
ms-sys在安全方面给出了一个适当的更新错误,无法正常工作。Ubuntu 18。 - don bright
@donbright 我从GitHub的源代码安装了它,通过随机的网络搜索...我不得不在file.c文件中移动一个char[]数组 - 它只为FreeBSD定义,但是编译成功了。 - Prof. Falken
我正在使用gparted 1.0.0版本。根据这个答案,我没有看到如何/在哪里设置引导标志的方法。 - a coder
上述方法对我没有起作用,但是这个方法有效:https://help.ubuntu.com/community/Installation/FromUSBStick/post - a coder
@a 程序员,在 Gparted 中通过在屏幕右上角选择打开你的设备,右键单击屏幕中央列出的分区之一,选择管理标志,勾选“引导”选项,然后关闭。 - Keychain1
我发现使用ms-sys -n /dev/sdX1为每个分区单独编写一个EBR是必要的。一旦我完成了这个步骤,USB就可以正常工作了。 - Brian Borchers

你不需要使用USB、DVD或其他外部媒介来安装Windows 10安装盘(ISO),只需从Ubuntu的安装开始即可。您可以将映像或ISO文件提取到硬盘的一个分区中,最好不要使用用于新Windows安装的分区,然后使用该分区。
对于以下步骤,应存在可工作的GRUB配置:
确保您有一个可引导和格式化的NTFS分区。在下面,该分区将由标识,其中hd0是包含MSDOS或MBR分区表布局的硬盘。
挂载映像将使提取其内容更加容易。如果Disk Image Mounter拒绝挂载iso文件,您可以始终使用以下命令来挂载任何iso文件:
sudo mount -o loop [Image_Path] [Mount_Point]
复制新循环设备的内容到NTFS分区。
现在添加一个用于Windows 10的GRUB条目。这将使引导加载程序GRUB能够找到包含在分区中的安装磁盘。以root用户身份在文本编辑器中打开/boot/grub/grub.cfg,并添加以下行:
menuentry 'Windows 10 Install Disk' { set root=(hd0,5) insmod part_msdos insmod ntfs insmod ntldr drivemap -s (hd0) ${root} ntldr /bootmgr }
根据需要更改root。
保存并重新启动计算机。从更新后的GRUB菜单中选择正确的项目进行引导。
点击这个Youtube教程 https://youtu.be/1Y4JXv9r5Ug

如果您将其安装到与您正在引导的分区或驱动器相同的位置,它将无法正常工作。 - Conor Patrick
5这怎么可能是正确的答案?它甚至没有把数据存入USB。 - jbo5112
@jbo5112 答案提到将文件提取到USB是不必要的,只要在硬盘上的分区中直接提取,并添加正确的代码到grub.cfg即可。 - x13
7@ThisNameBetterBeAvailable 请问将Windows 10 ISO烧录到USB时,如何不需要提取?原始提问者可能想在多台电脑上使用此方法。 - jbo5112
1@jbo5112 这个问题中没有提到这一点,所以假设他的目标并试图帮助他实现这个目标是发生的事情。 - x13
5@ThisNameBetterBeAvailable 这是问题的标题。 - jbo5112
@Sumna:我按照指示进行操作,一切都很顺利,直到安装的"步骤1 - 选择要安装的驱动程序"时,弹出了错误消息:"计算机所需的媒体驱动程序丢失"。显然,它拒绝使用硬盘上的数据,而是希望使用USB或DVD。 - tokland
这是一个我没有考虑过的解决方案,实际上可以快捷地进行Windows安装,这正是我们所需要的,是一个可行的答案。每次需要时,我还可以重复使用驱动器的最后一个分区。 - sgohl

你可以将所有ISO内容复制到闪存驱动器上,并使其可启动。
所以,首先,从软件中心或终端安装GParted。
sudo apt-get install gparted

然后,从Dash或终端打开它:
gksudo gparted

在那之后,从右上角的菜单中选择闪存驱动器。 应该有一个分区。如果您没有任何数据需要备份,请将其重新格式化为ntfsbootmgr在fat32上无法正常工作),然后点击Apply(位于标题菜单中的勾号)。右键单击分区,选择Manage flags并勾选boot
然后,您可以通过文件管理器(GNOME和Unity默认使用nautilus)挂载它。
挂载ISO文件:
sudo mount -o loop [path to iso] [mountpoint]

然后,您可以通过文件管理器将ISO挂载点的所有内容复制到闪存驱动器上。
重新启动计算机,并将USB闪存驱动器设置为首先启动。

是的,我尝试启动它,但似乎没有成功。你能给我你使用的命令列表吗? - SakuraKaminari
我刚刚从文件管理器中复制了文件,并在GParted中启用了引导标志。 - aastefanov
@SakuraKaminari - 你能详细说明它为什么似乎没有起作用吗? - Wilf
@wilf 它无法启动。 - SakuraKaminari
@alb3rtano0012 怎么挂载它?它不想挂载。它目前在 /dev/sdf 上。 - SakuraKaminari
我会编辑我的回答。 - aastefanov
这个解决方案不起作用。我的电脑启动时只有一个闪烁的光标...我给它点了踩,但是我的声望太低了,对此毫无影响。 - Layton Everson
也许还需要添加一个新的MBR?我可以想象一些USB闪存有它,而一些没有(编辑分区表不会清除MBR)。要添加MBR,请运行sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdc(将sdc替换为您的USB闪存设备),如下面Kjeld的回答所建议的。 - Matthijs Kooijman

我使用woeusb这个非常简单的GUI应用程序完成了这个。https://github.com/slacka/WoeUSB

它是WinUSB的一个分支。

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

非常完美地工作,谢谢!:) - Geeocode
这对我来说是最简单的解决方案。对于Windows 10,你需要选择NTFS作为文件系统。 - rgov

ms-dos软件包相当古老且未维护。它无法在Ubuntu 16-04上加载。相反,请使用syslinux软件包,该软件包很可能已经安装: http://ubuntuhandbook.org/index.php/2013/08/repair-windows-mbr-from-ubuntu/

此外,将文件复制到NTFS分区速度较慢。直接将ISO文件提取到sdc1。

  • 运行gparted
  • 在sdc上创建一个新的分区表,类型为msdos
  • 创建一个NTFS分区,并在其上设置引导标志
  • 复制ISO文件

    sudo dd of=/dev/sdc1 if=Win10_1703_English_x64.iso bs=4M

  • 创建MBR

    sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdc


工作得非常完美,应该被接受为答案。谢谢。 - anon
我刚试过这个(使用从微软下载的Win10_1709_Dutch_x64.iso),但对我没用。使用所得的USB启动失败,显示“缺少操作系统”(我认为是MBR打印的),在实际系统上启动时,BIOS显示类似信息(可能隐藏了MBR消息)。我想知道这应该如何工作?一个.iso文件不包含NTFS吗? - Matthijs Kooijman
应该是一个被接受的答案 - 这是最简单的方法,不需要任何外部依赖。但是,对于我来说,直接使用dd命令复制.iso文件并没有起作用 - 它仍然创建了ufs文件系统而不是现有的NTFS文件系统,但是简单的cp命令后跟dd命令复制MBR却非常顺利。 - avtomaton

我尝试了使用ms-sys,它运行了,但是我无法让USB启动。然而,这个方法有效:
sudo apt install woes
sudo woeusb --target-filesystem NTFS --device Win10.iso /dev/sdX

其中/dev/sdX必须是您的USB键。


如果你不确定,那你怎么能说dd方法有效呢?而且,这样做是不对的。你必须使用Rufus来使USB驱动器可引导;虽然我不反对使用dd方法,但考虑到我们讨论的是Windows系统,我认为最好还是使用Rufus来处理这个问题。
如果你已经安装了Windows系统,那就启动它并按照以下步骤操作,否则请使用VirtualBox。 操作步骤: 根据:http://www.cnet.com/how-to/how-to-install-windows-10-technical-preview-from-a-flash-drive/ 你需要至少4GB的闪存驱动器(64位系统需要8GB)。
--> 下载并运行Rufus,然后插入闪存驱动器,确保它不包含任何重要数据。(它将被清空。)Rufus应该会自动检测到驱动器并在设备字段中列出它。(如果没有,手动选择驱动器。)

--> 注意勾选标有“使用可启动磁盘创建”的复选框。点击最右边的驱动器图标,然后导航到您保存Windows 10 ISO文件的位置。选择它,然后点击开始。(Rufus中的所有其他默认设置都应该是可以的。)

--> 这可能需要一些时间,可能长达20-30分钟。如果出现一个闪存驱动器的资源管理器窗口,请不要惊慌(或困惑),只需将其保持不变,直到Rufus报告“完成”。然后您可以关闭程序和驱动器窗口,并取出闪存驱动器。

--> 现在是时候处理旧电脑了。将闪存驱动器插入USB端口,然后启动系统。很可能,默认情况下它不会配置为从外部驱动器启动,所以您可能需要在POST期间进入启动菜单或BIOS。最终,您需要强制机器从闪存驱动器启动。完成后重新启动,然后按照Windows安装说明进行操作。

祝一切顺利!


但是我没有Windows系统。我想要Windows 10的原因是因为我的Windows 7无法正常工作,所以我无法使用Rufus进行刻录。我这样做可以吗? - SakuraKaminari
然后,在VirtualBox中安装Windows。或者,按照http://askubuntu.com/questions/289559/how-can-i-create-a-windows-bootable-usb-stick-with-ubuntu中建议的方法下载WinUSB。该链接展示了如何制作适用于Windows 8的启动USB驱动器,但我相信它也适用于Windows 10。 - Surya Teja Karra
好像WinUSB不太可靠,我也不知道,我会试一下的。 - SakuraKaminari
那么,现在最好使用VirtualBox。如果你想使用Windows的话,最好是虚拟化一个Windows系统(暂时这样)。 - Surya Teja Karra
我从WinUSB获取了这个: 安装失败! 退出码:256 日志: 正在格式化设备... 错误:/dev/sdf:无法识别的磁盘标签 - SakuraKaminari
我不知道如何虚拟运行Windows :/ - SakuraKaminari
非常简单。打开终端(Ctrl+Alt+T),然后输入:sudo apt-get update && sudo apt-get install virtualbox-qt -y。安装成功后,不要使用sudo命令,直接输入'virtualbox'。现在,在virtualbox中创建一个虚拟机,并将Windows安装光盘放入笔记本电脑的DVD驱动器中(或者使用Windows 10预览版ISO文件也可以)。按照屏幕上的指示创建虚拟机。首次运行时,它会提示选择CD/DVD源。如果你有光盘,请选择它,否则浏览Windows 10 ISO文件。 - Surya Teja Karra
我在第一次启动时从虚拟机收到的信息是: 无法为虚拟机Windows 10打开会话。 AMD-V在BIOS中被禁用(或由主机操作系统禁用)。(VERR_SVM_DISABLED)。 - SakuraKaminari
它说的没错。重新启动电脑,进入BIOS设置,寻找以“高级”开头的任何选项,除非涉及电源管理或类似情境。你应该寻找的词是"虚拟化",任何与此相关的选项都可以!只要小心不要更改其他设置。 - Surya Teja Karra
如果其他方法都不起作用的话,我会尝试一下,但是我宁愿不去碰BIOS。 - SakuraKaminari
@Surya:你不能用那种方式安装Windows。一旦你安装它,Windows就会与硬件配对。没有数字版权管理的操作系统也可以正常工作。我已经两次从虚拟机中转移了Ubuntu的安装。 - Erkin Alp Güney
@erkin你不明白,我让楼主安装Windows(如果他没有的话),这样他就可以运行rufus了。 - Surya Teja Karra
从我的个人经验来看,我知道Rufus是Windows上最好的工具。但这并不是最佳答案,因为最好只使用Ubuntu来完成工作。Ubuntu可能在旧硬件上运行,这使得使用VirtualBox完全无关紧要。 - tno2007

找到了一个更简单的解决方案。使用循环等方式挂载ISO,并使用-t udf参数。将所有内容复制到一个空闲的NTFS分区中。在gparted中将此分区标记为引导。运行sudo update-grub并重新启动。

请注意,您只能从运行了"update-grub"命令的计算机上引导此USB驱动器。 - ozma
2@ozma 这个回答与USB驱动器无关。 - forresthopkinsa
@forresthopkinsa 你说得对,我的评论是为了防止这样的错误发生 - ozma
这种方法一直有效,直到Windows 10安装程序抱怨从ntfs分区引导并中止。 - Layton Everson