{"id":1198,"date":"2017-03-10T13:52:03","date_gmt":"2017-03-10T10:52:03","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=1198"},"modified":"2023-12-02T01:53:50","modified_gmt":"2023-12-01T22:53:50","slug":"create-windows-10-bootable-usb-on-linux","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/create-windows-10-bootable-usb-on-linux\/","title":{"rendered":"Create Windows 11 or 10 bootable USB on Linux"},"content":{"rendered":"\n<p>Create Windows 10 bootable USB on Linux: Want to create a bootable USB stick for Windows 10 on your <a href=\"https:\/\/computingforgeeks.com\/category\/linux-tutorials\/\" target=\"_blank\" rel=\"noopener noreferrer\">Linux box<\/a>?. This has been made simple by <a href=\"https:\/\/github.com\/WoeUSB\/\" target=\"_blank\" rel=\"noreferrer noopener\">WoeUSB<\/a>. WoeUSB is a simple tool that enables you to create your own USB stick windows installer from an iso image or a real DVD.&nbsp;This project is a fork of&nbsp;<a href=\"http:\/\/en.congelli.eu\/prog_info_winusb.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Congelli501&#8217;s WinUSB software<\/a>, which has not been maintained since 2012, according to the official website.<\/p>\n\n\n\n<p>WoeUSB package contains two programs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>woeusbgui<\/strong>:&nbsp; A GUI wrapper of woeusb based on WxWidgets<\/li>\n\n\n\n<li><strong>woeusb<\/strong>: A command-line utility that enables you to create your own bootable Windows installation USB storage device from an existing Windows Installation disc or disk image.<\/li>\n<\/ul>\n\n\n\n<p>WoeUSB supports the following Windows images:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Windows Vista<\/li>\n\n\n\n<li>Windows 7, 8 and 10<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">&nbsp;Method 1: Install WoeUSB-ng on Linux using pip3<\/h2>\n\n\n\n<p>Follow below steps to get WoeUSB running on your Linux box. This is a prerequisite before you can create windows 10 bootable USB on Linux<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Arch Linux \/ Manjaro<\/h3>\n\n\n\n<p>Install yay tool:Install yay &#8211; <a href=\"https:\/\/computingforgeeks.com\/best-aur-package-managers-for-arch-linux-manjaro\/\" target=\"_blank\" rel=\"noreferrer noopener\">Best AUR Helper for Arch Linux \/ Manjaro<\/a><\/p>\n\n\n\n<p>Use yay to install WoeUSB on Arch Linux:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yay -S woeusb-ng<\/code><\/pre>\n\n\n\n<p>Or via pip3 package manager:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pacman -Suy p7zip python-pip python-wxpython\nsudo pip3 install WoeUSB-ng<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ubuntu Linux systems<\/h3>\n\n\n\n<p>For Ubuntu, start with the installation of dependencies:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin<\/code><\/pre>\n\n\n\n<p>After dependencies installation, install WoeUSB-ng using pip package manager:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pip3 install WoeUSB-ng<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Fedora<\/h3>\n\n\n\n<p>For Fedora, install WoeUSB using the following command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install git p7zip p7zip-plugins python3-pip python3-wxpython4\nsudo pip3 install WoeUSB-ng<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><meta charset=\"utf-8\">Method 2: Install WoeUSB-ng on Linux from source<\/h2>\n\n\n\n<p>Install dependencies required:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em><span class=\"has-inline-color has-vivid-purple-color\">### Ubuntu ###\n<\/span><\/em><meta charset=\"utf-8\">sudo apt update\nsudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin\n\n<em><span class=\"has-inline-color has-vivid-purple-color\">### Fedora ####\n<\/span><\/em><meta charset=\"utf-8\">sudo dnf install git p7zip p7zip-plugins python3-pip python3-wxpython4\n\n<em><span class=\"has-inline-color has-vivid-purple-color\">### Arch based systems ###\n<\/span><\/em>sudo pacman -Suy p7zip python-pip python-wxpython<\/code><\/pre>\n\n\n\n<p>Then clone project and install <meta charset=\"utf-8\">WoeUSB-ng from source:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/WoeUSB\/WoeUSB-ng.git\ncd WoeUSB-ng\nsudo pip3 install .<\/code><\/pre>\n\n\n\n<p>After you get WoeUSB installed, you are on set to&nbsp;create windows 10 bootable USB on Linux. Here you have two options, one of them being to use a command line and the other one being to use a GUI version.<\/p>\n\n\n\n<p>I&#8217;ll show you both of the methods you can use to&nbsp;create Windows 10 bootable USB on Linux.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create Windows 10 bootable USB on Linux<\/h2>\n\n\n\n<p>Launch the GUI version of WoeUSB tool.\n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo woeusbgui<\/code><\/pre>\n\n\n\n<p>This will bring you an interface similar to one below:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-winusb-gui.png\"><img loading=\"lazy\" decoding=\"async\" width=\"682\" height=\"714\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-winusb-gui.png\" alt=\" create windows 10 bootable USB on Linux\" class=\"wp-image-1199\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-winusb-gui.png 682w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-winusb-gui-287x300.png 287w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-winusb-gui-401x420.png 401w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/a><\/figure>\n\n\n\n<p>Then select Windows 10&nbsp;<strong>ISO&nbsp;<\/strong>image file and click on the correct target device listed at the bottom of the screen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/select-iso-image-and-usb-stick.png\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"703\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/select-iso-image-and-usb-stick.png\" alt=\" create windows 10 bootable USB on Linux\" class=\"wp-image-1200\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/select-iso-image-and-usb-stick.png 677w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/select-iso-image-and-usb-stick-289x300.png 289w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/select-iso-image-and-usb-stick-404x420.png 404w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/figure>\n\n\n\n<p>Click on&nbsp;<strong>Install&nbsp;<\/strong>button at the bottom of the screen to create windows 10 bootable USB on Linux.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-installation.png\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"703\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-installation.png\" alt=\" create windows 10 bootable USB on Linux\" class=\"wp-image-1201\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-installation.png 677w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-installation-289x300.png 289w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/start-installation-404x420.png 404w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/figure>\n\n\n\n<p>Wait for the installation to finish. You should get a complete message like one shown below:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/win-usb-installation-complete.png\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"703\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/win-usb-installation-complete.png\" alt=\" create windows 10 bootable USB on Linux\" class=\"wp-image-1202\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/win-usb-installation-complete.png 677w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/win-usb-installation-complete-289x300.png 289w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2017\/03\/win-usb-installation-complete-404x420.png 404w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Using command line woeusb<\/h4>\n\n\n\n<p>Using the command line <code>woeusb<\/code><strong>&nbsp;<\/strong>to&nbsp;create windows 10 bootable USB on Linux will require you to provide iso image location and USB device as command line options. See example below which will create windows 10 bootable USB on Linux using 32-bit version of Windows 10 to USB stick on&nbsp;<strong>\/dev\/sdb.<\/strong>\n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo woeusb --device <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">&lt;source media path><\/mark><\/em> <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">&lt;device><\/mark><\/em><\/code><\/pre>\n\n\n\n<p>In my case, this will be:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">sudo woeusb --device <\/span><span class=\"has-inline-color has-vivid-cyan-blue-color\">win_10_rs3_aio_1709.16299.251_x64.iso<\/span><span class=\"has-inline-color has-pale-pink-color\"> \/dev\/sda<\/span>\nWoeUSB v@@WOEUSB_VERSION@@\n==============================\nMounting source filesystem...\nWiping all existing partition table and filesystem signatures in \/dev\/sda...\n\/dev\/sda: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31\n\/dev\/sda: 2 bytes were erased at offset 0x000001fe (dos): 55 aa\n\/dev\/sda: 2 bytes were erased at offset 0x00000000 (mac): 45 52\n\/dev\/sda: calling ioctl to re-read partition table: Success\nEnsure that \/dev\/sda is really wiped...\nCreating new partition table on \/dev\/sda...\nCreating target partition...\nMaking system realize that partition table has changed...\nWait 3 seconds for block device nodes to populate...\nmkfs.fat 4.1 (2017-01-24)\nmkfs.fat: warning - lowercase labels might not work properly with DOS or Windows\nMounting target filesystem...\nApplying workaround to prevent 64-bit systems with big primary memory from being unresponsive during copying files.\nCopying files from source media...\ngrep: \/media\/woeusb_source_1530817244_30290\/sources\/cversion.ini: No such file or directory\nInstalling GRUB bootloader for legacy PC booting support...\nInstalling for i386-pc platform.\nInstallation finished. No error reported.\nInstalling custom GRUB config for legacy PC booting...\nResetting workaround to prevent 64-bit systems with big primary memory from being unresponsive during copying files.\nUnmounting and removing \"\/media\/woeusb_source_1530817244_30290\"...\nUnmounting and removing \"\/media\/woeusb_target_1530817244_30290\"...\nYou may now safely detach the target device\nDone \ud83d\ude42\nThe target device should be bootable now<\/code><\/pre>\n\n\n\n<p>If your Windows ISO image is bigger than&nbsp;<strong>4GB,&nbsp;<\/strong>you&#8217;ll need to use NTFS filesystem in the USB device. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo woeusb --device Windows-10-Pro-X64-Pre-Activated.iso \/dev\/sdb \\\n--target-filesystem ntfs<\/code><\/pre>\n\n\n\n<p>Sample output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WoeUSB v@@WOEUSB_VERSION@@\n==============================\nMounting source filesystem...\nWiping all existing partition table and filesystem signatures in \/dev\/sdb...\n\/dev\/sdb: 2 bytes were erased at offset 0x000001fe (dos): 55 aa\n\/dev\/sdb: calling ioctl to re-read partition table: Success\nEnsure that \/dev\/sdb is really wiped...\nCreating new partition table on \/dev\/sdb...\nCreating target partition...\nMaking system realize that partition table has changed...\nWait 3 seconds for block device nodes to populate...\nCluster size has been automatically set to 4096 bytes.\nCreating NTFS volume structures.\nmkntfs completed successfully. Have a nice day.\n--2018-11-24 08:40:15--  https:\/\/github.com\/pbatard\/rufus\/raw\/master\/res\/uefi\/uefi-ntfs.img\nLoaded CA certificate '\/etc\/ssl\/certs\/ca-certificates.crt'\nResolving github.com (github.com)... 140.82.118.4, 140.82.118.3, 64:ff9b::8c52:7603, ...\nConnecting to github.com (github.com)|140.82.118.4|:443... connected.\nHTTP request sent, awaiting response... 302 Found\nLocation: https:\/\/raw.githubusercontent.com\/pbatard\/rufus\/master\/res\/uefi\/uefi-ntfs.img &#91;following]\n--2018-11-24 08:40:17--  https:\/\/raw.githubusercontent.com\/pbatard\/rufus\/master\/res\/uefi\/uefi-ntfs.img\nResolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.140.133, 64:ff9b::9765:8c85\nConnecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.140.133|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 524288 (512K) &#91;application\/octet-stream]\nSaving to: \u2018\/tmp\/WoeUSB.YZlT6n.tempdir\/uefi-ntfs.img\u2019\n\nuefi-ntfs.img                         100%&#91;========================================================================&gt;] 512.00K   451KB\/s    in 1.1s    \n\n2018-11-24 08:40:19 (451 KB\/s) - \u2018\/tmp\/WoeUSB.YZlT6n.tempdir\/uefi-ntfs.img\u2019 saved &#91;524288\/524288]\n\n1024+0 records in\n1024+0 records out\n524288 bytes (524 kB, 512 KiB) copied, 0.173849 s, 3.0 MB\/s\nMounting target filesystem...\nApplying workaround to prevent 64-bit systems with big primary memory from being unresponsive during copying files.\nCopying files from source media...\nInstalling GRUB bootloader for legacy PC booting support...\nInstalling for i386-pc platform.\nInstallation finished. No error reported.\nInstalling custom GRUB config for legacy PC booting...\nResetting workaround to prevent 64-bit systems with big primary memory from being unresponsive during copying files.\nUnmounting and removing \"\/media\/woeusb_source_1543038005_16819\"...\nUnmounting and removing \"\/media\/woeusb_target_1543038005_16819\"...\nYou may now safely detach the target device\nDone \ud83d\ude42\nThe target device should be bootable now<\/code><\/pre>\n\n\n\n<p>Once finished, you&#8217;re good to go. Go ahead and use windows 10 bootable USB to make an installation on your PC.<\/p>\n\n\n\n<p>Thank you for reading this post on how to&nbsp;create Windows 10 bootable USB on Linux. Hope this was helpful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Create Windows 10 bootable USB on Linux: Want to create a bootable USB stick for Windows 10 on your Linux box?. This has been made simple by WoeUSB. WoeUSB is a simple tool that enables you to create your own USB stick windows installer from an iso image or a real DVD.&nbsp;This project is a &#8230; <a title=\"Create Windows 11 or 10 bootable USB on Linux\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/create-windows-10-bootable-usb-on-linux\/\" aria-label=\"Read more about Create Windows 11 or 10 bootable USB on Linux\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":1201,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[299,12,17,26,29,47,50,73,81,90],"tags":[148,193,149,147],"class_list":["post-1198","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-arch-linux","category-centos","category-debian","category-fedora","category-linux","category-linux-tutorials","category-rhel","category-ubuntu","category-windows","tag-bootable-usb","tag-os","tag-windows-10","tag-winusb"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/1198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=1198"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/1198\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/1201"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=1198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=1198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=1198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}