How to Create a (persitent) Bootable Windows 10 USB in Linux

Hello !
I only have Ubuntu PC and need some Windows app for school those apps have not any conversion from proprietary to Open Source and homeworks have to be done in those proprietary files formats

I don’t like to destabilise my OS and totally failed to virtualized Windows (with PlayOnLinux and Wine) so I need a persistent MS Windows on an external USB disk.

I’ve read the tutorial How to Create a Bootable Windows 10 USB in Linux but also that Ventoy cannot create persitent disks and that UNetbootin is recommanded to create a persitent disk…

How can I proceed to get an Bootable External Win10 USB disk using my Ubuntu 22.04LTS?


→ Add the output of inxi -Fxmz command here!
$ inxi -Fxmz
La commande « inxi » n’a pas été trouvée, mais peut être installée avec :
sudo apt install inxi

$ sudo apt install inxi
[sudo] Mot de passe de hada :
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
Lecture des informations d’état… Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
libxdo3 xdotool
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
Les paquets supplémentaires suivants seront installés :
lm-sensors tree
Paquets suggérés :
libxml-dumper-perl fancontrol read-edid i2c-tools
Les NOUVEAUX paquets suivants seront installés :
inxi lm-sensors tree
0 mis à jour, 3 nouvellement installés, 0 à enlever et 15 non mis à jour.
Il est nécessaire de prendre 422 ko dans les archives.
Après cette opération, 1 824 ko d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Réception de :1 NO LINKS FOR NEW USERS/ubuntu jammy/universe amd64 tree amd64 2.0.2-1 [47,9 kB]
Réception de :2 NO LINKS FOR NEW USERS/ubuntu jammy/universe amd64 inxi all 3.3.13-1-1 [283 kB]
Réception de :3 NO LINKS FOR NEW USERS/ubuntu jammy/universe amd64 lm-sensors amd64 1:3.6.0-7ubuntu1 [91,0 kB]
422 ko réceptionnés en 0s (2 885 ko/s)
Sélection du paquet tree précédemment désélectionné.
(Lecture de la base de données… 207744 fichiers et répertoires déjà installés.
Préparation du dépaquetage de …/tree_2.0.2-1_amd64.deb …
Dépaquetage de tree (2.0.2-1) …
Sélection du paquet inxi précédemment désélectionné.
Préparation du dépaquetage de …/inxi_3.3.13-1-1_all.deb …
Dépaquetage de inxi (3.3.13-1-1) …
Sélection du paquet lm-sensors précédemment désélectionné.
Préparation du dépaquetage de …/lm-sensors_1%3a3.6.0-7ubuntu1_amd64.deb …
Dépaquetage de lm-sensors (1:3.6.0-7ubuntu1) …
Paramétrage de inxi (3.3.13-1-1) …
Paramétrage de tree (2.0.2-1) …
Paramétrage de lm-sensors (1:3.6.0-7ubuntu1) …
Created symlink /etc/systemd/system/ →
Traitement des actions différées (« triggers ») pour man-db (2.10.2-1) …

$ inxi -Fxmz~
Error 22: Unsupported option: -~
Check -h for correct parameters.

$ inxi -Fxmz
Kernel: 5.15.0-47-generic x86_64 bits: 64 compiler: gcc v: 11.2.0
Desktop: GNOME 42.4 Distro: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
Type: Laptop System: LENOVO product: 745969G v: ThinkPad X200
Mobo: LENOVO model: 745969G v: ThinkPad X200 serial:
BIOS: coreboot v: CBET4000 3774c98 date: 09/07/2016
ID-1: BAT0 charge: 41.2 Wh (99.3%) condition: 41.5/48.8 Wh (85.1%)
volts: 12.4 min: 11.1 model: JingYi 08K8193 status: Not charging
RAM: total: 7.51 GiB used: 3.57 GiB (47.6%)
RAM Report:
permissions: Unable to run dmidecode. Root privileges required.
Info: dual core model: Intel Core2 Duo P8600 bits: 64 type: MCP
arch: Core Yorkfield rev: A cache: L1: 128 KiB L2: 3 MiB
Speed (MHz): avg: 2118 high: 2170 min/max: 800/2401 boost: enabled cores:
1: 2067 2: 2170 bogomips: 9601
Flags: ht lm nx pae sse sse2 sse3 sse4_1 ssse3 vmx
Device-1: Intel Mobile 4 Series Integrated Graphics vendor: Lenovo
driver: i915 v: kernel bus-ID: 00:02.0
Device-2: Lenovo Integrated Webcam type: USB driver: uvcvideo
bus-ID: 1-6:4
Display: wayland server: X.Org v: with: Xwayland v: 22.1.1
compositor: gnome-shell driver: X: loaded: modesetting unloaded: fbdev,vesa
gpu: i915 resolution: 1280x800~60Hz
OpenGL: renderer: Mesa Mobile Intel GM45 Express (CTG) v: 2.1 Mesa 22.0.5
direct render: Yes
Device-1: Intel 82801I HD Audio vendor: Lenovo ThinkPad T400
driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
Sound Server-1: ALSA v: k5.15.0-47-generic running: yes
Sound Server-2: PulseAudio v: 15.99.1 running: yes
Sound Server-3: PipeWire v: 0.3.48 running: yes
Device-1: Intel 82567LM Gigabit Network vendor: Lenovo ThinkPad T400
driver: e1000e v: kernel port: 3000 bus-ID: 00:19.0
IF: enp0s25 state: up speed: 1000 Mbps duplex: full mac:
Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter vendor: Askey
driver: ath9k v: kernel bus-ID: 02:00.0
IF: wlp2s0 state: down mac:
Device-1: Broadcom BCM2045B (BDC-2.1) [Bluetooth Controller] type: USB
driver: btusb v: 0.8 bus-ID: 4-2:8
Report: hciconfig ID: hci0 rfk-id: 7 state: up address:
bt-v: 1.2 lmp-v: 2.1
Local Storage: total: 931.51 GiB used: 39.43 GiB (4.2%)
ID-1: /dev/sda vendor: Seagate model: ST1000LM048-2E7172 size: 931.51 GiB
ID-1: / size: 191.38 GiB used: 23.02 GiB (12.0%) fs: ext4 dev: /dev/sda5
Alert: No swap data was found.
System Temperatures: cpu: 51.0 C mobo: 48.0 C
Fan Speeds (RPM): cpu: 3701
Processes: 223 Uptime: 3h 45m Init: systemd runlevel: 5 Compilers:
gcc: 11.2.0 Packages: 2131 Shell: Bash v: 5.1.16 inxi: 3.3.13


→ Add the output of for f in $(find . -maxdepth 1 -type f -name 'dmesg*.log'); do echo "${f}"; printf '%s\n\n' "$(<"${f}")"; done command here!

$ for f in $(find . -maxdepth 1 -type f -name ‘dmesg*.log’); do echo “${f}”; printf ‘%s\n\n’ “$(<”${f}“)”; done


First, install dependencies:

→ apt update
→ apt install -y dnsutils traceroute hping3 netcat tcpdump

→ ip a
→ ip route
→ traceroute
→ nslookup

Additional Information (if applicable)

  • Software title | (E.g. Nextcloud)
  • Software version | (E.g. softwarename -V)
  • Was the software title installed freshly or updated/migrated?

Steps to reproduce

Expected behaviour

Actual behaviour

Extra details

What’s the program called?

Persistent as in a portable Windows?

You can install Windows to Go, if you want a portable Windows.

I usually create bootable USB sticks on Windows with Rufus.

On Linux there is no such convenient and great to use tool, which is why you need to do it like a cave man, if you want to do it the best way, on Linux.

Once you have Windows to Go at your disposal, you can follow several ways of installation, or you can do it the Linux way, as described in Q6.

Many thanks


Yes, something à la Windows To Go to intall SketchUp and also MockupsForDesktop as I’m obligated to send my homeworks back in their proprietary formats to teachers

I have the iso and a key for Enterprise (WTG is only on Education and Enterprise)

No Windows PC here

This part ? (to be sure)

Precisely. This is a description of proper & safe bootable disk creation. The dd part makes it safe, because it does not do weird copying or other weird stuff, like Ventoy or whatever. It literally just flashes the image 1:1 onto the stick. Nothing more. Nothing less.

Please, don’t skip the hash verification.

It also works with Windows Server.