Seite 1 von 2

Software um Filesystem aus RDB zu extrahieren

Verfasst: 29.12.2009, 18:21
von KillaByte
Tach,

gibts eigentlich ein Programm mit dem man in den RDB eingebettete Filesysteme wieder von da extrahieren kann?

Verfasst: 30.12.2009, 07:57
von Dennis
HDToolbox müsste das können. Da über den Add/Update-Filesystem Button gehen.

Eigentlich findet sich im RDB aber nichts, was da nicht vorher von einer anderen Quelle reingekommen wäre. :)

Verfasst: 30.12.2009, 14:28
von KillaByte
Dass man mit HDToolBox ein FS im RDB einbetten kann weiß ich - nur ob mans damit auch wieder rausbekommt bezweifle ich. Nuja - mal ausprobieren.

EDIT:
Also mit der OS 3.9 HDToolBox scheints nicht zu gehen.

Verfasst: 30.12.2009, 14:56
von gunatm
Wenn ich es richtig verstanden habe, wird das FS nicht direkt im RDB abgelegt. Der RDB zeigt nur darauf.
Unlike its PC equivalent, the RDB doesn't directly contain metadata for each partition.
Daher wird das mit dem Extrahieren nicht ganz so einfach.

Link: http://en.wikipedia.org/wiki/Amiga_Rigid_Disk_Block

Link: http://www.amiga-magazin.de/magazin/a04 ... ttung.html Hier wird es nicht ganz so genau klar. Ein spannendes Thema ... danke.
The so-called "Rigid Disk" partitioning scheme is used on hard disks and sometimes(?) on removable media like Zip disks. The Rigid Disk block can be located anywhere within the first 16 sectors of the disk. The structure itself is only 256 bytes in size and contains a pointer to a linked list of partition descriptors. Each of these is also 256 bytes in size, is located in a sector of its own somewhere on the disk, and contains a pointer to the next such descriptor.
Hier ist es genauer ... Pointer - die dunkle Seite der Macht wie mein Kollege Axel Großklaus zu sagen pflegte.

Link: http://disktype.sourceforge.net/doc/ch03s01.html

Verfasst: 30.12.2009, 15:11
von thomas
Wenn ich es richtig verstanden habe, wird das FS nicht direkt im RDB abgelegt.
Du hast es nicht richtig verstanden. Klar, Dateisysteme sind meistens 50 bis 100 KB groß, die können nicht in "dem" Rigid Disk Block, dem ersten Block der Festplatte gespeichert werden. Aber im Allgemeinen bezeichnet man die komplette Partitionstabelle inklusive aller Daten, die man mit der HDToolbox ändern kann, als RDB. Und dort ist natürlich auch der Code der Dateisysteme gespeichert.

Wenn du schon Links angibst, solltest du sie auch bis zum Ende lesen. Z.B. auf der Wikipedia-Seite ist ein externer Link, der die Struktur ziemlich genau beschreibt. Abschnitte 6.4 und 6.5 zeigen, wie Dateisysteme gespeichert werden.

Gruß Thomas

Verfasst: 30.12.2009, 15:22
von gunatm
Danke schön ... ganz glücklich bin ich mit deiner Formulierung noch nicht. Ich schaue mir den Link mal an.

Dort gespeichert. Wo ist dort? Die Formulierung "Block" wird dem wohl nicht ganz gerecht. Wie du selber sagtest, werden die Filesysteme nicht im RDB gespeichert aber die Daten des "wo" im FSHD. Wird das Filesystem direkt mit seinem kompletten Code im FSHD gespeichert? Oder ist das auch nur ein Pointer? Ich habe noch ein wenig verständnisprobleme, aber vieleicht kann mir geholfen werden.

Ich weiß, was du mit RDB als Einheit meinst, und warum man sich nicht nur auf den Bootblock sondern auf die Struktur einigen sollte.

