Need help making bootable USB
Solution 1:
You aren't really supposed to put ISO images on USB sticks.
Linux distributions build their ISO images in a special way (using the 'isohybrid' tool) to allow for that. Their images have both an El Torito boot structure for CD/DVD boot and a MBR bootsector & an EFI System Partition for disk boot, so the firmware sees whatever it wants to see.
Regular ISO images fresh off 'mkisofs', however, are just plain ISO9660 (or UDF) filesystem images that are for CD/DVDs only – they have neither a MBR nor GPT partition table that disks are expected to have. The same applies to the official Windows ISO images that you download.
So your steps 3–4 are unnecessary; with USB sticks you don't need to get mkisofs involved at all. Instead you're supposed to partition the USB stick like a regular disk, create a FAT32 partition on it, and extract the contents of the Windows ISO into the mounted FAT32 filesystem as regular files. (Here's the official Microsoft documentation on this.)
(Note: "Mark partition as active" is only needed for BIOS/legacy boot. For UEFI, it's the FAT32 filesystem and the "EFI/BOOT/" directory that makes the disk bootable.)
Normally the ISO contents only have one file that's oversized – the install.wim
image, which you can split into several 2GB *.swm pieces for copying to FAT32. The above article suggests dism.exe, and the Linux equivalent is wimsplit
from the wimlib toolkit (Ubuntu's split-packaging has it in the 'wimtools' package).