Udgivet i

Manjaro – opret Windows USB

Opret en USB fra en Windows ISO

Der kan være mange grunde til at du har brug for det. En af dem kunne være geninstallation af Windows men det kunne også være en firmware (BIOS) opdatering – nogle producenter tilbyder kun Windows baseret firmware opdatering – som kræver et Windows system.

Hvis det er for firmware opdatering – kan du bruge en ISO med Windows PE som Hiren’s BootCD https://www.hirensbootcd.org/

Nedenfor er beskrevet en manuel metode og indtil for få år siden – den eneste mulighed – indtil Github brugeren slacka gaflede WinUSB projektet. Takket være hans arbejde har Linux fællesskabet nu en app der kan gøre det.

WoeUSB

På Manjaro or Arch bygges pakken woeusb som er tilgængelig fra AUR

pamac build woeusb

Hvis du oplever fejl under brugen af WoeUSB – skal du køre denne kommando i en terminal før du starter WoeUSB

sudo modprobe -nv loop 

Manuel oprettelse i terminal

Fjern alle USB enheder, åbn en terminal og list alle disk enheder

lsblk

Indsæt den USB du vil bruge og list enheder igen

lsblk

Noter den nye enhed der er tilføjet. I denne gennemgang bruges navnet /dev/sdy.

I det følgende skal du erstatte **sdy** med enhedsnavnet fra **dit system**.

Husk at dobbelt checke enhedens navn

Indtast følgende kommando i din terminal for at slette alt indhold på din USB.

sudo dd if=/dev/zero of=/dev/sdy bs=1M count=10 oflag=sync

Start programmet fdisk for at oprette det filsystem der skal bruges.

sudo fdisk /dev/sdy

Følgende kommandoer indtastes i fdisk i nævnte rækkefølge

  1. o Enter – ny tom DOS partitionstabel
  2. n Enter – opret partition
  3. Enter – godkend forvalg – (primær)
  4. Enter – godkend forvalg (1)
  5. Enter – godkend forvalg (2048)
  6. Enter – godkend forvalg
  7. t Enter – skift partition type
  8. 1 1 Enter – sæt Microsoft Basic Data
  9. a Enter – sæt boot flag partition 1
  10. w Enter – skriv ændringer og afslut

Nyere versioner af Windows 10 ISO indeholder en fil der er større end 4GB. Det er derfor nødvendigt at bruge exfat der er en udvidet til at kunne indeholde filer større end 4GB.

sudo mkfs.exfat /dev/sdX1

Opret en mappe for at åbne ISO filen

mkdir ~/winiso

Åbn ISO filen i mappen winiso

sudo mount -o loop /path/to/windows/iso/filename.iso ~/winiso

Opret en mappe til at åbne USB

mkdir ~/winusb

Åbn USB enheden i mappen winusb

sudo mount /dev/sdy1 ~/winusb

Kopier alle filer fra ISO til USB

cd ~/winiso
cp -r * ~/winusb

Denne kopiering tager lang tid uanset hastighed USB portens hastighed og din USB enhed. En ny USB3 i en USB3 port tager kortere tid end USB – uanset – så er det mere end 4GB data der skal kopieres.

**VIGTIGT**: Når kopi operationen er overstået skal du sikre dig at alle data er skrevet til USB enheden. Dette sikres ved at bruge kommandoen sync til at synkronisere hukommelse og disk enhed.

sync

Når alle data er synkroniseret vil du komme tilbage til kommandolinjen.

Oprydning. Naviger tilbage til din hjemme mappe

cd ~

Afbryd forbindelsen til mapperne

sudo umount ~/winiso ~/winusb

Slet de midlertidige mapper

rm -rf ~/winiso ~/winusb

Hvis du har gjort det rigtigt kan du nu starte dit system op med din nye Windows USB

Udgivet i

Manjaro – create Windows USB

Creating a bootable USB from a Windows ISO

The reason for needing this could be e.g. reinstalling Windows but it could also be to update your system firmware – because the vendor only provided Windows binaries – you need a Windows system.

Don’t reinstall Windows – use an ISO with a Windows PE environment like Hiren’s BootCD https://www.hirensbootcd.org/

Only the manual approach described below was viable – until af few years ago when the github user slacka forked the WinUSB project. Thanks to his work the Linux community have an app to do abstract the CLI work.

WoeUSB

Use the package woeusb available from AUR

pamac build woeusb

If you get a loop device error using WoeUSB – check this comment below

Manual using CLI

Remove all removable devices (USB), open a terminal and list known disk devices

lsblk -la

Insert your USB stick and list your devices one more time

lsblk -la

Make a note of the extra device listed. If you only have one disk then it probably will be /dev/sdb.

Please do double check the device id

In the terminal clear the disk of any partition info, using this command (replace X with device letter from above).

sudo dd if=/dev/zero of=/dev/sdX bs=1M count=10 oflag=sync

Then use fdisk to create the filesystem needed for the Windows ISO (replace X with device letter from above).

sudo fdisk /dev/sdX

The commands in fdisk is as follows

The partitioning may need rework due to single file inside Windows ISO is larger than 4G.

  1. o – create a new empty DOS partition table
  2. n – add a new partition
  3. Enter – accept default partition type primary
  4. Enter – accept default partition number 1
  5. Enter – accept default first sector 2048
  6. Enter – accept default last sector
  7. t – change partition type
  8. c – select W95 FAT32 (LBA)
  9. a – set bootable flag for partition 1
  10. w – write changes to disk

Newer versions of Windows 10 ISO contains a file bigger than 4G. Format the device using exfat (replace X with device letter from above) to overcome the size limitation of FAT32.

sudo mkfs.exfat /dev/sdX1

Create a folder to mount your ISO

mkdir ~/winiso

Mount your ISO

sudo mount -o loop /path/to/windows/iso/filename.iso ~/winiso

Create a folder to mount your USB

mkdir ~/winusb

Mount the partition (replace X with device letter from above)

sudo mount /dev/sdX1 ~/winusb

Copy all files from ISO to USB

cd ~/winiso
cp -r * ~/winusb

The copy operation is going to take a long time depending on your USB port speed and your USB device.

When the copy is done ensure all data is flushed to the device using the sync command

sync

When all data is flushed to the device you will be returned to the prompt.
Next thing is to move back to your home

cd ~

Then unmount the devices

sudo umount ~/winiso ~/winusb

Remove the folders

rm -rf ~/winiso ~/winusb