Ein wunderschönen guten Tag ! (richtig schönes Mistwetter hier, in Brüssel). Na ja, um ein bisschen zum Thema zurückzukommen (ist zwar nicht spezifisch SuSE, aber doch Linux, und wenn es zu sehr OT ist -- sorry) Also, in extfs2, so hab ich's im Linux Kernel Internals gelesen) gibt es den Direkt (also im inode selbst) mit Adressierung von 12 Blöcken, den single indirekt mit noch einmal 12, double indirekt mit 12x12 und den triple indirekt mit 12x12x12 adressierte Blöcken. Nur, mit einer Blockgrösse von 4k (was ja relativ standard ist) macht das aus das maximal 12x2 + 12x12 + 12x12x12 also run 1200 Blöcke in einer Datei adressiert werden, also keine 5 MB (obwohl zu dieser Zeit e2fs Dateien von max. 2GB ermöglichte). Da hab ich ganz klar was nicht verstanden. Wenn da jemand mehr zum Thema weiss... gerne ! :-) (btw : Sinn der Sache ist gelöschte Dateien zurück zu kriegen -- yep Ext2fs-Undeletion-Howto ausprobiert, aber, ich möcht's lieber verstehen bevor es heiss wird) Ein schönen Tag noch, Mfg, Gerd -- Gerd-Christian Michalke gmichalk@freegates.be \\_// +32 497/44.57.27 (. .) Do you Linux ? --------------------------------------oOOo-oOOo----------------------
Gerd-Christian Michalke wrote:
Also, in extfs2, so hab ich's im Linux Kernel Internals gelesen) gibt es den Direkt (also im inode selbst) mit Adressierung von 12 Blöcken, den single indirekt mit noch einmal 12, double indirekt mit 12x12 und den triple indirekt mit 12x12x12 adressierte Blöcken.
Noe, Zahlen falsch: /usr/share/doc/howto/en/html/mini/HOWTO/mini/Ext2fs-Undeletion-Dir-Struct/index.html "* The block numbers of the first 12 data blocks are stored directly in the inode; these are sometimes referred to as the direct blocks. * The inode contains the block number of an indirect block. An indirect block contains the block numbers of 256 additional data blocks. * The inode contains the block number of a doubly indirect block. A doubly indirect block contains the block numbers of 256 additional indirect blocks. * The inode contains the block number of a triply indirect block. A triply indirect block contains the block numbers of 256 additional doubly indirect blocks. Read that again: I know it's complex, but it's also important." Peter
* Gerd-Christian Michalke schrieb am 07.Aug.2002:
(richtig schönes Mistwetter hier, in Brüssel).
Huch, hier in Mönchengladbach ist es seit Tagen mal wieder ein richtig schöner Tag. Ernsthaft, ohne Ironie.
Also, in extfs2, so hab ich's im Linux Kernel Internals gelesen) gibt es den Direkt (also im inode selbst) mit Adressierung von 12 Blöcken, den single indirekt mit noch einmal 12, double indirekt mit 12x12 und den triple indirekt mit 12x12x12 adressierte Blöcken.
Nein, nein. Es gibt 12 direkte Adressen (hoffe, daß stimmt so, habe ich nicht überprüft) eine Adresse auf einen einfach inderekten Block, eine Adresse auf einen zweifach inderekten Block und eine Adresse auf einen dreifach inderekten Block.
Nur, mit einer Blockgrösse von 4k (was ja relativ standard ist) macht das aus das maximal 12x2 + 12x12 + 12x12x12 also run 1200 Blöcke in einer Datei adressiert werden, also keine 5 MB (obwohl zu dieser Zeit e2fs Dateien von max. 2GB ermöglichte).
Nein, so eine Adresse ist doch bloß ein paar Byte groß, in 4k gehen aber eine ganze Menge Byte. Um es noch klarer zu machen. Die Partition auf der Platte ist neben den Superblöcken unterteilt in einem I-Node-Teil und in einem Datenblock-Teil. Im I-Node-Teil stehen die I-Nodes. Für jede Datei genau eine, egal wie groß die Datei ist. Im Datenblockteil stehen die Datenblöcke. Die Adresse des ersten Datenblocks steht in der ersten direkten Adresse der I-node, der zweite Datenblock in der zweiten direkten Adresse der I-node usw. bis hin zum zwölften Datenblock. Natürlich nur solange benötigt wird. Reicht das nicht, so verweißt die einfach indirekte Adresse der I-node auf einen Datenblock, in dem keine Daten stehen, sondern Adressen von Datenblöcke. Und zwar von Datenblock 13 bist was weiß ich. Jedenfalls eine ganze Menge. Reicht auch das nicht, so steht in der doppelt indirekten Adresse die Adresse auf einen Datenblock, in dem Adressen auf Datenblöcke stehen, in denen die Adressen der eigentlichen Datenblöcke stehen. Und dann gibt es auch noch den dreifach indirekte Adresse.
Da hab ich ganz klar was nicht verstanden. Wenn da jemand mehr zum Thema weiss... gerne ! :-) (btw : Sinn der Sache ist gelöschte Dateien zurück zu kriegen -- yep Ext2fs-Undeletion-Howto ausprobiert, aber, ich möcht's lieber verstehen bevor es heiss wird)
Schönes suchen. Ich schätze mal, daß Du im günstigsten Falle im lost+found die Dateien zurückbekommst, die aber #i-node-nummer heißen. Also etwa #4711 oder so. Denn der Name steht weder in der I-Node noch sonstwo in der Datei, sondern nur im Verzeichnis. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11
Hallo, On Wed, 07 Aug 2002, Bernd Brodesser wrote:
Da hab ich ganz klar was nicht verstanden. Wenn da jemand mehr zum Thema weiss... gerne ! :-) (btw : Sinn der Sache ist gelöschte Dateien zurück zu kriegen -- yep Ext2fs-Undeletion-Howto ausprobiert, aber, ich möcht's lieber verstehen bevor es heiss wird)
Schönes suchen. Ich schätze mal, daß Du im günstigsten Falle im lost+found die Dateien zurückbekommst, die aber #i-node-nummer heißen. Also etwa #4711 oder so. Denn der Name steht weder in der I-Node noch sonstwo in der Datei, sondern nur im Verzeichnis.
Welches man ja auch auslesen kann und so wieder dem inode einen Namen zuweisen kann. s.a. /usr/include/linux/ext2_fs.h, struct ext2_dir_entry[_2]. Achso, eben in der Datei findet sich auch: #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof(__u32)) d.h. bei einer Blockgroesse von 4k und sizeof(__u32) == 4 kann ext2 Dateien bis zu einer Groesse von 12 + 1k + 1k * 1k + 1k*1k*1k Bloecke verwalten, also 4402345721856 Bytes, also ca. 4 TB. Die Beschraenkung auf 2 GB lag daran, dass (u.a. in der glibc) nur 32bit fuer Dateioffsets verwendet wurden. Ab glibc-2.1.x gibt's die Moeglichkeit 64bit zu verwenden. -dnh --
Die Probleme dieser Welt begannen, als der erst kam! Der erste was? M-e-n-s-c-h [in detebe]
On Mittwoch 7. August 2002 17:58, Bernd Brodesser wrote:
* Gerd-Christian Michalke schrieb am 07.Aug.2002:
(richtig schönes Mistwetter hier, in Brüssel).
Huch, hier in Mönchengladbach ist es seit Tagen mal wieder ein richtig schöner Tag. Ernsthaft, ohne Ironie.
Mei, mei, mei ;-)
Also, in extfs2, so hab ich's im Linux Kernel Internals gelesen) gibt es den Direkt (also im inode selbst) mit Adressierung von 12 Blöcken, den single indirekt mit noch einmal 12, double indirekt mit 12x12 und den triple indirekt mit 12x12x12 adressierte Blöcken.
Nein, nein. Es gibt 12 direkte Adressen (hoffe, daß stimmt so, habe ich nicht überprüft) eine Adresse auf einen einfach inderekten Block, eine Adresse auf einen zweifach inderekten Block und eine Adresse auf einen dreifach inderekten Block.
Full ACK. So auch verstanden, aber miserabel ausgedrückt.
Nur, mit einer Blockgrösse von 4k (was ja relativ standard ist) macht das aus das maximal 12x2 + 12x12 + 12x12x12 also run 1200 Blöcke in einer Datei adressiert werden, also keine 5 MB (obwohl zu dieser Zeit e2fs Dateien von max. 2GB ermöglichte).
Nein, so eine Adresse ist doch bloß ein paar Byte groß, in 4k gehen aber eine ganze Menge Byte.
[...] Aha, so laüft der Hase. Das mit den Datenblöcken die zur indirekten Adressierung benutzt werden im Databereich steht hatte ich nicht verstanden (hoffe dieser Satz macht etwas Sinn).
Da hab ich ganz klar was nicht verstanden. Wenn da jemand mehr zum Thema weiss... gerne ! :-) (btw : Sinn der Sache ist gelöschte Dateien zurück zu kriegen -- yep Ext2fs-Undeletion-Howto ausprobiert, aber, ich möcht's lieber verstehen bevor es heiss wird)
Schönes suchen. Ich schätze mal, daß Du im günstigsten Falle im lost+found die Dateien zurückbekommst, die aber #i-node-nummer heißen. Also etwa #4711 oder so. Denn der Name steht weder in der I-Node noch sonstwo in der Datei, sondern nur im Verzeichnis.
ACK. Ich hoffe nur das die Blöcke nicht anderweitig benutz wurden oder, wie es fruher der Fall war, das die Indirekt Blöcke auf null gesetzt werden... So, und jetzt auf und ab un /usr/src/linux.
Bernd
Auf jeden Fall, allen ein ganz grosses Dankeschön ! Ich würde zwar auch gerne ein bissel mehr mithelfen aber na ja... kommt noch ;-) Ein schönen Tag, noch ! Gerd -- Gerd-Christian Michalke gmichalk@freegates.be \\_// +32 497/44.57.27 (. .) Do you Linux ? --------------------------------------oOOo-oOOo----------------------
participants (4)
-
B.Brodesser@t-online.de
-
David Haller
-
Gerd-Christian Michalke
-
Peter Wiersig