Alte Dosplatten mit DRVSPACE oder DBLSPACE unter Ubuntu Linux

Hab vorhin eine alte Festplatte bekommen von der ich ein paar Daten retten sollte. Anschließen der Platte war kein Problem, beim Blick auf die Partition stellte sich jedoch heraus das DBLSPACE verwendet wurde… Da das FAT Kernelmodul kein DBLSPACE kann und die externen Module nicht mehr mit 2.6.x funktionieren musste eine andere Lösung her. Meine Suche im Netz ergab diese Seite

Falls die Seite mal offline sein sollte hier nochmal kurz was man machen muss:

  • aptitude install mtools dosemu
  • Da DBLSPACE per Low-Level-Api auf die Dateien zugreift muss ein Festplattenimage erstellt werden. Das geht mit:
    mkfatimage16 -k $((`stat -c%s /path/to/dblspace.000` / 1023)) -f /path/to/newimage /path/to/dblspace.000
    1023 damit die Partition etwas größer ist als die Datei die rein soll.
  • dosemu hat bei mir beim ersten Start ein Verzeichnis ~/.dosemu erstellt. Da drin befindet sich ein Verzeichnis drive_c. In das ‚drive_c‘-Verzeichnis kommen die ‚io.sys‘, ‚msdos.sys‘, ‚command.com‘, ‚drvspace.ini‘ und ‚drvspace.bin‘ von der Festplattenpartition. Alle vorher vorhandenen Dateien sollte man löschen da sonst Fehler auftreten können. Die ‚drvspace.ini‘ muss evtl. noch angepasst werden. Wichtig ist die ActivateDrive-Anweisung. Hinter dem ‚=‘ kommt hier zuerst das Laufwerk auf das die Daten gemapped werden sollen, dann ein Komma und dann der Name der Partion auf der die Daten liegen gefolgt von der Nummer der DRVSPACE Datei. Dies sieht dann in meinem Beispiel so aus:

AutoMount=0
MaxRemovableDrives=2
FirstDrive=E
LastDrive=P
MaxFileFragments=118
ActivateDrive=H,D0

  • Anschließend muss das Festplattenimage noch Dosemu bekannt gemacht werden. Dies geht am einfachsten, durch das anlegen einer ~/.dosemurc mit ungefähr folgendem Inhalt:
    $_hdimage = „/home//.dosemu/drive_c /path/to/newimage“
  • Nun kann man dosemu starten und auf die Daten zugreifen. Will man die Dateien sichern so kopiert man sie auf Laufwerk c: und kann sie dann außerhalb von dosemu aus dem ‚drive_c‘ holen.