Superuser

Autor Thema: Sicherung 4.2 (UFS) Dateisystem von CD-ROM in Dump-Datei  (Gelesen 3997 mal)

Offline escimo

  • Sobl Guru
  • *****
  • Beiträge: 1635
  • eiskaltes Unwissen
    • Youtube-Kanal opensparcbox.org
Hallo zusammen,

welche Verfahren kennt ihr zum Sichern des Inhaltes einer CD-ROM mit 4.2-Dateisytem (UFS) in eine Datei/Archiv/Dump unter SunOS 4.x, xBSD oder GNU/Linux? (kein CD-Abbild/Image!)

Hintergrund: der Inhalt der CD-ROM der für SunOS 4.x nötig ist (SPARCompiler 2.0), soll später mit "mkisofs" in einem separatem ISO-Image über TME mit installiertem SunOS 4.1.3 eingehangen (mount) werden.

Ich konnte den Inhalt der CD-ROM bereits erfolgreich in ein RAW-Abbild mit dem Programm Brasero unter Ubuntu 10.04 (GNU/Linux) sichern und auch wieder erfolgreich auf das beschreibbare Medium (CD-R/W) bannen und im Dateisystem unterhalb SunOS 4.x auf der SS2 einhängen (mount). Das RAW-Abbild lässt sich leider nicht in TME mounten. Eine "einfache" Sicherung (ISO-Abbild) der CD-ROM mit dem selben Programm führt zu einem defekten CD-Abbild, welches später nicht unter SunOS 4.x weder auf der SS2 noch unter TME eingehängt werden konnte.

Die folgenden Varianten erwiesen sich unter SunOS 4.x ebenso als Fehlschlag:
# mount -trv 4.2 /dev/sr0 /cdrom ; cp -pR /cdrom /home/me/ ; umount /cdrom
# #Keine symbolischen Links vorhanden nach Kopiervorgang!
# cat /dev/sr0 > /home/me/cd.img
# ls -l /home/me/cd.img
-rw-r--r-- 1 root    577382400 Mar  4 03:18 /home/me/cd.img
# dd if=/dev/sr0 bs=512 of=/home/me/cd.img
-rw-r--r-- 1 root    577382400 Mar  4 03:18 /home/me/cd.img
# #Beide Images konnten nach dem Brennen nicht auf dem Zielsystem eingehangen (mount) werden


Bisweilen konnte ich mir unter SunOS 4.1.4 auf zwei Arten helfen:
[1] Ungünstige Variante mit Program cpio
$ su -
# mount -trv 4.2 /dev/sr0 /cdrom
# cd /cdrom
# ls
Solaris_1.0 Solaris_2.0
# find Solaris_1.0 -print | cpio -ocvdumB > /home/me/SC201-S1.cpio
# compress SC201-S1.cpio
"Ungünstig" desshalb, weil mit dieser Methode (alternativ tar) alle symbolischen Links dereferenziert werden. Das bedeutet, im 4.2-Dateisystem vorhandene, symbolischen Links werden aufgelöst indem eine Kopie der referenzierten Datei mit der Bezeichnung des symbolischen Links im relativen Pfad angelegt/erstellt wird. Das führt wiederum dazu, dass die Sicherung (cpio-Datei) mehr Speicherplatz benötigt als tatsächlich nötig wäre und eigentliche Referenzierung geht verloren.

[2] Vollständige Variante mit Programmen dump/restore (ab SunOS 5.x: ufsdump/ufsrestore)
$ su -
# umount /cdrom
# Sicherung dump(8) SunOS 4.x
toosy# dump 0f - /dev/sr0 > dmp
  DUMP: Date of this level 0 dump: Sun Mar  4 00:10:13 2012
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/sr0 to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 601128 blocks (293.52MB) on 8.27 tape(s).
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: 599562 blocks (292.75MB) on 1 volume
  DUMP: DUMP IS DONE
toosy# ls -l dmp
-rw-r--r--  1 root     306974720 Mar  4 00:14 dmp

# Wiederherstelung restore(8) SunOS 4.x
toosy# restore xfvy - Solaris_1.0 </home/me/dmp
Verify volume and initialize maps
Dump   date: Sun Mar  4 00:10:13 2012
Dumped from: the epoch
Level 0 dump of an unlisted file system on toosy:/dev/sr0
Label: none
Extract directories from tape
Initialize symbol table.
Warning: ./Solaris_1.0: File exists
Make node ./Solaris_1.0/bin
Make node ./Solaris_1.0/SC2.0.1_SunC++
Make node ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1
Make node ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/README
[...]
Make node ./Solaris_1.0/SC2.0.1_SunC/_text
Extract requested files
extract file ./Solaris_1.0/bin/Session.icon
extract file ./Solaris_1.0/bin/cdruninstall
extract file ./Solaris_1.0/bin/extract_unbundled
extract file ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_411/arpa/nameser.h
extract file ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_411/rfs/ns_xdr.h
extract file ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_411/rfs/rfs_xdr.h
extract file ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_411/sparc/asm_linkage.h
extract file ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_411/sun4c/debug/asm_linkage.h
extract file ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_412/hsfs/hsfs_spec.h
Create symbolic link ./Solaris_1.0/SC2.0.1_SunC++/SC2.0.1/include/cc_412/hsfs/hsnode.h->../../cc_411/hsfs/hsnode.h
[...]
Add links
Set directory mode, owner, and times.
set owner/mode for '.'? [yn] y
toosy# ls -l
total 1
drwxr-xr-x 18 root          512 Mar  4 01:25 Solaris_1.0
toosy# du -s Solaris_1.0
131636 Solaris_1.0

Wie geht ihr beziehungsweise würdet ihr vorgehen?

Viele Grüße,
escimo
« Letzte Änderung: 04. März 2012, 11:31:51 von escimo »

sonnenblen.de - Das unabhängige Sun User Forum


Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: Sicherung 4.2 (UFS) Dateisystem von CD-ROM in Dump-Datei
« Antwort #1 am: 05. März 2012, 21:49:43 »
Wenn das Endergebnis ein ISO-Image sein soll, was spricht denn dagegen einfach mkisofs über die gemountete CD-ROM laufen zu lassen?
Ich habe es jetzt nicht praktisch erprobt, sehe aber auf Anhieb keinen Grund warum es so nicht funktionieren sollte:
mount -trv 4.2 /dev/sr0 /cdrom
mkisofs -o SC201-S1.iso -R /cdrom


Offline escimo

  • Sobl Guru
  • *****
  • Beiträge: 1635
  • eiskaltes Unwissen
    • Youtube-Kanal opensparcbox.org
Re: Sicherung 4.2 (UFS) Dateisystem von CD-ROM in Dump-Datei
« Antwort #2 am: 06. März 2012, 15:06:13 »
Mir fehlt das passende Binary von mkisofs für SunOS 4.x. Ein xBSD habe ich auch nicht zur Hand bzw. installiert. Eine Übersetzung über den bei SunOS 4.x mitgelieferten cc (C-Compiler) sollte dennoch machbar sein:
Zitat
It seems that at there is a structure alignment problem
with the structure scsi_cmd at least with gcc.

If you get a message: 'XXX

If you want to run cdrecord on SunOS 4.x on a sparc system
please make sure that you are using the old Sun cc
by typing:

   make CCOM=cc
Quelle: http://cdrecord.berlios.de/private/man/README/README.sunos

Ich probiere es aus. Danke.