Re: Softraid - grundsätzliche Frage
Moin beisammen,
jetzt hab ich mal wieder eine Testreihe durchgeführt. Hier die
Erkenntnisse, die ich gewonnen habe:
Martin Steigerwald, Freitag, 20. Juli 2012:
> > drinhängt, egal ob als sdb oder als sda.
>
> Ich hätte gerne mal fdisk -l für sda und sdb und cat /proc/mdstat.
>
> Kann nicht sagen, ob es was bringt, aber ich möchte jetzt wirklich erst
> nochmal genau Dein Setup sehen.
Kriegst Du - hier die Partitionierung [¹], hier das Raid [²]. Und wenn
wir schon dabei sind - hier df -hT [³].
> Naja, hab ich doch gezeigt. Das core.img liegt als Datei in /boot/grub
> und dessen Inhalt muss halt irgendwo hinter dem MBR wieder auftauchen.
> Ich hab hier nur halt einen Teil überprüft.
>
> Es könnte auch weiter hinten noch kaputt sein. Mit dem Wissen, wo es
> genau anfängt und wie lange es ist, ließe es sich mit dd in eine Datei
> speichern und diese dann mit /boot/grub/core.img vergleichen.
Sorry, das hatte ich nicht genau genug gelesen. Aber jetzt habe ich das
nochmal überprüft (jetzt kenne ich dd, xxd, diff und cmp genau ;) )
Im Einzelnen:
- Direkt nach einer Installation einer Minimal-Squeeze liegt core.img
auf sda, beginnend mit dem 513. Byte, insgesamt 27270 Bytes lang.
Auf sdb liegt core.img nicht, die Bytes 513-27782 stimmen nicht mit
core.img überein, und zwar schon nach dem 2. Byte.
- ein dpkg-reconfigure grub-pc führt dazu, daß die Bytes 513-27782 von
sda und sdb übereinstimmen, und diese stimmen wiederum mit der
core.img überein.
- anders als in einem früheren Beitrag geschrieben stimmen aber sowohl
direkt nach einer Neuinstallation, als auch nach einem anschließenden
dpkg-reconfigure grub-pc die ersten 440 Bytes von sda und sdb nicht
überein. Der Abschnitt für den Bootloader differiert also.
Daraufhin habe ich gemacht
dd if=/dev/sda of=/dev/sdb bs=512 count=1
Ergebnis:
# cmp /dev/sda /dev/sdb
/dev/sda /dev/sdb differieren: Byte 33281, Zeile 98.
Also sind Bootloader, Partitionstabelle, core.img und noch weitere
5499 Bytes nunmehr identisch.
Trotzdem bootet die Kiste nicht von der urspr. sdb, der Effekt ist wie
immer: ununterbrochene Neustarts. Hänge ich stattdessen die urspr. sda
wieder rein (egal an welchen Port, also so wie ursprünglich
installiert, oder vertauscht), dann startet Kiste und RAID ganz
normal.
Festzuhalten ist also: Der Bootloader-Abschnitt im MBR auf beiden Platten
unterscheidet sich vor und auch nach einem dpkg-reconfigure grub-pc, und
übrigens auch nach einem grub-install /dev/sda bzw. sdb. Das core.img
aber kann auf diese Weise auf sdb untergebracht werden. Auf sda ab Byte
513 landet das core.img dagegen nach der Installation von selbst.
Der Grund, warum die Kiste nicht starten will, muß also irgendwo weiter
hinten ab Byte 33281 liegen. Da wiederum kenne ich mich nicht genau
genug aus, keine Ahnung, was dort abgelegt ist.
> Aber an sich sollte das ja tun, es sei denn Du hast da noch Windows
> drauf und eine Software die unter Kopierschutz versteht, hinter MBR und
> vor 1. Partition ein paar Daten reinzumalen und damit GRUB zu
> überschreiben. Das dürfte aber hier auch nicht der Fall sein.
Nein, das ist nicht der Fall. Die Platten haben Windows noch nie
gesehen.
Tja, es bleibt festzuhalten: ich verstehe schlicht nicht, was eine Kiste
zum starten braucht. MBR + core.img stimmen überein, weiter hinten
sollten die Platten wg. RAID ebenfalls übereinstimmen, und doch
unterscheiden sie sich auf eine für den Start relevante Weise.
Freue mich über jede Erhellung.
Gruß+schönen Sonntag,
Andre
[1]
# fdisk -l /dev/sda
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d52c6
Device Boot Start End Blocks Id System
/dev/sda1 1 25 194560 fd Linux raid
autodetect
Partition 1 does not end on cylinder boundary.
/dev/sda2 25 268 1952768 fd Linux raid
autodetect
Partition 2 does not end on cylinder boundary.
# fdisk -l /dev/sdb
Disk /dev/sdb: 320.1 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002508c
Device Boot Start End Blocks Id System
/dev/sdb1 1 25 194560 fd Linux raid
autodetect
Partition 1 does not end on cylinder boundary.
/dev/sdb2 25 268 1952768 fd Linux raid
autodetect
Partition 2 does not end on cylinder boundary.
[2]
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0] sdb2[1]
1951732 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
194548 blocks super 1.2 [2/2] [UU]
unused devices: <none>
[3]
# df -hT
Dateisystem Typ Size Used Avail Use% Eingehängt auf
/dev/mapper/vg-vg--root
ext3 1,9G 684M 1,1G 39% /
tmpfs tmpfs 1002M 0 1002M 0% /lib/init/rw
udev tmpfs 996M 168K 996M 1% /dev
tmpfs tmpfs 1002M 0 1002M 0% /dev/shm
/dev/md0 ext3 184M 22M 153M 13% /boot
--
Andre Tann
Reply to: