it-swarm-eu.dev

So verschieben Sie Boot- und Root-Partitionen auf ein anderes Laufwerk

Ich habe zwei Laufwerke auf meinem Computer, die die folgende Konfiguration haben:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

Leider scheint Laufwerk 2 zu sterben, da der Versuch, darauf zu schreiben, zu Fehlern führt und das Überprüfen der Einstellungen von SMART einen traurigen Zustand anzeigt.

Auf Laufwerk 1 ist ausreichend Speicherplatz vorhanden. Ich möchte also die Partitionen/und/boot dorthin verschieben, Laufwerk 2 aus dem System entfernen, Laufwerk 2 durch ein neues Laufwerk ersetzen und dann den Vorgang umkehren.

Ich stelle mir vor, ich muss ein paar Aktualisierungen vornehmen, und ich muss einige Dinge verschieben, aber ich bin ziemlich ratlos, wie ich genau vorgehen soll. Da dies mein Hauptcomputer ist, möchte ich darauf achten, die Dinge nicht durcheinander zu bringen, damit ich nicht booten kann.

27
mlissner

Meine endgültige Lösung hierfür war eine Kombination mehrerer Techniken:

  1. Ich habe das sterbende Laufwerk und seinen Ersatz gleichzeitig mit dem Computer verbunden.
  2. Das neue Laufwerk war kleiner als das alte, daher habe ich die Partitionen auf dem alten mit GParted verkleinert.
  3. Danach kopierte ich die Partitionen auf das alte Laufwerk und fügte sie auf das neue ein (ebenfalls mit GParted).
  4. Als Nächstes fügte ich der richtigen Partition auf dem neuen Laufwerk das Startflag hinzu, sodass es praktisch ein Spiegel des alten Laufwerks war.

Das hat alles gut funktioniert, aber ich musste grub2 gemäß den Anweisungen aktualisieren hier .

Nachdem dies alles erledigt war, scheinen die Dinge zu funktionieren.

4
mlissner

Sie müssen von einer Live-CD booten. Fügen Sie Partitionen für sie zu Datenträger 1 hinzu, kopieren Sie den gesamten Inhalt und verwenden Sie dann Sudo blkid, um die UUID jeder Partition abzurufen. Bearbeiten Sie auf dem neuen/von Datenträger 1 die Datei/etc/fstab, um die neuen UUIDs zu verwenden, die Sie gerade nachgeschlagen haben.

Das Aktualisieren von GRUB hängt davon ab, ob es sich um GRUB1 oder GRUB2 handelt. Wenn Sie GRUB1 verwenden, müssen Sie /boot/grub/device.map bearbeiten

Wenn Sie GRUB2 verwenden, müssen Sie Ihre Partitionen wie in einer realen Situation bereitstellen. Zum Beispiel:

Sudo mkdir /media/root
Sudo mount /dev/sda1 /media/root
Sudo mount /dev/sda2 /media/root/boot
Sudo mount /dev/sda3 /media/root/home

(Das Ausfüllen der Partitionen, auf die Sie die Daten kopiert haben, ist selbstverständlich.)

Binden Sie dann mount/proc und/dev in das Verzeichnis/media/root:

Sudo mount -B /proc /media/root/proc
Sudo mount -B /dev /media/root/dev
Sudo mount -B /sys /media/root/sys

Jetzt chroot in das Laufwerk, so dass Sie GRUB zwingen können, sich entsprechend dem neuen Layout zu aktualisieren:

Sudo chroot /media/root
Sudo update-grub

Der zweite Befehl macht eine Beschwerde (ich vergesse allerdings, was es ist ...), aber das ist in Ordnung zu ignorieren.

Testen Sie es, indem Sie das fehlerhafte Laufwerk entfernen. Wenn es nicht funktioniert, sollte das fehlerhafte Laufwerk das System immer noch booten können, aber ich glaube, dies sind alle notwendigen Schritte.

29
maco

Wenn Sie das Laufwerk sofort austauschen, können Sie dd verwenden (habe es vor einigen Monaten auf meinem Server ausprobiert und es hat wie ein Zauber funktioniert).

Dazu benötigen Sie ebenfalls eine Boot-CD.

  1. Starten Sie die Boot-CD
  2. Nur Laufwerk 1 einhängen
  3. Führen Sie _dd if=/dev/sdb1 of=/media/drive1/backuproot.img_ aus - sdb1 ist Ihre Root-Partition (_/_). Dadurch wird die gesamte Partition in einer Datei gespeichert.
    • gleiches gilt für _/boot_
  4. Ausschalten, Festplatte austauschen, einschalten
  5. Führen Sie _dd if=/media/drive1/backuproot.img of=/dev/sdb1_ aus - schreiben Sie es zurück.
    • gleiches gilt für _/boot_

Mit den obigen Schritten werden 2 Partitionen mit genau der gleichen Größe wie zuvor erstellt. Möglicherweise müssen Sie grub anpassen (siehe macos post).

Wenn Sie die Größe Ihrer Partitionen ändern möchten (wie ich):

  1. Erstellen Sie 2 Partitionen auf dem neuen Laufwerk (für _/_ und _/boot_; Größe nach Belieben)
  2. Hängen Sie das Backup-Image ein: _mount /media/drive1/backuproot.img /media/backuproot/_
  3. Hängen Sie die leere Partition _/_ ein: _mount /dev/sdb1 /media/sdb1/_
  4. Kopieren Sie den Inhalt in die neue Partition. (Ich bin nicht sicher, ob dieser Befehl in Frage kommt. Es ist sehr wichtig, dass der Besitz erhalten bleibt. _cp -R_ geht nicht!) _cp -R --preserve=all /media/backuproot/* /media/sdb1_
    • gleiches gilt für _/boot/_

Das sollte es tun.

5
sBlatt