Zum Inhalt

Umgang mit Image-Dateien

📅 Erstellt: 17.09.2026 🔄 Aktualisiert: 17.10.2026

Hier schreibe ich kompakt mal neu, was ich mir in diversen anderen Notizen über sämtliche Images erarbeitet habe.
Es geht um:

  • Floppy-Disk-Images: 1,44 MB und 1,2 MB hauptsächlich - .IMA, .IMG
  • Festplatten-Images: Rawformat (u.a. mit dd, VHD-Format für VMs) - .IMG, .VHD
  • CD-Images: Daten-CDs, Audio-CDs - .ISO, .BIN/.CUE, andere Container und Formate

Floppy Disk-Images

Dateien aus Images extrahieren

7zip kann sowas direkt, beispielsweise:
7z x disk01.img -o./ausgabe_ordner

Wer eine GUI bevorzugt kann z.B. PeaZip verwenden.


Festplatten-Images

Image erstellen

Hier arbeite ich mit dd, das sollte für Linux UND Windows (mit Cygwin oder WSL) funktionieren.

In Linux mounten und Daten verarbeiten

FAT16

Nachfolgende Methode funktioniert u.a. mit regulären MS-DOS Festplatten-Images. Festplatten mit Ontrack Overlay funktionieren so nicht! Dafür gibt es eine andere, kompliziertere Methode, auf die ich später noch eingehe und hier verlinken werde.

Ich erstelle ein Loop-Device:
losetup -fP --show IBMAptiva486_HDD_4.3G_2026-08-20.img

In KDE/Dolphin erscheint:
de1bd2de8198d7df255d52312903bf9e.png
Damit kann ich nun die Partitionen einhängen und bearbeiten.

Danach sauber aushängen und das Loop-Device wieder löschen:
losetup -d /dev/loop0

Alternativ:
udisksctl loop-setup -f IBMAptiva486_HDD_4.3G_2026-08-20.img

Und Device löschen:
udisksctl loop-delete -d /dev/loop0

FAT32

TBD

Troubleshooting

Sollte das Image nicht mountfähig auftauchen, dann folgende Befehle mal ausführen:

❯ file HD00_512_2G_DOSWIN3X.img 
HD00_512_2G_DOSWIN3X.img: DOS/MBR boot sector

❯ fdisk -l HD00_512_2G_DOSWIN3X.img 
Festplatte HD00_512_2G_DOSWIN3X.img: 1,95 GiB, 2092769280 Bytes, 4087440 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x00000000

Gerät                     Boot Anfang    Ende Sektoren Größe Kn Typ
HD00_512_2G_DOSWIN3X.img1 *        63 4080509  4080447  1,9G 16 Verst. FAT16

Man sieht hier, dass die FAT16 Partition momentan - durch einen Bootmanager o.ä. - versteckt ist.
Ist kein Problem, macht man mit fdisk wieder sichtbar.

Hinweis

Dieses konkrete Beispiel gilt nur für versteckte FAT16-Parititionen!
Es sollte auch für andere Partitionstypen funktionieren, hier aber bitte dringend den Typ beachten! Wechsel von Hidden XXXX nach XXXX!

❯ fdisk HD00_512_2G_DOSWIN3X.img

Willkommen bei fdisk (util-linux 2.42.4).
Änderungen werden vorerst nur im Speicher vorgenommen, bis Sie sich
entscheiden, sie zu schreiben.
Seien Sie vorsichtig, bevor Sie den Schreibbefehl anwenden.


Befehl (m für Hilfe): t
Partition 1 ausgewählt
Hexadezimalcode oder Alias (geben Sie L ein, um alle Codes aufzulisten): 6
Partitionstyp von »Hidden FAT16« nach »FAT16« geändert.

Befehl (m für Hilfe): w

Die Partition(en) sollten nun mountfähig sein über GUI.


CD-Images

Um zum Beispiel ein unter MS-DOS 5.0+ lesbares CD-Image - für die PicoGUS, BlueSCSI oder echten Datenträger etc. - zu erstellen müssen strikt ISO 9660 Level 1 Spezifikationen eingehalten werden.

Das heisst unter anderem:

  • 8.3 Dateinamenformat (z.B. COMMAND.COM, INSTALL.EXE, SERBRIEF.DOC)
  • Zeichensatz: englische Großbuchstaben, Ziffern 0-9 plus Unterstrich _ - keine Leerzeichen, Umlaute oder Sonderzeichen
  • Verzeichnistiefe maximal 8
  • Volume Label max. 32 Zeichen
  • Keine Erweiterungen wie Joliet (Windows-Dateinamen) oder Rock Ridge (Linux-Dateinamen)

