Wie übertrage ich Ubuntu auf eine SSD, aber bleibe auf der Festplatte zu Hause?

7

Ich möchte mein vorhandenes Ubuntu Trusty (14.04.1) -System (einschließlich installierter Apps von PPAs) auf eine SSD übertragen. Ich möchte mein vorhandenes Home-Verzeichnis auf der Festplatte behalten. Was ist die beste Methode, vorzugsweise eine, bei der Ubuntu nicht neu installiert wird?

John Rose
quelle
Mit Clonezilla können Sie ganz einfach ein vollständiges Disc-Image Ihrer Ubuntu-Installation erstellen, wie in dieser Antwort beschrieben . Sie können das Image dann auf Ihrer SSD installieren / wiederherstellen.
Larouxn
Wie würde ich dann Ubuntu dazu bringen, mein Home-Verzeichnis von der Festplatte anstatt von der SSD abzuholen?
John Rose
Haben Sie eine separate Home-Partition?
Larouxn
Außerdem ist der sdd viel kleiner als die Festplatte, dh er enthält das System, jedoch nicht die Daten (on / home).
John Rose
Passt Ihre Ubuntu-Installation von selbst auf die SSD? (ohne Zuhause)
Larouxn

Antworten:

6

Beim Booten von Live-Medien kann dies in drei Schritte unterteilt werden:

  1. Kopieren der Betriebssystemdaten auf das neue Laufwerk

    Stellen Sie vor dem Start sicher, dass das neue Laufwerk über die richtige Partitionstabelle verfügt . GPT ist (meistens) für EFI und erfordert eine spezielle Partition für den Bootloader. Vergessen Sie nicht, die neue Betriebssystempartition bei MBR-Installationen als bootfähig zu markieren.

    Die Verwendung von rsync von Live-Medien sollte die praktischste Lösung zum Kopieren der Dateien sein:

    sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
    
  2. Installieren Sie den Bootloader auf dem neuen Laufwerk

    sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
    

    /dev/sdX sollte in den tatsächlichen Gerätenamen des neuen Laufwerks geändert werden.

    Wenn Sie eine EFI-Installation anstelle von MBR haben, sollten Sie sicherstellen, dass Sie das Live-Medium im EFI-Modus gestartet, ausgeführt sudo apt-get install grub-efi-amd64, eine EFI-Systempartition (ESP) auf dem neuen Laufwerk erstellt und das ESP gemountet haben /media/$mountpoint_of_new_drive/boot/efi(oder die --efi-directoryOption verwenden) , schauen Sie sich die Manpage zu grub-install an .

  3. Aktualisieren Sie die Konfiguration

    Sie müssen die UUID /etc/fstabfür aktualisieren /. Rufen Sie die UUID der neuen Betriebssystempartition ab, indem Sie sie ausführen sudo blkid /dev/sdXY, kopieren Sie die UUID ohne Anführungszeichen, führen Sie sudo nano /media/$mountpoint_of_new_drive/etc/fstabdie vorhandene UUID aus und ersetzen Sie sie in einer Zeile, die folgendermaßen aussieht:

    # / was on /dev/sda2 during installation
    UUID=a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc    /    ext4    errors=remount-ro    0 1
    

    Bevor Sie die Zeile ersetzen, möchten Sie möglicherweise eine Kopie davon erstellen, indem Sie Ctrl+ Kund Ctrl+ drücken U. Da sich Ihr Zuhause noch auf dem alten Laufwerk befindet, sollte die alte UUID korrekt sein und Sie müssten lediglich den Mountpoint aktualisieren /home/$your_username(durch $your_usernameden Namen des Home-Verzeichnisses Ihres Benutzers ersetzen ) und einige Optionen (beachten Sie relatime,aclund 2am Ende):

    # Mountpoint for home or user partition
    UUID=063a996a-0303-42b2-b719-af920fd105fa    /home/$your_username  ext4    relatime,acl     0 2
    

    Speichern Sie mit Ctrl+ Ound beenden Sie mit Ctrl+ X.

    Sie sollten darüber nachdenken, die einzelnen Home-Verzeichnisse in eine separate homePartition zu verschieben (es handelt sich nur um eine Partition, in der die Home-Verzeichnisse des Benutzers wie /homein gemountet fstabsind. Sie können sie sudo rsync -averneut zum Kopieren von Daten verwenden. Weitere Informationen finden Sie unter Wie kann ich mein / home-Verzeichnis auf eine andere Partition verschieben, wenn dies bereits geschehen ist? Teil der / Partition? ), da Sie auf diese Weise für jeden Benutzer eine neue Zeile erstellen müssten.

    Wenn Sie eine neue Swap-Partition auf der SSD erstellt haben, müssen Sie auch hier die UUID aktualisieren:

    # SSD swap
    UUID=b7c315cb-cf89-463b-888a-185a1faa8250       none            swap    sw                              0       0
    

    Außerdem müssen Sie die UUID der Swap-Partition in aktualisieren /media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resume, sudo update-initramfs -k all -unach dem ersten Booten vom neuen Laufwerk ausführen und neu starten , damit der Ruhezustand wieder funktioniert.

    Denken Sie daran, den Mountpoint für das ESP auch in fstab für EFI-Installationen zu aktualisieren .

    Sieht kompliziert aus, ist aber einfach zu handhaben, nur schwer und langwierig im Detail zu beschreiben.


