Wie verschiebe ich meine LVM 250 GB-Root-Partition auf eine neue 120 GB-Festplatte?

18

Ich habe folgende Situation:

Meine aktuelle Ubuntu (12.04) -Installation wird von einer externen Festplatte (250 GB) ausgeführt, da ich zu faul war, um eine neue interne Festplatte zu kaufen. Jetzt habe ich eine neue interne (120 GB) und ich möchte alles in die interne verschieben. Ubuntu neu zu installieren ist aus der Diskussion heraus, weil es zu peronalisiert ist.

Zum Glück (ich hoffe es) ist die Root-Partition mit LVM partitioniert, also hoffe ich, dass ich die Partition auf die kleinere interne Festplatte verschieben kann.

Ist das möglich? Und wo finde ich Hilfe?

EDIT: Diese Frage ist schon ziemlich alt und könnte veraltet sein. Ich habe die Ubuntu-Version hinzugefügt, die damals verwendet wurde.

NotANormalNerd
quelle
verwandte Frage - die obigen Antworten sind nicht klar genug ...
MeSo2
Die obigen zwei Antworten sind mir nicht klar genug. Also fing ein neuer Beitrag an.
MeSo2

Antworten:

39

Wie Sie vermuten, ist dies mit LVM äußerst elegant.

Verkleinern Sie die vorhandene Installation, um sie an die kleinere Festplatte anzupassen.

Körperlich installieren Sie die neue Festplatte, Format und pvcreatees verwenden vgextendes zum gleichen vg als Root - Partition hinzufügen

Verwenden Sie pvmovediese Option, um alle Daten transparent von der alten Partition zu entfernen

Verwenden vgreduceSie diese Option, um Ihre externe Festplatte aus Ihrer vg zu entfernen. Trennen Sie die alte Festplatte / dev / sdOLD.

Im folgenden Beispiel:

  • /dev/sdOLD steht für die alte Partition zu ersetzen
  • /dev/sdNEW steht dafür, dass die neue Partition ihren Platz einnimmt.
  • vgX steht für die Volumengruppe

Beispiel: Natürlich müssen Sie zu 100% sicher sein, dass Sie die richtigen Geräte verwenden. Außerdem ist es wichtig, dass vollständige und aktuelle Sicherungen vom System entfernt werden.

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

Verwenden Sie update-grubund grub-install, um Ihre neue Root-Festplatte bootfähig zu machen

Erledigt.

Floyd
quelle
Es wäre schön gewesen, wenn Sie konkrete Beispiele geliefert hätten.
Isaac
12
Ah, das ist schön, einen gültigen akzeptierten Beitrag mit hilfreichen Informationen abzustimmen. Ich habe absichtlich KEIN konkretes Beispiel angegeben, da die Gefahr besteht, dass jemand das sinnlos kopiert und seine Daten zerstört. Wenn Sie irgendetwas mit lvm machen, sollten Sie in der Lage sein, sich mit den von mir gegebenen Hinweisen zu identifizieren.
Floyd
2
Arbeitete auch an Cento7. Die hier bereitgestellten Schritte reichten aus, um ein wenig zu lernen und ein wenig zu googeln. Spot-on
terary
centos: benutze grub2-mkconfig -o "$ (readlink -e /etc/grub2.cfg)" ... von hier
terary
21

Wenn Sie für Ihre aktuelle Installation die gesamte 250-GB-Festplatte verwendet haben, müssen Sie sie verkleinern, damit sie in die 120-GB-Festplatte passt. Sie können ein ext4-Dateisystem nur verkleinern, wenn es nicht gemountet ist. Daher müssen Sie von einem Ubuntu Live-System (CD oder USB) oder einem speziellen Wartungs-Live-System wie GParted Live booten . Sie können resize2fsoder GParted verwenden, um die Größe des vorhandenen Dateisystems zu ändern.

Nachdem Sie die Dateisysteme Ihrer vorhandenen Installation auf die neue Festplatte verkleinert haben, können Sie den Rest des Vorgangs mit dem bereitgestellten Dateisystem ausführen, wenn Sie möchten. Wenn das vorhandene Dateisystem auf die neue Festplatte passt, können Sie die Übertragung durchführen, ohne etwas aushängen oder neu starten zu müssen.

In der folgenden Beschreibung werde ich zeigen, wie Sie von einem physischen Volume /dev/sdb1zu einem physischen Volume wechseln /dev/sda1, wobei eine vorhandene Volume-Gruppe aufgerufen wird oldvg. Stellen Sie sicher, dass Sie die Laufwerksbuchstaben und Partitionsnummern an Ihr System anpassen.

So führen Sie einen Live-Transfer durch:

  1. Partitionieren Sie die neue Festplatte, mit dem Partitionierungs - Tool Ihrer Wahl ( cfdisk, fdisk, parted, ...). Siehe zB Wie füge ich eine zusätzliche Festplatte hinzu?
  2. Erstellen Sie ein physisches Volume auf der neuen Festplatte: pvcreate /dev/sda1
  3. Fügen Sie dieses physische Volume der vorhandenen Volume-Gruppe hinzu, die die logischen Volumes enthält, die Sie verschieben möchten: vgextend oldvg /dev/sda1
  4. Verschieben Sie die logischen Volumes von einem physischen Volume auf ein anderes: pvmove /dev/sdb1 /dev/sda1
  5. Teilen Sie die vorhandene Datenträgergruppe in zwei Teile: vgsplit oldvg newvg /dev/sda1

Eine andere Methode besteht darin, das vorhandene logische Volume (die vorhandenen logischen Volumes) zu einem Spiegel-Volume zu machen lvconvert --mirror, einen Spiegel auf der neuen Festplatte einzurichten und dann die Spiegel mit aufzuteilen lvconvert --splitmirrors. Auf diese Weise erhalten Sie zwei Kopien Ihrer Daten, und nach der Aufteilung führt jede Kopie ein eigenes Leben.

Nachdem Sie die Kopie erstellt haben, müssen Sie die neue Festplatte bootfähig machen. Hängen Sie dazu das Dateisystem ein. Angenommen, es ist gemountet /mnt, führen Sie diese Befehle als root aus:

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

Alternativ können Sie möglicherweise Clonezilla verwenden . Dies ist ein leistungsstarkes Tool zum Manipulieren und Klonen von Datenträgern. Ich denke, es deckt Ihre Situation ab, aber ich habe keine Erfahrung damit.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Wie eine Antwort, die im Grunde genommen sagt pvadd, pvmove, pvremove, über
ish
Viel zu kompliziert und nicht das, was er braucht
Floyd