Verschieben der gesamten Linux-Installation auf ein anderes Laufwerk

55

Ich habe Ubuntu 14.04 mit vielen Paketen und arbeitsbezogenen Sachen, mit denen ich sehr zufrieden bin. Es ist auf meinem SSD-Hauptlaufwerk mit 120 GB installiert. Es wird als / dev / sda angezeigt

Jetzt habe ich meinem Computer eine weitere SSD mit 240 GB hinzugefügt. Ich habe im Moment keine anderen Speichermedien zur Hand (zB externe Festplatte).

Da das neue 240-GB-Laufwerk offensichtlich mehr Kapazität hat und schneller ist (eine neuere Generation als mein 120-GB-Laufwerk), möchte ich mein Linux auf dieses neue Laufwerk verschieben. Dieses neue Laufwerk wird als / dev / sdb angezeigt und ist im Moment nicht formatiert oder so (ich habe es buchstäblich ausgepackt und in meinen PC eingelegt: P).

Wie kann ich meine Linux-Installation sicher auf das neue Laufwerk verschieben?

Ich kann das SATA-Kabel ändern, sodass das neue Laufwerk bei Bedarf als / dev / sda angezeigt wird.

Dies ist die Ausgabe von "fdisk -l", wenn dies hilft:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00076d7a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   226064383   113031168   83  Linux
/dev/sda2       226066430   234440703     4187137    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5       226066432   234440703     4187136   82  Linux swap / Solaris

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table
Saeid87
quelle
4
Es hört sich so an, als würden Sie beide jetzt verwenden. In diesem Fall sollten Sie /homestatt des gesamten Systems nur das neuere, größere System verwenden. Es sollte eine einfachere Änderung sein (verschieben Sie einfach alles und fügen Sie eine einzelne Zeile zu / etcs / fstab hinzu), und die meisten großen Dateien werden wahrscheinlich in Ihr Ausgangsverzeichnis (und damit auf die größere Festplatte) verschoben.
Kevin
Mögliches Duplikat von Ubuntu auf eine SSD verschieben
David Foerster

Antworten:

35

Sie können CLONEZILLA für diesen Zweck verwenden.

Clonezilla ist ein kostenloses Partitions- und Disk-Imaging / Cloning-Tool, mit dem Sie alle Ihre Daten (ganze Festplatten oder Partitionen) stark komprimiert sichern und später wieder auf Ihre Festplatte klonen können, um sie in den exakt gleichen Zustand zu versetzen. Dies ist in den meisten Fällen schneller als die Installation des Betriebssystems.

Bildbeschreibung hier eingeben

In Ihrem Fall können Sie auch die Option "Gerät-Gerät" verwenden, ich kenne sie jedoch nicht.

Eine ausführliche Anleitung zu Clonezilla finden Sie hier: http://clonezilla.org

Severus Tux
quelle
1
Ich schlage vor, Sie sehen sich diese beiden Tutorial-Videos vor: youtube.com/watch?v=41tTudaQb0I und youtube.com/watch?v=LS6VhLDw-io
Severus Tux
1
Dies ist auch eine gute Option. Aber ich bin zu faul, um den Clonezilla-Stick zu erstellen ;-)
Pilot6
Ich fand, dass Clonezilla nicht über mbr kopierte, so dass ein ganzes Disk-Image und ein bisschen Arbeit mit gparted den Trick machen sollten
adampski
1
Beeindruckend! Freut mich das zu hören ;-), Die Bootzeit, Es liegt an geänderten UUIDs, dh den neuen UUIDs und den alten Ihrer wichtigen Partitionen (home, Swap) hat sich gefasst. Um dies zu korrigieren, folgen Sie bitte den hier gegebenen Anweisungen mit geeigneten Änderungen : askubuntu.com/a/737340/497359 Wenn Sie ein Problem finden, kommentieren Sie es bitte.
Severus Tux
1
@adampski: Dies scheint ein Fehler in Clonezilla 2.4.5 zu sein. Als Problemumgehung können Sie Clonezilla 2.4.2 oder Clonezilla 2.4.2 Server Edition (DRBL) verwenden, bis es behoben ist. :)
Cl-Netbox
40

