Umgang mit Image-Dateien
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:

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-9plus 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.
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 klassischEMM386.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) oderDOSKEY /INSERTfü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) +SBBASICTreiber-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) undASPICD.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.10FAT32.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).