44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# (c) Christopher Münzer DB InfraGo Betriebszentrale Duisburg
|
|
|
|
USB_DEVICE="/dev/sda"
|
|
OUTPUT_ISO="windows_$(date +%Y%m%d).iso"
|
|
|
|
echo "1. Analysiere USB-Stick..."
|
|
sudo fdisk -l "$USB_DEVICE"
|
|
|
|
echo "2. Erstelle temporäre Verzeichnisse..."
|
|
TEMP_DIR=$(mktemp -d)
|
|
mkdir -p "$TEMP_DIR"/{mount1,mount2,iso}
|
|
|
|
echo "3. Kopiere Boot-Sektion..."
|
|
sudo dd if="$USB_DEVICE" of="$TEMP_DIR/bootsect.bin" bs=512 count=1
|
|
|
|
echo "4. Mounte und kopiere Partitionen..."
|
|
# Erste Partition (normalerweise FAT32/EFI)
|
|
sudo mount "${USB_DEVICE}1" "$TEMP_DIR/mount1" 2>/dev/null
|
|
sudo cp -r "$TEMP_DIR"/mount1/* "$TEMP_DIR/iso/" 2>/dev/null
|
|
|
|
# Zweite Partition (normalerweise NTFS/Installation)
|
|
sudo mount "${USB_DEVICE}2" "$TEMP_DIR/mount2" 2>/dev/null
|
|
sudo cp -r "$TEMP_DIR"/mount2/* "$TEMP_DIR/iso/" 2>/dev/null
|
|
|
|
echo "5. Erstelle bootfähige ISO..."
|
|
sudo genisoimage \
|
|
-b efi/microsoft/boot/efisys.bin \
|
|
-no-emul-boot \
|
|
-boot-load-size 8 \
|
|
-iso-level 3 \
|
|
-udf \
|
|
-allow-limited-size \
|
|
-J -l -D -N \
|
|
-joliet-long \
|
|
-relaxed-filenames \
|
|
-o "$OUTPUT_ISO" \
|
|
"$TEMP_DIR/iso"
|
|
|
|
echo "6. Aufräumen..."
|
|
sudo umount "$TEMP_DIR"/mount* 2>/dev/null
|
|
sudo rm -rf "$TEMP_DIR"
|
|
|
|
echo "Fertig! ISO erstellt: $OUTPUT_ISO" |