Dies kann auf verschiedene Arten geschehen. Am einfachsten ist es jedoch, alle Dateien vom alten auf das neue Laufwerk zu kopieren.

  1. Erstellen Sie eine ext4-Partition und eine Swap-Partition auf dem neuen Laufwerk.

  2. Booten Sie von LiveUSB.

  3. Mounten Sie die alte Ubuntu-Partition in ein Verzeichnis, mounten Sie die neue in ein anderes Verzeichnis.

  4. Kopieren Sie mit dem cp -aBefehl alle Dateien von der alten auf die neue .

  5. Installieren Sie grub auf dem neuen Laufwerk .

  6. Update /etc/fstabmit neuen UUIDs.

Wenn etwas nicht klar ist, kann ich einige Erklärungen hinzufügen.

Pilot6
quelle
1
+1 - Es ist auch möglich, das Booten von einem LiveUSB zu vermeiden und alles zu tun, während vom ursprünglichen Laufwerk gebootet wird, alle Änderungen vorzunehmen, einen Neustart durchzuführen, voila.
Sergey
1
@ Étienne: /devKopiere diese Verzeichnisse nicht (auch ), erstelle einfach leere Verzeichnisse auf dem Ziellaufwerk und setze dieselben Besitzer / Berechtigungen für sie wie für das Quelllaufwerk.
Sergey
10
Ich habe am Ende verwendet: sudo rsync -a / /mnt/linux/ --exclude sys --exclude proc --exclude dev --exclude tmp --exclude media --exclude mnt --exclude run then sudo mkdir sys proc dev tmp media mnt run
Étienne
1
@ Etienne könntest du bitte deinen --exclude-Kommentar bearbeiten? Wenn Sie es so machen, wie Sie es geschrieben haben, wird / var / tmp ebenfalls ausgeschlossen (scheint mir), nach dem Klon wird dies von systemd-resolved.service übersehen, was dazu führt, dass die Namensauflösung nicht funktioniert ... Ich denke, das sollte es sei --exclude / tmp --exclude / proc etc. Danke
swe
1
@swe Ich sollte keinen Kommentar pflegen, bitte schlage lieber eine Bearbeitung der ursprünglichen Antwort vor.
Étienne
20

Falls Sie etwas Zeit haben und auf Nummer sicher gehen möchten:

$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

Erklärung des Befehls:

  • ifist die Eingabe, ofdas Ziel
  • bsLegt die Blockgröße fest. Es ist die Größe der Chunks, in die dd liest und schreibt. Höhere Chunk-Größen bedeuten normalerweise eine höhere Leistung, aber auch eine stärkere Beschädigung der Daten, wenn die Eingabedisk fehlerhaft ist. Siehe hier: archwiki on dd
  • noerror Fortsetzung in r / w-Fehlern.
  • sync synchronisiert die Offsets, wenn ein Fehler aufgetreten ist.

Dadurch wird im Grunde ein Image Ihrer Festplatte sda ​​erstellt und auf sdb geschrieben (gleiches Partitionslayout usw.). Natürlich werden die gesamten 120 GB geschrieben, da es dateiunabhängig ist. Somit sehr sicher, aber nicht am schnellsten, wenn Sie nur kleine Teile der Festplatte verwenden. Wenn der Eingabedatenträger jedoch ziemlich voll ist, ist er möglicherweise sogar schneller.

ABER:

  • Danach möchten Sie wahrscheinlich die Größe der Partitionen ändern, da Sie sonst den zusätzlichen Speicherplatz nicht nutzen können.
  • In jedem Fall muss möglicherweise die Datei / etc / fstab bearbeitet werden.
    Dies ist der Fall, wenn Hardware-IDs zur Erkennung der Festplatten verwendet werden.
