Properly create a bootable Windows USB drive

Don't use dd for this. Windows ISOs aren't "hybrid" images like Linux ISOs, so a straight dd copy usually won't boot. The reliable approach is to put a FAT32 partition on the stick and copy the files over. FAT32 has a 4 GB file limit, so you split the large install.wim if needed.

⚠️ This erases everything on /dev/sdc. Confirm it's the USB stick first:

bash
lsblk -o NAME,SIZE,MODEL,TRAN /dev/sdc

1. Partition and format the USB

bash
sudo umount /dev/sdc* 2>/dev/null
sudo wipefs -a /dev/sdc
sudo parted /dev/sdc --script mklabel gpt mkpart WIN11 fat32 1MiB 100%
sudo mkfs.vfat -F 32 -n WIN11 /dev/sdc1

2. Mount the ISO and the USB

bash
sudo mkdir -p /mnt/iso /mnt/usb
sudo mount -o loop,ro Windows11_Client_x64_en-us_26300_9457.iso /mnt/iso
sudo mount /dev/sdc1 /mnt/usb

3. Copy everything except install.wim

bash
sudo rsync -rh --info=progress2 --exclude=sources/install.wim /mnt/iso/ /mnt/usb/

4. Handle install.wim

Check its size:

bash
ls -lh /mnt/iso/sources/install.wim

If it's under 4 GB, copy it directly:

bash
sudo cp /mnt/iso/sources/install.wim /mnt/usb/sources/

If it's over 4 GB (it usually is), split it. Windows Setup picks up the .swm parts automatically:

bash
sudo apt install wimtools
sudo wimlib-imagex split /mnt/iso/sources/install.wim /mnt/usb/sources/install.swm 3800

5. Flush and unmount

bash
sync
sudo umount /mnt/usb /mnt/iso

The drive boots in UEFI mode, which Windows 11 requires anyway. Make sure the target PC isn't set to legacy/CSM boot. Secure Boot can stay on.