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