Verschieben / Booten und MBR auf ein neues Laufwerk


11

Ich habe einen CentOS 6-Server mit zwei Festplatten. Mein altes 3-TB-Laufwerk hat mir einige Probleme bereitet, sodass ich die Dinge auf ein neues Laufwerk verlagere. Da my /und /homepartition von einem LVM verwaltet werden, war es einfach, diese auf das neue Laufwerk zu migrieren. Jetzt möchte ich über meine /bootPartition und den MBR gehen, mit dem alles gestartet wird.

Ich habe eine Live-CD und rsyncedüber meine /bootPartition auf die Partitionsgröße meines neuen Laufwerks geladen . Ich habe auch versucht, meinen MBR mit den folgenden Befehlen zu kopieren:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

Nachdem ich dies getan hatte, startete ich neu und sagte meinem BIOS, ich solle während des Startzyklus nicht auf die alte Festplatte und nur auf die neue Festplatte schauen, aber am Ende hatte ich nur einen blinkenden Cursor.

Habe ich hier einen Schritt verpasst? Oder muss ich noch etwas tun, damit die Dinge hochfahren, damit ich mein altes Laufwerk vollständig entfernen kann?

EDIT: Ich fange an zu denken, dass rsync nicht die Möglichkeit war, die / boot-Partition von einem Laufwerk auf ein anderes zu kopieren. Basierend auf dieser Anleitung habe ich stattdessen versucht, den Befehl dump zu verwenden. In diesem Befehl habe ich meine alte, nicht gemountete Boot-Partition auf meine neue, leere, gemountete Boot-Partition kopiert.

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

Beim Booten wird ein Grub-Fehler 15 angezeigt, der besser ist als ein blinkender Cursor, aber ich weiß nicht, ob dies einer Lösung näher kommt.


Warum nicht grub-install auf dem neuen Laufwerk?
Frostschutz

Jedes Mal, wenn ich müde war, Grub-Install auszuführen, wurde ich gebootet und bekam nur eine Grub-Eingabeaufforderung.
Cloudkiller

Antworten:


3

Wenn die beiden Festplatten dieselbe Größe haben (oder die neue größer ist), warum haben Sie nicht einfach die alte Festplatte auf die neue Festplatte kopiert? Dh

dd if=/dev/sda of=/dev/sdb

Wenn die neue Festplatte jetzt größer ist, ändern Sie die Partitionsgrößen mit parted oder gparted. All dies erfolgt über das Booten von einer Live-CD / einem USB-Stick.


Sie sind unterschiedlich groß. 3 TB waren für den Server einfach zu viel des Guten, also bin ich zu einem 1-TB-Raptor übergegangen, in der Hoffnung, ein bisschen mehr Geschwindigkeit zu erreichen. Unabhängig davon scheint das Klonen nicht das Problem zu sein. Zumindest der LVM-Teil hat sich leicht verschoben und es scheint, dass die Boot-Partition vollständig mit meinem letzten Dump kopiert wurde. Jetzt denke ich, dass das Problem irgendwie mit meinem Grub oder dem MBR zusammenhängt. Ich denke, das Problem ist, dass ich nicht genug über grub2 weiß und wie es mit LVMs interagiert, um es zu beheben.
Cloudkiller

Die Verwendung von dd, das Bit für Bitkopie ausführt, ist eine alte Methode zur Durchführung einer Datenmigration, insbesondere wenn die Festplattengrößen jetzt im Terabyte-Bereich liegen und die tatsächliche Datenmenge auf der Festplatte häufig weniger als 10 GB beträgt. Bei einer sauberen Neuinstallation von SUSE mit vielen installierten Bibliotheken werden ungefähr 5 GB auf der Festplatte ausgeführt, die ich in eine Datei tariere, und ich verwende einen 8-GB-Speicherstick, um diese TAR-Datei zu verschieben. Die Boot-Partition, ob es sich um EFI oder MBR handelt, läuft nur wenige MB.
Ron

Wenn Sie EFI oder UEFI anstelle des BIOS verwenden können und eine EFI-Bootpartition über GPT anstelle einer MBR & dos-Bootpartition haben, können Sie die EFI-Parition einfach als fat32 formatieren und über diese wenigen MB verwandter Dateien kopieren. Andernfalls müssen Sie für MBR nicht verstehen, wie es funktioniert, die darin enthaltenen Adressen in Bezug auf die neue Festplatte korrigieren und dann den neuen MBR auf der neuen Festplatte im ersten Sektor installieren, damit das BIOS ordnungsgemäß darauf zugreifen kann. EFI ist so viel besser , wenn Ihre Hardware ist EFI fähig
ron

und ELILO ist besser als GRUB / GRUB2, zu viel Zeug in Grub, das ich nie benutze und das die Dinge nur kompliziert; eine elilo.conf Datei und du bist fertig! wenn es nicht bootet nur , dass eine Datei suchen , um und zu korrigieren
ron

4