Fehlerbehebung

grub-install lässt sich mit UEFI irgendwie nicht installieren

Hinweis: Sie haben wahrscheinlich vergessen zu rennen, sudo apt-get install grub-efi-amd64als GRUB etwas darüber sagt i386-pc.

  • Sie haben den Inhalt Ihrer root ( /) -Partition kopiert, einschließlich /boot, richtig?
  • Sie haben den Inhalt Ihres ESP kopiert? Tun Sie das, wenn Sie es nicht getan haben.

    • Bearbeiten Sie EFI/ubuntu/grub.cfgauf dem neuen ESP. Das Ersetzen der UUID durch die UUID der neuen Root-Partition sollte ausreichen, wenn nicht auch das hd0,gpt2Teil aus diesem Beispiel entsprechend geändert wird. So sieht der Inhalt einer Datei normalerweise aus:

      search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2
      set prefix=($root)'/boot/grub'
      configfile $prefix/grub.cfg
      
  • Starten Sie von Ihrer alten Installation, führen Sie aus sudo update-grub, os-prober sollte die neue Installation auf der anderen Partition finden und einen GRUB-Eintrag hinzufügen.

    • Starten Sie diesen neuen Eintrag.
    • Sie sollten jetzt von der SSD booten und sudo update-grubhier erneut ausführen , um die GRUB-Konfiguration auf der SSD zu aktualisieren und zu korrigieren.
  • Führen Sie efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu"diese Option aus, um den Bootloader für die Neu- / Übertragungsinstallation als neue Startoption zum UEFI-NVRAM hinzuzufügen. /dev/sdXist der Gerätename der neuen Festplatte, Ydie Partitionsnummer.
LiveWireBT
quelle
Danke für die Info: sehr klar und umfangreich. Ich werde jetzt die SSD, die Laufwerksschachthalterung, die Daten- und Stromkabel bestellen.
John Rose
Ich verstehe die Verwendung von / media / $ mountpoint_of_old_drive / in Schritt 1 nicht. Wenn vom alten Laufwerk gebootet wird, hat das alte Laufwerk keinen Mountpoint für sich. Daher sollte der Befehl lauten: sudo rsync -av --exclude = / home / * / / media / $ mountpoint_of_new_drive / Bin ich korrekt?
John Rose
@ JohnRose Die Anweisungen sollten beim Booten von Live-Medien befolgt werden.
LiveWireBT
Entschuldigung: Ich habe das "Booten von Live-Medien" nicht bemerkt. Ich habe mit gparted eine GPT-Partitionstabelle auf der SSD erstellt. Soll ich eine Partition erstellen und wenn ja, welchen Typ? Ich verwende EFI im BIOS. Auf meiner Festplatte (mit GPT & EFI) gibt es 3 Partitionen (mit GPT): fat32 mit einer Größe von 512 MB mit Boot-Set, ext4 mit einer Größe von 690,24 GB, Linux-Swap mit einer Größe von 7,90 GB.
John Rose
Ich habe Partitionen auf der SDD gemäß der Festplatte erstellt (aber mit der ext4, die kleiner ist, da sie / home nicht enthält), dh fat32, linux-swap & ext4, und Schritt 1 (rysnc) OK ausgeführt. Siehe nächster Kommentar.
John Rose