Nachtrag: Ich habe es verstanden. Das FS liegt natürlich im Kickstart. Wird das hier der Zusammenfassung gerechter? LInk: http://www.viswiki.com/en/Amiga_Rigid_Disk_Block Da hat jemand sich an einer Zusammenfassung des Artikels bemüht.
The reserved area is often the 2 first cylinders, between the 'RDB_BlockLo' block and the 'RDB_BlockHi' block, included. The partitionable area, starts at the 'LoCylinder' cylinder until the 'HiCylinder' cylinder, included.
Ich muß mich noch mehr einlesen.

Nachtrag37: Es kann wohl im RDB auch gespeichert werden ...

Verfasst: 30.12.2009, 16:40
von thomas
Der RDSK enthält Zeiger auf den ersten PART, den ersten FSHD und den ersten BADB. Der PART enthält alle Einträge einer traditionellen Mountlist sowie einen Zeiger auf den nächsten PART. FSHD enthält Informationen *über* das Dateisystem sowie einen Zeiger auf den ersten LSEG. Jener enthält den Code des Dateisystems, soviel wie eben in einen Block paßt und einen Zeiger auf den nächsten LSEG, wo der Code weitergeht.

Als "Zeiger" werden hier einfach die Blocknummern bezeichnet.

Die Blöcke sind übrigens recht ausführlich kommentiert in devices/hardblocks.h aufgelistet. Da braucht man nicht umständlich im Internet suchen und bekommt Informationen aus erster Hand.

Das Abspeichern des Dateisystems aus dem RDB sollte recht einfach zu bewerkstelligen sein. Es muß nur einer ein Programm schreiben.

Gruß Thomas

Verfasst: 30.12.2009, 18:14
von gunatm
Du bist spitze! Danke. :)

Gruß Gunnar

Verfasst: 30.12.2009, 18:45
von KillaByte
OK - gibt also anscheinend noch nix :)

Gut, muss ich mal reinschauen wenn ich Zeit und Lust hab.

Verfasst: 30.12.2009, 19:43
von thomas
Ist es sehr dringend ?

Mit der HDToolbox von OS 3.5 oder 3.9 kann man den ganzen RDB als Mountdatei abspeichern. Dabei werden auch die Dateisysteme gespeichert.

Ansonsten könnte ich natürlich so ein Programm schreiben. Dauert nur seine Zeit.

Gruß Thomas

Verfasst: 30.12.2009, 19:58
von huepper
thomas hat geschrieben:Ist es sehr dringend ?

Mit der HDToolbox von OS 3.5 oder 3.9 kann man den ganzen RDB als Mountdatei abspeichern. Dabei werden auch die Dateisysteme gespeichert.

Ansonsten könnte ich natürlich so ein Programm schreiben. Dauert nur seine Zeit.

Gruß Thomas
Egal ob dringend oder nicht, aber es wäre sicher schön, wenn wir solch ein Programm "erhalten" würden. ;)
Der ein oder andere kann es sicher gebrauchen.

Verfasst: 30.12.2009, 20:24
von thomas
Ging schneller als gedacht. Wenn man schonmal ein Gerüst hat...

http://thomas-rapp.homepage.t-online.de ... eadRDB.lha

Beispiel:

readrdb scsi.device 0 filesysdir ram:

Speichert alle Dateisysteme von der internen IDE-Festplatte in die Ram-Disk.

Gruß Thomas

Verfasst: 30.12.2009, 22:32
von huepper
Irgendwer hier im Thread hat gesagt "dauert seine Zeit". :D
Wahnsinn, werds gleich mal probieren, mal sehen ob das auch am cybppc.device funktioniert. ;)

Verfasst: 31.12.2009, 01:08
von KillaByte
@thomas:
Hatte ich schon erwähnt, dass du der Beste bist? :tup:

Sehe ich das richtig, dass er nur die Infos ausgibt, wenn man filesystdir weglässt?

Verfasst: 31.12.2009, 08:56
von thomas
KillaByte hat geschrieben:@thomas:
Sehe ich das richtig, dass er nur die Infos ausgibt, wenn man filesystdir weglässt?

Ja, dafür war das Program gedacht, zum Auslesen der Informationen aus dem RDB. Deshalb nannte ich es ein Gerüst. Die Funktion zum Speichern der Dateisysteme habe ich gestern hinzugefügt.

Gruß Thomas