Es stellt sich heraus, dass die Verwendung von rsync oder dump zum Kopieren der / boot-Partition das Problem verursacht hat. Basierend auf der obigen Antwort von erick habe ich eine Live-CD im Rettungsmodus gebootet und die folgenden dd-Befehle ausgeführt.

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

Ich habe die ersten beiden DVDs erneut ausgeführt, um sicherzustellen, dass alles korrekt kopiert und bei all den Tests, die ich durchgeführt habe, nicht beschädigt wurde. Dann habe ich die dritte dd ausgeführt, um die Boot-Partition von meinem alten Laufwerk auf mein neues zu kopieren. Danach habe ich heruntergefahren, mein altes Laufwerk herausgezogen und ohne Probleme in mein CentOS gebootet.

Es muss ein Problem aufgetreten sein, das durch die Verwendung von dump auf einem bereitgestellten Laufwerk verursacht wurde und dazu führte, dass die Kopie nicht ordnungsgemäß funktionierte. Trotzdem hat dd den Trick gemacht. Vielen Dank für Ihre Hilfe an alle.


Dies ist ein gutes Beispiel für Unwissenheit ist Glückseligkeit, da es funktioniert hat. Fragen Sie sich, was die Rettungs-CD für Sie getan hat, um das Problem im MBR zu beheben? Wenn zwei Festplatten gleichzeitig im System vorhanden sind, welche sda ​​und welche sdb, und wenn Sie die alte Festplatte entfernen und nur die neue Festplatte haben, ändert sich dies und wird dann sda oder sdb?
Ron

Abhängig davon, was Sie tun, spielt es möglicherweise keine Rolle, aber es ist im Allgemeinen besser, Festplatten nach einer eindeutigen Methode zu booten oder zu identifizieren, z. B. nach Geräte-ID oder UUID.
Ron

Die Verwendung von dd und MBR entspricht der Verwendung von Punkten und Kondensator an einem Motor anstelle einer elektronischen Zündung mit elektronischer Kraftstoffeinspritzung (EFI) ... Wortspiel beabsichtigt ... und der Verwendung von EFI, da dies nicht vollständig verstanden wird.
Ron

3

Anstelle von dd habe ich ein neues Volume erstellt. Weitere Schritte, die jedoch möglicherweise Probleme beheben, anstatt sie zu kopieren. Ich hatte einen zu kleinen Boot, der beschädigt wurde. Ich habe auch cento7 mit grub2 verwendet. Meine Anweisungen würden also einige Anpassungen oder ein Upgrade auf grub2 erfordern, wie von psusi vorgeschlagen. Ich habe versucht, die Änderungen zu notieren.

HINWEIS: Wenn ich "/ dev / sdx" verwende, gehe ich davon aus, dass Sie wissen, dass "sdx" in den Namen der Festplatte / des Volumes geändert werden muss, die / boot sein soll.

  • Verwenden Sie fdisk (nicht cfdisk) für Partition mit Typ 83 (normaler Linux-Teil) und markieren Sie diese als bootfähig.
    • Grund für fdisk: cfdisk startet die Partition zu früh, ohne Platz für den Bootloader. Denken Sie daran, dass der Bootloader vor der Partition passen muss.
  • Dateisystem auf Partition erstellen. Ext [234], xfs. Andere?.
  • Mount at / boot
  • Kopieren Sie * .img-Dateien von old / boot over in / boot… zumindest die, die Sie behalten möchten.
  • Ich habe auch vmlinuz- * Dateien von old / boot over in / boot kopiert… ich bin mir nicht sicher, ob das benötigt wird.
  • Führen Sie grub2-install / dev / sdx aus
    • Hinweis 1: Wenn Sie grub (anstelle von grub2) verwenden, ist der richtige Befehl meiner Meinung nach grub-install / dev / sdx
    • Hinweis 2: Dies wird vor der Partition installiert, die wir gerade formatiert haben, damit Sie NICHT auf / dev / sdx1 zeigen!
  • Führen Sie grub2-mkconfig -o /boot/grub2/grub.cfg aus
  • Vergessen Sie nicht, / etc / fstab für / boot zu aktualisieren

Referenzen: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso /blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2


2

Das Problem ist, dass Sie ddden MBR nicht so kopieren sollten . Sie müssen grub lediglich auf dem neuen Laufwerk neu installieren, um einen korrekt aktualisierten MBR zu erhalten. Der MBR enthält den Speicherort der Grub Stage 2-Datei, die sich beim Wiederherstellen des Speicherauszugs geändert hat.

Außerdem sollten Sie ein Upgrade auf grub2 durchführen, da das Grub-Legacy seit Jahren nicht mehr gepflegt wird und für grub2 keine Partition ohne lvm / boot erforderlich ist.


Ich verwende grub2, das hat das CentOS 6-Installationsprogramm auf meiner Festplatte gespeichert. Darüber hinaus war die Nicht-Lvm / Boot-Partition auch das von CentOS bereitgestellte Standard-Setup. Ich habe viele Male versucht, grub2 auf dem Laufwerk neu zu installieren, aber es war etwas, das mir entgangen ist, es zum Laufen zu bringen.
Cloudkiller
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.