1.7k Aufrufe
Gefragt in PC-Sonstiges von
Hallo!

Zwei Sachen, die ich nicht verstehe:

1.
Fdisk (Linux) zeigt an, dass der Disk-Identifier meiner HDD 0x1b581b57 lautet.
Wenn ich direkt im MBR nachschaue, steht da aber 571b581b. Also rückwärts.
Warum ist das so?

2.
Ich schaffe es nicht, den Disk-Identifier mit fdisk (Linux) zu ändern. Ich gehe in den Expertenmodus und ändere ihn. Er wird dann auch als geändert angezeigt. Aber, wenn ich das Programm mit "w" verlasse, hat sich im richtigen MBR nichts geändert.
Was mache ich falsch?

Vielen Dank!

5 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo KlaraB,

das scheint ein (alter) Bug in deinem Fdisk zu sein -> Workaround

Gruß
Kalle
0 Punkte
Beantwortet von
Klasse, vielen Dank!

Zum Thema rückwärts:

Kann es sein, dass das etwas mit Litte-Endian zu tun hat?
Dann wäre die Frage, ob das so gewollt ist, dass der Identifier Little-Endian gespeichert ist, oder ob der Programmierer von fdisk einfach ohne Nachzudenken seinen Little-Endian-baisierten Compiler angewiesen hat, die Speicherstelle als dword einzulesen?
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo KlaraB,

für solche Fragen bin ich eigentlich nicht der richtige Ansprechpartner, ich hatte dir ja lediglich bei der Suche nach einer Antwort auf das Speicherproblem geholfen. ;o)

...die Speicherstelle als dword einzulesen?

Das glaube ich eher nicht, der Eintrag für den Identifier ist grundsätzlich 4 Bytes lang und entspricht damit immer der Länge eines D(ouble)Words (32 Bit).

Kann es sein, dass das etwas mit Litte-Endian zu tun hat?

Das schon eher. Die vermutlich mit einem geeigneten Hex-Editor ab Hex-Adresse 0x01B8 ausgelesenen 4 Bytes des Identifiers im MBR (57 1B 58 1B) dürften den tatsächlichen Gegebenheiten entsprechen und dann wäre die Anzeige durch Fdisk eine Anzeige des HHD-Identifiers nach Little-Endian, also beginnend mit dem gegenüber 57 niedrigeren Wert 1B.

Aber wie gesagt, das ist eigentlich nicht mein Thema und ich habe mich da jetzt nur mal aus Neugier kurz reingelesen und hoffe, dass ich dir jetzt nicht allzuviel Quatsch erzählt habe.

Die mir unter Wn7 in der Registry angezeigten Werte der HHD-Identifier stimmen übrigens exakt mit den Angaben im Hex-Editor überein. Hier scheinen Little- oder Big-Endian keine Rolle zu spielen, wobei mir der Sinn des Ganzen so auf die Schnelle ohnehin nicht so richtig einleuchten will.

Gruß
Kalle
0 Punkte
Beantwortet von
Hi Kalle!

Ich habe auch noch ein wenig rumgelesen und bin jetzt überzeugt davon, dass es Little-Endian sein muss. Es ist einfach Standard auf x86-Computern. Auch die LBA-Adressen in der Partitionstabelle sind in diesem Format.

In meiner Windows-Registry steht es auch so wie direkt auf der Disk. Es ist aber auch kein '0x' davor. In sofern ist es auch nicht falsch, sondern quasi ein Zitat im Stringformat. ;-)

PS:
Übrigens hat es nichts damit zu tun, dass 1B kleiner ist als 57. Das ist nur Zufall. Little-Endian heisst einfach, dass die Zahl rückwärts geschrieben wird. Also zuerst 256^0, dann 256^1, 256^2 etc. (1Byte=256 Zustände)
Übertragen auf das Dezimalsystem wären das ganz links zuerst die Einerstelle (10^0), dann die Zehnerstelle (10^1), die Hunderter (10^2) usw anstatt, wie wir es machen, mit der höchsten Potenz anzufangen und dann ganz rechts mit der Einerstelle aufzuhören.

Ciao Klara
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Klara,

dann hab ich heute noch etwas dazu gelernt. Danke für die Info, wer weiß, wozu´s noch mal gut ist. ;0)

Gruß
Kalle
...