Verschieben Sie die Installation auf eine neue Festplatte

10

Ich habe derzeit eine Festplatte mit diesen Partitionen:

/dev/sdb1    /
/dev/sdb2    swap
/dev/sdb3    /home

Ich denke darüber nach, eine SSD für meine /Partition zu kaufen .

Jetzt ist meine Frage: Ist es möglich, meine aktuelle Konfiguration in die neue zu verschieben / zu konvertieren (zwei Festplatten, / home bleibt)? Am liebsten aus dem laufenden System heraus?

Chris
quelle

Antworten:

11

Ich empfehle gegen die Verwendung dd. Es wird nur eine dumme Sektor-für-Sektor-Kopie erstellt. Dies bedeutet, dass dies fehlschlägt, wenn die Zielpartition kleiner ist, und viel Zeit damit verschwendet, freien Speicherplatz zu kopieren. Wenn die Zielpartition größer ist, ist der zusätzliche Speicherplatz erst verfügbar, wenn Sie ausgeführt werden resize2fsum das Dateisystem zu erweitern.

Es ist am besten, dies von einer Live-CD aus zu tun, denn wenn Sie Dateien kopieren, während sie geändert werden, werden Sie beschädigte Ergebnisse erhalten.

Formatieren Sie die ssd und lassen Sie sowohl die neue ssd-Partition als auch die ursprüngliche Root-Partition mounten. Führen Sie dann einfach aus sudo cp -ax /media/old-partition/* /media/new-partition, wobei die alte und die neue Partition durch ihre tatsächlichen Mount-Punkte ersetzt werden. Dadurch wird jede Datei kopiert, wobei Eigentum, Berechtigungen und Zeitstempel erhalten bleiben.

Führen Sie dann aus sudo grub-install --root-directory=/media/new-partition /dev/SSD_DEVICE, nachdem Sie die neue Partition und SSD_DEVICE durch korrekte Werte ersetzt haben. Dadurch wird grub installiert und die Festplatte bootfähig.

Stellen Sie nach dem Neustart (stellen Sie sicher, dass Ihr BIOS so konfiguriert ist, dass es von der SSD anstelle des alten Laufwerks startet) sicher, dass Sie von der SSD und nicht vom alten Laufwerk ausgeführt werden, indem Sie die Ausgabe von dfund / oder überprüfen mount, und Sie sollten es sein gut, die alte Trennwand wegzublasen.

Oh, und Sie möchten die /etc/fstabDatei auf der neuen Partition bearbeiten, nachdem Sie die UUID der Root-Partition kopiert und aktualisiert haben, damit sie mit der UUID der neuen SSD-Partition anstelle der alten übereinstimmt. Sie können diese UUID finden, indem Sie ausführen sudo blkid.

Bearbeiten: / * in der obigen Kopie hinzugefügt, musste jedoch mit mehr als 6 Zeichen bearbeitet werden. Jetzt sind es 101 Zeichen!

psusi
quelle
1
Ich nehme an, das hat funktioniert?
Martin Ueding
2
Ich hatte Probleme bei der Installation von Grub mit der oben beschriebenen Methode. Schließlich habe ich getan, was dieser Thread vorschlägt: askubuntu.com/a/3409/8152 , um grub einzurichten und auf der anderen Festplatte zu installieren. Der Rest der Antwort funktionierte großartig.
Mladen Jablanović
1

Dieser Befehl:

dd if=/dev/sdb1 of=DEVICE_PATH_OF_SSD_DRIVE

sollte zum Klonen der /Partition auf das SSD-Laufwerk funktionieren .

BEARBEITEN: Dies funktioniert nur, wenn Ihre Partition dieselbe Größe wie das Laufwerk hat. Wenn sie nicht dieselbe Größe haben, können Sie partimage verwenden :

partimage -z0 -d save /dev/sdb1 clone.partimg
partimage restore DEVICE_PATH_OF_SSD_DRIVE clone.partimg
rm clone.partimg

Eine Einschränkung dieser Methode besteht darin, dass Sie auf Ihrem Laufwerk genügend Speicherplatz für ein Image benötigen, das den gesamten Inhalt von enthält /. Sie sollten in Ordnung sein, wenn Sie> 10 GB frei haben. Andernfalls können Sie das Bild -z1anstelle von -z0komprimieren. Verwenden Sie für eine noch stärkere Komprimierung -z2. Außerdem unterstützt partimage das ext4-Dateisystem nicht .

Sobald Sie dies getan haben, sollten Sie die SSD mounten und prüfen, ob Ihre Daten ordnungsgemäß kopiert wurden:

$ mkdir /tmp/ssd
$ sudo mount -t ext4 DEVICE_PATH_OF_SSD_DRIVE /tmp/ssd
$ ls /tmp/ssd
bin    dev   initrd.img      lost+found  opt   sbin     sys  var
boot   etc   initrd.img.old  media       proc  selinux  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv      usr  vmlinuz.old

Ersetzen Sie ext4durch das Dateisystem, für das Sie verwendet haben /.

Sie müssen wahrscheinlich den GRUB-Bootloader auf diesem Laufwerk installieren:

sudo grub-install DEVICE_PATH_OF_SSD_DRIVE

Anschließend müssen Sie Ihre /etc/fstabDatei bearbeiten , um sie /dev/sdb1in dem Eintrag, der bereitgestellt wird, durch den Gerätepfad Ihres SSD-Laufwerks zu ersetzen /. ( sudo $EDITOR /etc/fstab)

Bitte warten Sie, bis diese Antwort einige positive Stimmen hat, bevor Sie diese Anweisungen befolgen. Ich bin kein Experte in diesen Dingen, daher habe ich möglicherweise einige wichtige Informationen übersehen. Wenn Sie Fehler darin sehen, fügen Sie bitte einen Kommentar hinzu, der diese erklärt. Sie sollten solche Vorsichtsmaßnahmen treffen, da Ihr Computer im Falle eines Fehlers möglicherweise nicht mehr bootfähig ist.

dv3500ea
quelle
(-1) Diese Lösung ist mehr als gefährlich . Vor allem, wenn die Größe der Geräte nicht übereinstimmt.
Raphael Bossek
Es wird auch die UUID des Quelllaufwerks kopiert, wenn Sie dd verwenden.
Michael
0

Lesen Sie zuerst, wie Sie migrieren. Gibt es eine einfache Möglichkeit, ein Betriebssystem von einer Festplatte auf eine andere zu übertragen? .

Booten Sie von Ihrer SSD und fügen Sie die folgende Zeile hinzu /etc/fstab(es ist nur eine Bindung):

/media/slowhd/home /home none rw,bind 0 0

Beginnen Sie mount -a, die Änderungen zu aktivieren.

Tipp : Nicht, mount /dev/yourhd /homeweil Sie die Flexibilität verlieren, weitere Verzeichnisse auf Ihre alte Festplatte zu verschieben.

Eine technischere Lösung wäre die Verwendung von LVM (Logical Volume Manager) .

Raphael Bossek
quelle