Larkey
quelle
2
Ihr ddBefehl wird für immer ausgeführt. Erwägen Sie bs=1M, es hinzuzufügen
Dmitry Grigoryev
Afaik blocksize muss auf SSDs nicht 1 MB groß sein, aber ich schaue nach und aktualisiere
larkey
Die Einschränkung liegt nicht in der SSD-Technologie, sondern im bsStandardwert von 512 Byte.
Dmitry Grigoryev
1
erweiterte
antwort
1
Danke für die ausführliche Antwort ... Ich habe ein paar Sachen gelernt! Ich entschied mich jedoch dafür, mit Clonezilla zu arbeiten und die Partitionen anschließend in der Größe zu verändern.
Saeid87
5

Wenn ich auf eine neue Festplatte umsteige, mache ich Folgendes:

  • Erstellen Sie das gewünschte Partitionslayout auf dem neuen Laufwerk
  • Booten von Live CD / USB oder Installieren, Retten etc.
  • mounten Sie die alte (n) Festplattenpartition (en), auf die (n) kopiert werden soll (en) /mnt/a
  • mounten Sie die neue (n) Festplattenpartition (en), um beispielsweise Dateien zu empfangen /mnt/b
  • cp -aOder kopieren Sie die Dateien mit tar von /mnt/anach/mnt/b
  • Installieren Sie den Bootloader (lilo oder grub) auf einer neuen Festplatte ¹
  • aktualisieren Sie die /etc/fstab(Sie möchten möglicherweise verwenden blkid, um neue UUIDs zu identifizieren)
  • neustarten und testen ob alles in ordnung ist

Anmerkung¹:

Überprüfen Sie alle Festplatten und Partitionen mit dem folgenden Befehl:

sudo fdisk -l 

Notieren Sie sich nun die Partition, auf der Ubuntu installiert ist. /dev/sda1

Hängen Sie die Partition ein, auf der Sie GRUB 2 (Festplattenpartition) installieren möchten, und das Dateisystem wird in Nautilus angezeigt. Jetzt müssen wir die richtige Festplattenpartition bereitstellen, um Änderungen am tatsächlichen Festplatten-MBR vorzunehmen. Dafür müssen wir:

sudo mount /dev/sda1 /mnt
mount

Stellen Sie nun die Partition an einem anderen Ort bereit

sudo mount /dev/sda1 /mnt/boot

Erstellen Sie eine unzerbrechliche Verknüpfung von dem /devOrdner auf dem Live-Image, von dem Sie gestartet haben, zu dem /devOrdner auf der Partition, auf der Sie gemountet haben/mnt

sudo mount --bind /dev /mnt/dev/

Jetzt müssen wir das Stammverzeichnis von Live-CD-Stammverzeichnis (/) in das Stammverzeichnis der gemounteten Partition ändern

sudo chroot /mnt

Jetzt befinden Sie sich in einer neuen Root-Shell, in der die gemountete Partition der neue Root ist. Sie können diese Eingabe überprüfen ls. Da wir uns jetzt in der gemounteten Partition befinden, können wir GRUB 2 installieren:

sudo grub-install /dev/sda 

Die Installation sollte jetzt ohne Fehler abgeschlossen sein

Verlassen Sie Ihre CHROOT-Shell, indem exitSie Ctrl+ eingeben oder drücken, D um zur Live-CD / USB-Shell zurückzukehren

Hängen Sie die zuvor bereitgestellten Partitionen aus, um einen sauberen Neustart durchzuführen:

sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt

und starten Sie neu, nachdem Sie die Live-CD oder den USB-Stick entfernt haben, um von der Festplatte zu booten:

sudo reboot

Quelle

geschlafen
quelle
@ baobab33: Du darfst hier Anweisungen kopieren, einfügen und dann zuordnen. Sie dürfen nicht nur auf die externe Quelle verlinken. Bitte aktualisieren Sie auch die Quelle mit den obigen Korrekturen.
Fabby
4

