Ich arbeite auf einem Debian / Squeeze-System (mit einer Vorgeschichte, die mindestens auf Woody zurückgeht), das im Rahmen des Squeeze-Upgrades auf grub2 aktualisiert wurde. Alles funktioniert gut, aber ich werde gleich mit der Festplattenkonfiguration herumspielen.
Derzeit werden auf dem Computer 2 80-GB-Laufwerke mit RAID1 /, / home- und / boot-Partitionen ausgeführt (es gibt ein weiteres Laufwerkspaar mit RAID1 / data und ein paar Auslagerungen, falls sich jemand fragt, wo die Auslagerungen sind , aber ich rühre die nicht an).
Ich habe 2 SSDs mit 130 GB hinzugefügt, sie so partitioniert, dass sie mindestens so groß sind wie die Partitionen auf den 80-GB-Laufwerken, und beabsichtige, auf die neuen SSD-Laufwerke umzuschalten, indem ich die RAID1-Laufwerke so anbaue, dass sie auf die Synchronisierung warten und dann die alten entfernen Laufwerke von den Arrays, so dass nur die SSDs übrig bleiben (und dann die Dateisysteme wachsen). Aber um mdadm / ext3-Wrangling geht es in dieser Frage nicht ...
Damit habe ich 2 veraltete 80-GB-Laufwerke (IDE), die ich vom Computer entfernen möchte. Ich mache mir Sorgen, dass das Entfernen einige wichtige MBR mit sich bringt. Wie stelle ich sicher, dass der Computer bootfähig bleibt?
Genauer:
Als ich das Squeeze-Upgrade durchgeführt habe, wurde eine Auswahl der Laufwerke vorgestellt, auf denen grub2 installiert werden soll (ich habe die Standardeinstellung verwendet, bei der es sich um alle Laufwerke handelte). Die SSDs befanden sich zu diesem Zeitpunkt jedoch nicht im Computer. Wie kann ich dies erneut ausführen, damit Grub auf den SSD-MBRs installiert wird? (Ich vermute, es ist eine dpkg-Rekonfiguration eines Pakets).
Wie kann ich herausfinden, auf welchen Laufwerken grub2 installiert ist? Meine Güte, es gibt heutzutage fast 200 Dateien unter / boot / grub /! Wo soll man suchen? Es scheint auch etwas seltsam, dass /boot/grub/device.map.auto derzeit nur 3 Laufwerke auflistet (2 der 80 GB, aber nur eines des anderen Laufwerkpaars und keine der SSDs). Wie aktualisiere ich das? ( Update: das war ein roter Hering; device.map.auto scheint ein Relikt von vor Jahren zu sein; device.map sah bei einem Update von grub-mkdevicemap vernünftig aus. Denke, meine Paranoia in diesem Bereich stammt aus dem BIOS eines alten Mobos, das dies tun würde die von GRUB aus einer Laune heraus gesehene Gerätereihenfolge neu anordnen).
Ergebnis: Alles ist gut gelaufen, und ich habe jetzt die beiden alten 80-GB-IDE-Laufwerke im Auslieferungszustand sowie ein flottes und schnelles Boot-System, auf dem SSDs mit RAID1-Ed ausgeführt werden, wobei alle Dateisysteme auf die neuen Partitionsgrößen angepasst werden. Das andere "fehlende Teil des Grub-Puzzles", nach dem ich gesucht habe, war dpkg-reconfigure grub-pc
die Frage, auf welchen Datenträgern ein MBR gespeichert werden soll. Aarons Antwort hat mich tatsächlich am meisten beruhigt, dass dies wie erwartet funktionierte und daher diese Antwort akzeptierte.
dd if=/dev/sda bs=1 count=512 | grep -aob GRUB
. Dadurch wird die Position des Markers im Bootsektor zurückgegeben.Der Startvorgang umfasst mehrere Schritte (ich beschreibe ein herkömmliches PC-BIOS):
/boot/grub
.(hd0)/boot/grub
), der bestimmt, wo sich diegrub.cfg
Grub-Module befinden, und weitere.grub.cfg
wird ausgeführt, um normalerweise ein Menü anzuzeigen und ein Betriebssystem zu starten.Der Bootsektor wird von generiert
grub-setup
, normalerweise aufgerufen durchgrub-install
. Der Bootsektor endet auf der Festplatte, die Sie (in Linux-Syntax) in der Befehlszeilegrub-install
oder angegeben habengrub-setup
. Sie können überprüfen, ob Sie einen Bootsektor auf einer Festplatte haben, indem Sie ausführenfile -s /dev/sda
. Da Sie eine neue Festplatte hinzufügen und von dieser booten möchten, müssen Sie siegrub-install
auf der neuen Festplatte ausführen . Dasgrub-install
mehrfache Ausführen auf derselben Festplatte ist harmlos.Der schwierige Teil ist in Schritt 2 oben. Wenn möglich, legen Sie Grub (dh das
/boot/grub
Verzeichnis) auf die BIOS-Bootdiskette (oder teilen Sie Ihrem BIOS mit, dass es von der Diskette booten soll, auf der sich diese/boot/grub
befindet). Hierdevice.map
kommt es ins Spiel. Stellen Sie sicher, dass(hd0)
der Datenträger zugeordnet ist, der enthält/boot/grub
, und führen Sie ihn danngrub-install
auf diesem Datenträger aus.Wenn sich Ihre beiden Festplatten in einer Software-RAID-1-Konfiguration befinden, haben Sie identische Startsektoren. Dies ist das erwünschte Verhalten: Wenn die eine Festplatte, die die BIOS-Bootdiskette ist, ausfällt, funktioniert das Booten nur von der anderen (da sie dieselben Bytes an denselben relevanten Stellen enthalten). Wenn Sie nur bestimmte Partitionen gespiegelt haben, wirkt sich die Installation eines Bootsektors nur auf eine der Festplatten aus. Sie sollten
grub-install
erneut auf dem zweiten Datenträger ausgeführt werden, nachdem Siedevice.map
die Zuordnung(hd0)
zu dem Datenträger geändert haben, der die zweite gespiegelte Kopie von enthält/boot/grub
.Schritt 3 ist ziemlich komplex, funktioniert aber normalerweise sofort. In Schritt 4 sucht Grub nach UUID-Dateisystemen oder nach benannten Dateien, sodass Sie sich nicht mehr um die verschiedenen Methoden zum Festlegen von Datenträgern kümmern müssen.
quelle