Unterschiede der Tools

Unter Linux kann man mit genisoimage, mkisofs oder xorriso arbeiten.

xorriso ist der moderne Standard. genisoimage der Linux-Fork (seit 2006) von mkisofs (historischer Standard), letzteres Teil von cdrtools.

Bei mir ist genisoimage ein Symlink auf mkisofs. Beide verwenden die gleichen Schalter und Parameter.

Mit xorriso -as mkisofs wird in mkisofs-Emulation gearbeitet und somit kompatibel mit fast allen Parametern zu mkisofs / genisoimage.

Ein Vorteil von xorriso ist unter anderem, dass es .iso-Dateien direkt öffnen kann, Dateien hinzufügen oder löschen kann, ohne das Image von Grund auf neu bauen zu müssen.

Skript zum Erstellen eines ISO CD-Images

Für die Erstellung eines CD-Images aus Dateien und Ordnern einen Quellordners, habe ich ein Umwandlungsskript (mit Hilfe von KI erstellt und angepasst) geschrieben. Es wandelt die Namen - falls zu lang - um und erstellt ein ISO 9660 Level 1 konformes Image. - create_dos_iso.sh

#!/usr/bin/env bash
# create_dos_iso.sh - Erstellt MS-DOS-kompatible ISO 9660 Level 1 Images

set -e

SRC_DIR="${1%/}"
ISO_OUT="${2:-dos_cd.iso}"
VOL_NAME="${3:-DOS_CD}"

if [[ -z "$SRC_DIR" || ! -d "$SRC_DIR" ]]; then
    echo "Nutzung: $0 <Quellordner> [Ausgabe.iso] [VOLUMELABEL]"
    exit 1
fi

STAGE_DIR=$(mktemp -d /tmp/dos_iso_stage.XXXXXX)
trap 'rm -rf "$STAGE_DIR"' EXIT

echo "=== 1. Analyse und Vorbereitung für MS-DOS (8.3 & UPPERCASE) ==="