Im Gegensatz zu den anderen Antworten können Sie auf diese Weise die Linux-Installation klonen und mit Ihren aktuellen Installationen zum Grub-Menü hinzufügen. Zusätzlich ändert es sich automatisch /etc/fstabfür Sie und aktualisiert das grubBoot-Menü.

Ein Menü hilft Ihnen bei der Auswahl der richtigen Partition, auf die geklont werden soll. Der Klon von der Partition ist Ihre aktuell gebootete Partition.

rsyncwird für eine optimale Geschwindigkeit verwendet, wenn Sie die Partition erneut klonen möchten. Dies ist von Vorteil, wenn das Upgrade fehlschlägt, Sie auf die Fehlerbehebung warten und das Upgrade erneut ausführen möchten. In ähnlicher Weise haben Sie möglicherweise während des Upgrades falsche Optionen ausgewählt und möchten dies erneut tun.

Das vollständige Skript finden Sie hier: Bash-Skript zum Klonen von Ubuntu auf eine neue Partition zum Testen des 18.04 LTS-Upgrades. Der Bildschirm sieht folgendermaßen aus:

clone-ubuntu.png

WinEunuuchs2Unix
quelle
0

Ich habe beschlossen, ein Experiment zu diesem Beitrag durchzuführen.

Ich habe ein Lenovo ThinkCentre erworben. Es hatte eine 256-GB-SSD und eine 1-TB-HDD (Spinner-Typ - schnell, aber nicht so schnell wie eine SSD).

Bei der Installation von Linux Mint 19.2 (LM19.2) wurde es auf dem 1-TB-Laufwerk installiert. Die SSD konnte nicht wiederhergestellt werden, und ich kaufte eine neue 240-GB-SSD von Kingston.

Ich wollte gerade LM19.2 auf der neuen SSD installieren, aber es schien eine Möglichkeit zu geben, mein gut entwickeltes LM19.2-Image vom 1-TB-Laufwerk auf die neue SSD zu übertragen.

Ich habe diesen Beitrag gefunden und obwohl es oben einige solide Ratschläge gibt, war ich in der Lage zu experimentieren. Unten ist ein Bericht darüber, was ich getan habe, und es hat SEHR gut funktioniert .

  1. Ich habe GParted verwendet, um eine Partitionstabelle und eine Partition auf der SSD zu erstellen, die dieselben Typen wie die auf der 1-TB-Festplatte hatten.
  2. Ich habe einen TimeShift-Schnappschuss (neues Tool in Ubuntu / Linux Mint) von ALLES auf der LM19.2 1 TB-Festplatte erstellt.
  3. Ich habe diesen Schnappschuss auf der SSD wiederhergestellt.
  4. Nachdem die obigen Schritte abgeschlossen waren (Sie können sogar 1 parallel zu 2 und 3 ausführen), wurde ein Neustart durchgeführt, um sicherzustellen, dass die SSD ausgewählt wurde.
  5. Das einzige, was beim Neustart seltsam war, war, dass der INITIAL-Grub-Bildschirm fragte, ob ich mit Ubuntu booten möchte. Ich nahm an, dass dies der TimeShift-Wiederherstellung eigen war, und das war es auch.
  6. Nachfolgende Starts werden normalerweise wie in LM19.2 gebootet.
  7. Ich werde diese Antwort bearbeiten, sobald ich überprüft habe, dass ich dies mit einem neuen Laufwerk tun kann, das extern vom PC hängt (und es scheint offensichtlich, dass dies funktionieren wird), da dies bedeuten würde, dass ich alle meine LM-Maschinen schnell replizieren kann zu neuer Hardware.

Allein die Startgeschwindigkeit machte diese einfachen Schritte die Mühe wert. Sogar Dropbox hat gut übertragen - ich wollte nur, dass ich mich wieder anmelde, und es hat die ganze Zeit gedauert, um Dateien zu indizieren, aber es hat großartig funktioniert.

Thom Ives
quelle