Ich habe gerade die Einrichtung eines CentOS 6.3 64-Bit-Servers mit mdadm abgeschlossen, aber eine Glühbirne ging an und ich erkannte, dass grub nur auf dem ersten Laufwerk installiert werden würde, das ungefähr so viel genutzt wird, und einem Aschenbecher auf einem Motorrad.
Ich habe nachgesehen, um meinen Verdacht zu bestätigen:
grub> find /grub/stage1
find /grub/stage1
(hd0,0)
Also habe ich meine Gerätekarte so aktualisiert, dass sie wie folgt aussieht:
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
(Beachten Sie, dass der Eintrag (hd1) von mir hinzugefügt wurde
Also habe ich versucht, grub auf / dev / sdb zu installieren
Und ich bekomme:
grub> root (hd1,0)
root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no
Error 15t: File not found
Also habe ich ein bisschen gegoogelt (Leider hat Google gerade gute Arbeit geleistet und Hunderte von Grub-Installationsbeispielen aufgegriffen, die hier nicht helfen).
Nachdem ich ein paar Hinweise gefunden hatte, versuchte ich:
# grub-install --recheck /dev/sdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
# grub-install /dev/sdb
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
Welche Art von schlägt vor, dass grub jetzt auch auf / dev / sdb installiert ist, aber wenn ich es mir noch einmal anschaue, bekomme ich immer noch:
grub> find /grub/stage1
find /grub/stage1
(hd0,0)
getrennte Ausgänge für die 2 Laufwerke:
SDA
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500MB 500MB ext3 1 boot
2 500MB 81.0GB 80.5GB 2 raid
3 81.0GB 85.0GB 4000MB 3 raid
4 85.0GB 3001GB 2916GB 4 raid
SDB
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500MB 500MB ext3 1
2 500MB 81.0GB 80.5GB 2 raid
3 81.0GB 85.0GB 4000MB 3 raid
4 85.0GB 3001GB 2916GB 4 raid
Und mdadm mdstat:
Personalities : [raid1]
md1 : active raid1 sdb3[1] sda3[0]
3905218 blocks super 1.1 [2/2] [UU]
md2 : active raid1 sdb4[1] sda4[0]
2847257598 blocks super 1.1 [2/2] [UU]
md0 : active raid1 sda2[0] sdb2[1]
78612189 blocks super 1.1 [2/2] [UU]
Kann jemand etwas Licht in die Situation bringen, fühlt es sich so an, als wäre ich im Moment zu 99% da und vermisse etwas Offensichtliches.
Vielen Dank.
Update bearbeiten:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md0 74G 18G 53G 25% /
tmpfs 580M 0 580M 0% /dev/shm
/dev/sda1 462M 98M 341M 23% /boot
xenstore 580M 64K 580M 1% /var/lib/xenstored
/ ist auf md0, das aus sda2 besteht, und sdb2 swap ist md1, was sda3 ist, und sdb3 md2 ist LVM, aber / boot ist nur auf / sda1
Ich nehme an, das ist das Problem, wäre die Auflösung, md4 zu erstellen und es sd a 1 und sd b 1 enthalten zu lassen
Vielleicht habe ich etwas durcheinander in meinem Kopf, aber ich nahm an, dass grub nicht auf einer Partition installiert war, sondern auf den ersten Blöcken des Laufwerks, dh sda oder hd0 / 1
Jede Klarstellung und Beratung wird geschätzt.
grub-install /dev/sdX
für die separaten Festplatten laufen . Weil es beim Booten kein md-Gerät gibt. Der Bootfloader von grub wird in den ersten Blöcken der Festplatte installiert , die späteren Phasen werden jedoch in der Partition / boot _partition gespeichert. Weil all diese ausgefallenen Menüs nicht in den Raum vor der Partitionstabelle passen.Antworten:
Dies sollte Ihr Problem sein
Führen Sie die folgenden Schritte aus:
Erzwinge, dass die Festplatten ein brandneuer Überfall sind:
Verwenden Sie beim Erstellen der RAID-Metadaten, die Ihre / boot-Partition sein werden, die Version 0.9. Linux kann neuere Versionen nicht automatisch erkennen (ohne Ramdisk).
Formatieren Sie mit ext2 oder ext3
Nach dem ersten Start Ihrer Distribution:
Installieren Sie grub auf dem MBR mit 2 Festplatten
Bearbeiten Sie Ihren Bootloader (Anweisungen zu Grub1)
Suchen Sie in der Zeile "Standard" und fügen Sie unten die Option "Fallback" hinzu
Fügen Sie Ihrem Bootloader einen weiteren Eintrag hinzu (in meinem Fall habe ich wieder grub1 gewählt, da es weniger kompliziert ist und meinen Anforderungen entspricht), wobei jeder auf die verschiedenen Boot-Partitionen verweist, die Mitglieder des Raids sind:
Beachten Sie, dass ich in meinem Fall eine LVM-Ebene auf meinem / md-Raid habe.
Erledigt. Dies sollte ausreichen, um einen "redundanten" Bootloader zu haben.
quelle
Ob Sie diese beiden Laufwerke einem anderen raid1-Array zuordnen möchten, liegt bei Ihnen. Dies ist eine legitime Wahl, da Sie dann grub
md4
direkt installieren können und die Mühe vermeiden müssen, beide Installationen manuell zu verwalten. Ich habe es geschafft ™.Nach meiner Erfahrung ist die Gerätezuordnungsdatei weitgehend irrelevant und ihr Verhalten (wie Grub sie liest) ist bestenfalls unvorhersehbar, wenn nicht geradezu willkürlich.
Der
device
Befehl von der Madenschale ist viel zuverlässiger. Sie können die Hilfeinformationen lesen, aber die grundlegende Syntax spricht für sich:Danach wird / dev / md4
hd0
in der aktuell ausgeführten Grub-Sitzung zugeordnet, wobei die Gerätezuordnungsdatei nicht berücksichtigt wird . Von hier aus würde man wie gewohnt mitroot (hd0)
und fortfahrensetup (hd0,x)
. Der Grund für die Installation auf einer Partition wird von Henry S. erläutert.AFAIK, das einzige, was neben dem "Boot-Code" (Stufe 1), der in die ersten 512 Bytes des Laufwerks (MBR) geschrieben wird, die Anzahl der Partitionen ist, auf denen diese Stufe nach dem Menü suchen soll.
Es ist möglich, das durcheinander zu bringen. Man würde nach dem POST mit einer Eingabeaufforderung anstelle eines Menüs begrüßt, aber grub bietet Befehle zum "Initialisieren" dieses Menüs von einer anderen Partition (Datei) als der unter Installation angegebenen. Es funktioniert jedoch im Allgemeinen ohne Intervention, da das "erste Startlaufwerk" im BIOS als "hd0" erkannt wird.
quelle