问题描述
我想创建一个Windows 8可启动USB存储棒,但我没有一台Windows机器与我一起这样做。
那么,如何使用Ubuntu来做到这一点?
最佳解决方案
通过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
Ubuntu EFI警告:
在EFI加载的Ubuntu上安装WinUSB将卸载grub-efi软件包以安装grub-pc软件包。如果您在重新启动之前未手动重新安装grub-efi软件包,它将使您的系统无法启动。
做手册re-install做:
sudo update-grub
sudo grub-install /dev/sda
sudo update-grub
sudo reboot
次佳解决方案
任何Ubuntu版本
甚至其他Linux发行版,只要安装了GParted和GRUB。
在Ubuntu上安装GParted和GRUB:
sudo apt-get install gparted grub-pc-bin p7zip-full ntfs-3g
对于BIOS:MBR分区方案
-
将分区表重写为msdos,并使用GParted将USB驱动器格式化为NTFS(然后将”Manage flags”添加到
boot
标志中)。 -
在GParted中,右键单击USB分区并选择信息。因为您需要将UUID复制到某处。
-
使用您最喜欢的文件管理器将所有文件从装载的Windows ISO或DVD复制到USB驱动器。
-
转到USB驱动器,如果名为
boot
的文件夹具有大写字符,请将其重命名为全部小写字母。 -
在USB上安装GRUB:
sudo grub-install --target=i386-pc --boot-directory="/<USB_mount_folder>/boot" /dev/sdX
-
在名称为
grub.cfg
的USB驱动器文件夹boot/grub/
中创建一个GRUB配置文件。把它写入文件中:
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
-
卸载USB驱动器并重新启动您的PC。选择USB作为BIOS中的第一个引导设备并从中启动。
对于UEFI:GPT分区方案*
*较旧的Windows版本/版本可能不被正确支持或根本不被支持。我建议阅读Microsoft UEFI Firmware页面。
-
使用GParted将USB驱动器的分区表格改写为GPT。
-
创建一个新的主分区并将其格式化为FAT32。
-
将所有Windows文件(从挂载的ISO或DVD)复制到USB驱动器。
-
查看
efi/boot/
文件夹中的USB。如果有文件bootx64.efi
(bootia32.efi
),那么你就完成了。 USB是可引导的。跳到第7步。 -
否则,使用存档管理器打开
sources/install.wim
(您必须安装7z
)并浏览至./1/Windows/Boot/EFI/
。从这里提取bootmgfw.efi
,将其重命名为bootx64.efi
(或支持32位OS [?]的bootia32.efi
),并将其放在efi/boot/
文件夹的USB中。 -
如果您制作的是Windows 7 USB,请将
boot
文件夹从efi/microsoft/
复制到efi
文件夹。 -
不要忘记卸下(安全删除)USB驱动器。从BIOS中选择适当的EFI加载程序。
-
/dev/sdX
是设备(例如/dev/sdb
,而不是/dev/sdb1
)。
来源:我的博客文章可以在Make a bootable Windows USB from Linux找到。
说明
当正确使用兼容的目标操作系统时,这两种方法都应该为您提供可引导的USB驱动器。但是,这并不能保证成功安装目标操作系统。
第三种解决方案
Ubuntu 14.04-17.10
WinUSB是创建用于安装Windows的可引导USB闪存驱动器的工具。 4GB或更大容量的USB闪存驱动器具有足够的容量,可以为Windows 10以上的版本制作安装介质。Windows 7及更高版本的映像(仅限于作为目标设备的FAT文件系统)支持本机UEFI引导。 WoeUSB是WinUSB项目的更新分支。
在Ubuntu 14.04 /16.04 /17.04 /17.10中安装WoeUSB(WinUSB项目的更新分支):
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install woeusb
在Ubuntu 14.04 /16.04 /16.10 /17.04中安装WinUSB:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install winusb
这将安装WinUSB图形界面和WinUSB命令行工具。 WinUSB GUI比WinUSB命令行工具更容易使用。单击它所说的位置左侧的单选按钮从磁盘映像(ISO),浏览到Windows .iso文件的位置,在目标设备下选择USB闪存驱动器,打开磁盘应用程序并检查磁盘中的设备名称匹配WinUSB中的目标设备(它应该是/dev /sdX,其中X是字母表中的字母),然后单击安装按钮进行安装,以便在USB闪存驱动器上创建可启动的Windows安装介质。
在EFI-loaded上安装WinUSB Ubuntu将卸载grub-efi软件包以安装grub-pc软件包,因此在重启之前运行以下命令修复grub:
sudo update-grub
sudo grub-install /dev/sdX # replace X with the letter of the partition where grub is located
sudo update-grub
sudo reboot
第四种方案
The current UNetbootin boot chain is not compatible with UEFI and computers that come with a pre-installed copy Windows 8
您可以使用dd
,同时要小心你正在做的事情:
sudo dd if=/path/to/iso/windows.iso of=/dev/sdX bs=4M; sync
-
将
sdX
替换为您要使用的驱动器(在我的情况下为sdg
): -
这要求您的主板能够从CDROM-USB启动。
如果你还想使用UNetbootin,那么你需要2(3)件事情:
-
Unetbootin
-
的gparted
-
上网安装所有上述内容,Windows ISO映像和超过4GB的USB memory 棒。
所以,首先备份你的USB棒的所有内容。一旦完成,请安装gparted和unetbootin:
sudo apt-get install gparted unetbootin
现在在Dash中查找gparted或在终端中键入gparted
。从右侧下拉列表中选择您的USB memory 棒。在我的情况下,它是/dev/sdg
,你可能会有所不同。删除所有分区并使用Gparted创建一个大的FAT32分区。
一旦完成,拔下并插入你的USB memory 棒,以便它被挂载(你也可以从同一个GParted中挂载它),现在再次执行Unetbootin,你可以在短划线中查看或在终端中输入。选择你想使用ISO,寻找你的ISO路径。
选中复选框查看所有设备,在这里您必须选择与您在Gparted中选择的设备完全相同的设备,否则您的数据可能会丢失。选择继续。等一下,然后完成。重新启动电脑并选择从USB启动。
第五种方案
在Non-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 }
在我的博客Creating a bootable windows USB from Linux上查看完整答案
第六种方案
答案已经过时,WinUSB不再工作了。但是有一个名为WoeUSB的工作分支。
Github:https://github.com/slacka/WoeUSB
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install woeusb
安装完成后,使用该命令编写windows ISO:
sudo woeusb --device /path/to/your.iso /dev/sdX
它不会卸载grub-efi了。
第七种方案
从接受的答案winusb是我发现的唯一简单的方法。
然而,没有winusb包装的俏皮。然而,您可以通过在此处下载并使用软件安装程序打开它来安装raring软件包。它与有趣的工作。
http://ppa.launchpad.net/colingille/freshlight/ubuntu/pool/main/w/winusb/
第八种方案
mkusb-nox和mkusb版本12可以创建Windows安装驱动器
看起来很难找到一个可以在Windows上创建启动驱动器(U盘,存储卡…)的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: added feature: make USB install drive for Windows
mkusb-nox可以创建一个Windows 7 – 10的USB启动棒,但是您必须应对命令行界面。
编辑1:新增功能:mkusb版本12,新版本为同一方法提供图形用户界面。看到这些链接,
help.ubuntu.com/community/mkusb#Windows_USB_install_drive
mkusb-nox:
dus与guidus别名mkusb版本12:
编辑2:
-
一个新的改进版本mkusb 12.2.9现在可以通过标准(和稳定的)PPA获得。
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-noxsudo 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安装程序
-
-
一个简单的“自己动手”方法
-
以下链接描述了一个相当简单的“自己动手”方法,它具有与mkusb一样的创建Windows安装驱动器的相同功能。
-
如果你不喜欢PPA,或者如果你想’自己动手做’并理解细节,这种方法适合你。
第九种方案
你可以使用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附带一个简单的图形用户界面,并提供最少的选项,以下是如何使用WinUSB从Ubuntu制作可启动的Windows USB。您可以使用任何Windows ISO可能用于XP,Windows 7,Windows 8,Windows 8.1或任何其他。
-
插入闪存驱动器和放大器获取您的Windows ISO(我使用Windows 10 Technical Preview)或插入Windows CD /DVD
-
启动WinUSB,没有其他任何事情需要解释。
-
选择您的来源,ISO或CD驱动器
-
选择您的目标(USB)设备。如果没有出现,请点击刷新并确保已安装。
-
点击“Install”并输入您的密码(需要安装设备并直接写入驱动器)
这就是您需要做的创建可启动的Windows USB Stick的全部内容
来源:How to install and use WinUSB in Ubuntu