find "$SRC_DIR" -mindepth 1 | while read -r src_path; do
    rel_path="${src_path#$SRC_DIR/}"

    # 1. Verzeichnistiefe rein in Bash berechnen (robust ohne awk/tr)
    slashes="${rel_path//[^\/]}"
    depth=$(( ${#slashes} + 1 ))
    if [ "$depth" -gt 8 ]; then
        echo "⚠️  [WARNUNG] Verzeichnistiefe > 8 Ebenen: '$rel_path'"
    fi

    dirname=$(dirname "$rel_path")
    filename=$(basename "$rel_path")

    # 2. Ordnerpfad säubern (Jeden Ordner auf max. 8 Zeichen & UPPERCASE kürzen)
    if [ "$dirname" == "." ]; then
        target_dir="$STAGE_DIR"
    else
        clean_dir=""
        IFS='/' read -ra DIR_PARTS <<< "$dirname"
        for part in "${DIR_PARTS[@]}"; do
            clean_part=$(echo "$part" | tr '[:lower:]' '[:upper:]' | sed 's/[^A-Z0-9_]/_/g')
            clean_part="${clean_part:0:8}"
            clean_dir="${clean_dir:+$clean_dir/}$clean_part"
        done
        target_dir="$STAGE_DIR/$clean_dir"
    fi

    mkdir -p "$target_dir"

    # Ordner selbst nicht als Datei kopieren
    if [ -d "$src_path" ]; then
        continue
    fi

    # 3. Dateiname & Endung trennen
    if [[ "$filename" == *.* ]]; then
        base_name="${filename%.*}"
        ext="${filename##*.}"
    else
        base_name="$filename"
        ext=""
    fi

    # Säubern (nur A-Z, 0-9, _)
    clean_base=$(echo "$base_name" | tr '[:lower:]' '[:upper:]' | sed 's/[^A-Z0-9_]/_/g')
    clean_ext=$(echo "$ext" | tr '[:lower:]' '[:upper:]' | sed 's/[^A-Z0-9_]/_/g')
    clean_ext="${clean_ext:0:3}"

    # 4. Kollisionsfreie 8.3-Benennung (z. B. NGHOST61.IMA, NGHOST62.IMA bei Namensgleichheit)
    short_base="${clean_base:0:8}"
    if [ -n "$clean_ext" ]; then
        target_file="$target_dir/${short_base}.${clean_ext}"
    else
        target_file="$target_dir/${short_base}"
    fi

    counter=1
    while [ -e "$target_file" ]; do
        suffix="${counter}"
        prefix_len=$(( 8 - ${#suffix} ))
        short_base="${clean_base:0:$prefix_len}${suffix}"
        if [ -n "$clean_ext" ]; then
            target_file="$target_dir/${short_base}.${clean_ext}"
        else
            target_file="$target_dir/${short_base}"
        fi
        ((counter++))
    done

    target_name=$(basename "$target_file")

    if [ "$filename" != "$target_name" ]; then
        echo "⚠️  [WARNUNG] Name angepasst: '$filename' -> '$target_name'"
    fi

    cp "$src_path" "$target_file"
done

echo ""
echo "=== 2. Erstelle ISO 9660 Level 1 Image: $ISO_OUT ==="

clean_label=$(echo "$VOL_NAME" | tr '[:lower:]' '[:upper:]' | sed 's/[^A-Z0-9_]/_/g')
clean_label="${clean_label:0:32}"

genisoimage -iso-level 1 -pad -V "$clean_label" -o "$ISO_OUT" "$STAGE_DIR"

echo ""
echo "✅ ISO erfolgreich erstellt: $ISO_OUT"

Überprüfung des ISO CD-Images

Überprüfen kann man das erstellte Image mit:
isoinfo -f -i dos_cd.iso

KI-Empfehlung für eine DOS/Win 3.x Zusammenstellung auf einer CD

Hier mal ein Ergebnis und Zusammenfassung einer längeren "Unterhaltung" mit Gemini KI bzgl. gesammelter nützlicher Software auf einer solchen CD. Fand ich ganz interessant und als erste Orientierung doch recht brauchbar, daher hab ich es hier mal angefügt.

KI Hinweis

Zusammenstellung (Bearbeiteter KI-Inhalt)

Für ein ultimatives MS-DOS / Windows 3.x All-in-One-Setup-Image sollte die CD so strukturiert sein, dass alle Installationen ohne Diskettenwechsel direkt aus Flachordnern laufen und alle essenziellen Treiber sowie Reparatur-Tools sofort griffbereit sind.


1. Betriebssysteme & Umgebungen (Flachordner-Installationen)

Ein großer Vorteil von CD-Images: Du kannst die Installationsmedien entpackt in Verzeichnisse legen und SETUP.EXE direkt starten:

  • MS-DOS 6.22 / PC-DOS 2000: Alle Disketteninhalte in Ordner wie \INSTALL\DOS622\ bzw. \INSTALL\PCDOS\
  • Windows 3.11 for Workgroups (WfW): Ordner \INSTALL\WIN311\ (inkl. Win32s 1.30c Erweiterung für 32-Bit-Apps).
  • Windows 95 / 98 SE (OEM-Ordner): Der Ordner \WIN95\ bzw. \WIN98\ von den Original-CDs (erlaubt spätere Treiber-Nachinstallationen ohne CD-Einlegen).

2. Speichermanagement, Boot & System-Kern

  • CuteMouse (CTMOUSE.EXE): Der absolute Goldstandard. Verbraucht nur ca. 3–4 KB Conventional Memory (im Gegensatz zum klobigen Microsoft-Maustreiber mit 30+ KB) und unterstützt Serial & PS/2.
  • SHSUCDX: Schlanker Ersatz für MSCDEX.EXE (spart wertvolle Kilobytes im konventionellen Speicher).
  • CD-ROM Universal-Treiber:

    • OAKCDROM.SYS (Standard ATAPI/IDE)
    • GCDROM.SYS (SATA / moderne Controller)
    • VIDE-CDD.SYS (Akai/Acer IDE)
  • Speicher-Manager & Tools:

    • HIMEMX.EXE & JENNEM.EXE (oder klassisch EMM386.EXE / QEMM 9.0)
    • UMBPCI.SYS (aktiviert UMBs auf vielen Chipsätzen ohne EMS-Overhead)

3. Shell-Erweiterungen & Komfort

  • 4DOS (oder NDOS): Genialer Ersatz für COMMAND.COM. Bietet Tab-Completion, Aliase, strukturierte BTM-Skripte und farbige Verzeichnislisten.
  • DOSKey-Alternativen: CED (Command Editor) oder DOSKEY /INSERT für erweiterte History.
  • Dateimanager:
    • Norton Commander 5.5 (NC): Das Urgestein.
    • Volkov Commander (VC): Extrem schnell, vollständig in Assembler geschrieben, winziger Speicherbedarf.

4. Audio, MIDI & Sound-Hardwaresets

  • UNISOUND: Absolutes Must-Have für ISA-Soundkarten. Erkennt PnP-Karten (Creative, ESS, Crystal, Yamaha, Terratec etc.) automatisch in einer Sekunde und initialisiert sie ohne träge Treiber-TSRs im Speicher.
  • SoftMPU: Emuliert ein intelligentes MPU-401 MIDI-Interface für Roland MT-32/Sound Canvas über Standard-MIDI-Schnittstellen oder Waveblaster-Töchter.
  • PicoGUS Utilities:
    • PGUSINIT.EXE (Initialisierung)
    • Neueste .uf2-Firmware-Dateien & Flashing-Tools (für GUS, MPU-401, Tandy, CMS Emulation).
  • Gravis Ultrasound (GUS): Original GUSINIT.EXE & ULTRASND-Ordnerstruktur.
  • Creative Sound Blaster: CTCM (Creative PnP Configuration Manager) + SBBASIC Treiber-Pakete.
  • Hersteller Soundkartentreiber: Beispielsweise SB Pro, SB16 Original Herstellertreiber

5. SCSI-Treiber (ISA, VLB, PCI)

  • Adaptec:

    • ASPI4DOS.SYS (für ISA-Karten wie AHA-1540/1542)
    • ASPI8DOS.SYS (für PCI/VLB-Karten wie AHA-2940 / 3940)
    • ASPI8U2.SYS (für Ultra2-Wide-Controller)
    • ASPIDISK.SYS (für Festplatten/Wechselmedien) und ASPICD.SYS (für SCSI-CD-ROMs)
  • Tekram:

    • DC390.SYS / DC390U.SYS (für Tekram DC-390 PCI-Serie mit Symbios/NCR-Chipsatz)

6. Grafik & VESA-Erweiterungen

  • SciTech Display Doctor (UniVBE 5.3a & 6.53): Fügt älteren SVGA-Grafikkarten (S3, Trident, Cirrus Logic, Tseng ET4000) moderne VESA 2.0/3.0 Modis hinzu. (Registrierungsschlüssel dazulegen).
  • S3VBE / NVIDIA VESA Fixes: Spezielle Patches für S3 Trio64/Virge oder RIVA 128/TNT unter DOS.
  • ScreenThief: Der Screenshot-Klassiker für DOS (fängt Grafikmodi per Hotkey ab).

7. Festplatten-, Partitions- & Disk-Tools

  • Partitionierung: XFDISK (einfacher Bootmanager + FDISK Ersatz), GDisk (Symantec), FDISK (MS-DOS 6.22 / Win98 Version mit FAT32 Support).
  • FAT32 & LFN unter DOS:
    • LFNDOS.EXE - Aktiviert lange Dateinamen unter MS-DOS 6.22/7.10
    • FAT32.EXE - Treiber für FAT32-Zugriff unter älteren DOS-Versionen
  • Imaging & Backup: Norton Ghost 2003 / 6.0 (GHOST.EXE), Drive Image, RawWrite / HD-Copy (zum Erstellen/Rückschreiben von Disketten-Images direkt unter DOS)

8. Systemdiagnose & Benchmarks

  • Speedsys 4.78: Der beste Allround-Benchmark für CPU, Cache, RAM-Durchsatz und Mainboard-Performance.
  • CheckIt 3.0 / CheckIt Pro: Gründliche Hardware-Diagnose (RAM-Test, Mainboard, IRQ/DMA-Konflikte).
  • HWiNFO for DOS / AIDA16: Detailanalyse verbauter Chipsätze und Erfassung der Hardware.
  • Spiele- / Grafik-Benchmarks: 3DBENCH, PCPBENCH, CHRISBENCH.

9. Archivierung & Medien-Player

  • Packer: PKZIP / PKUNZIP 2.04g, ARJ, RAR (DOS-Version), LHA, 7ZA (DOS-Port).
  • QuickView (QV): Universal-Viewer für DOS (spielt Bilder, Audiodateien und sogar AVI-Videos auf Retro-Hardware ab).