Partitionierung und Dateikopie - während des Betriebs
Ich habe das gemacht, indem ich mit dem laufenden System angefangen habe. Ich habe die neue SSD in einen USB-SATA-Adapter gesteckt und partitioniert, LVM eingerichtet und die Dateien kopiert.
# confirm disk size is as expected for sdc
sudo fdisk -l /dev/sdc
# now partition - 500 MB partition as boot, the rest as a single (logical) partition
sudo cfdisk /dev/sdc
Ihre Festplatte sollte jetzt so aussehen:
sudo fdisk -l /dev/sdc
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 / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 * 63 979964 489951 83 Linux
/dev/sda2 979965 234441647 116730841+ 5 Extended
/dev/sda5 980028 234441647 116730810 82 Linux swap / Solaris
Der nächste Schritt besteht darin, die Verschlüsselung auf die Partition und LVM auf die Verschlüsselung zu setzen.
sudo cryptsetup -y luksFormat /dev/sdc5
sudo cryptsetup luksOpen /dev/sdc5 crypt
sudo vgcreate crypt-lvm /dev/mapper/crypt
sudo lvcreate -L4G -nswap crypt-lvm
sudo lvcreate -l100%FREE -nroot crypt-lvm
Erstellen Sie nun die Dateisysteme und hängen Sie sie ein und kopieren Sie Ihr System über.
sudo mkfs.ext2 /dev/sdc1
# you do ls /dev/mapper to check the name if different
sudo mkfs.ext4 /dev/mapper/crypt-root
sudo mkdir /mnt/boot
sudo mkdir /mnt/root
sudo mount -t ext2 /dev/sdc1 /mnt/boot
sudo mount -t ext4 /dev/mapper/crypt-root /mnt/root
# rsync files
sudo rsync -a /boot/* /mnt/boot/
sudo rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude run --exclude boot --exclude sys --exclude tmp /* /mnt/root/
Bis zu diesem Punkt können Sie das System am Laufen halten und verwenden. Jetzt müssen Sie das System herunterfahren und von einer Live-CD / USB booten, damit das System heruntergefahren werden kann.
Partitionierung und Dateikopie - Live-CD / USB
Sobald Sie gebootet haben, öffnen Sie ein Terminal und:
sudo apt-get install lvm2
# mount old hard drive
sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
sudo mkdir /mnt/sdaroot
# you can do ls /dev/mapper to check the name if it is different
sudo mount -t ext4 /dev/mapper/sda5_crypt--root /mnt/sdaroot
# mount new hard drive (over USB)
sudo cryptsetup luksOpen /dev/sdc5 sdc5_crypt
sudo mkdir /mnt/sdcroot
sudo mount -t ext4 /dev/mapper/sdc5_crypt--root /mnt/sdcroot
# final rsync
sudo rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude run --exclude boot --exclude sys --exclude tmp /mnt/sdaroot/* /mnt/sdcroot/
Chroot
# prepare chroot
cd /mnt/sdcroot
sudo mkdir boot
# these directories are set up by the system and we need them inside the chroot
sudo mount -t proc proc /mnt/sdcroot/proc
sudo mount -t sysfs sys /mnt/sdcroot/sys
sudo mount -o bind /dev /mnt/sdcroot/dev
# now enter the chroot
sudo chroot /mnt/root/
UUIDs ändern
Jetzt sind wir root in der Chroot und führen die folgenden Befehle aus:
# inside chroot, as root
mount -t ext2 /dev/sdc1 /boot
blkid
Jetzt sehen Sie alle UUIDs für die verschiedenen Datenträger im System. Sie müssen die UUIDs in bearbeiten /etc/fstab
und /etc/crypttab
mit den Werten für übereinstimmen/dev/sdc?
In müssen /etc/fstab
Sie die UUID für die Startdiskette verwenden - /dev/sdc1
wenn Ihre Datenträger den gleichen Buchstaben wie ich haben.
In müssen /etc/crypttab
Sie die UUID für die andere (große) Partition verwenden - /dev/sdc5
wenn Ihre Festplatten den gleichen Buchstaben wie ich haben.
initramfs und grub
# now update initramfs for all installed kernels
update-initramfs -u -k all
# install grub and ensure it is up to date
grub-install /dev/sdc # NOTE sdc NOT sdc1
update-grub
# hit Ctrl-D to exit chroot
sudo umount /mnt/root
Fahren Sie jetzt herunter, legen Sie die SSD in Ihren Laptop, drücken Sie die Daumen und booten Sie.
Nützliche Links
Guter Leitfaden für das Cryptsetup-Material unter http://www.debian-administration.org/articles/577
Zum Installieren von grub auf einer externen Partition: /programming/247030/how-to-set-up-grub-in-a-cloned-hard-disk
https://help.ubuntu.com/community/UsingUUID
sudo mount -t proc proc /mnt/sdcroot/proc
sudo mount -t sysfs sys /mnt/sdcroot/sys
sudo mount -o bind /dev /mnt/sdcroot/dev
before do:sudo mkdir /mnt/sdcroot/proc
sudo mkdir /mnt/sdcroot/sys
--- In meinem Fall funktionierte der Befehl zum Erstellen des initramfs nicht, da die Kernel-Versionen nicht übereinstimmten und initramfs daher nicht konnten finde den richtigen Kernel in / boot, so dass ich nicht alles zum Laufen bringen kann.Ich habe versucht zu kommentieren, aber mir fehlt der Ruf :-)
Wie auch immer, ich habe die erstaunliche Anleitung von Hamish erfolgreich verwendet, um auf meinem Linux-basierten, mit luks verschlüsselten Arbeitslaptop auf eine SSD zu migrieren. Nur ein paar Anmerkungen:
1. Nach dem Erstellen des Swap lv auch verwenden
um den Swap zu initialisieren, andernfalls schlägt er beim Booten fehl, wie im obigen Kommentar angegeben.
2. Der
rsync
Befehl ist zu restriktiv. Wenn ich es mit benutzte--exclude run
, traf ich auf alle Arten von Veeeeeeery, die im Allgemeinen von Internetfehlern unbemerkt blieben. Der Lauf muss enthalten sein . Das sys ist beim Booten im Wartungsmodus ohnehin leer, so dass es bleiben kann. Auch wenn Sie tmp ausschließen, erhalten die neu auf dem Ziel / tmp und / var / tmp erstellten Dateien kein Sticky-Bit. Vergessen Sie nicht, sie selbst festzulegen. Am Ende habe ich so etwas benutztInsgesamt - ein guter Leitfaden, zeigt den Überblick über den Prozess genau! Bringt dir sozusagen das Angeln bei!
quelle
[Konnte keinen Kommentar einfügen, obwohl dieser Beitrag eher in einen Kommentar als in eine Antwort gehört.]
Mit dieser Methode können Sie auch eine vorhandene ** nicht ** verschlüsselte lvm-Installation in eine verschlüsselte lvm-Installation auf der neuen Festplatte verschieben. Sie müssen nur die zusätzlichen Schritte ausführen (um Cryptsetup zu installieren, während es auf der Zieldiskette gespeichert ist), wie unter http://blog.andreas-haerter.com/2011/06/18/ubuntu-full-disk-encryption-lvm erwähnt -luks , speziell:
Der obige Befehl installiert auch lvm2 auf dem Zieldatenträger. Dies ist zwar nicht erforderlich, wäre jedoch hilfreich gewesen, wenn Sie ein System ohne lvm mithilfe einer Live-CD / DVD auf ein lvm-System auf Ihrer SSD verschoben hätten. Beachten Sie, dass Sie auch die Datei /etc/resolve.conf in Ihre Chroot kopieren müssen, damit Sie apt-get install erfolgreich ausführen können. Sie wird unter der oben genannten URL (Codefragment) angegeben:
sudo cp /etc/resolv.conf /mnt/sdcroot/etc/resolv.conf
Außerdem ist es einfacher, eine cp (mit einer anderen Installation (nicht aus der Quellinstallation), z. B. einer Live-CD / DVD), anstelle von rsync für die / -Partition auszuführen, wie unter Verschieben von Ubuntu auf eine SSD beschrieben
Sie sollten Swap möglicherweise auch mit
mkswap
auf Ihrer/dev/mapper/<swap-name-here>
Partition erstellen .Sollte gleichzeitig auch die TRIM-Unterstützung aktivieren, wie unter http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html erwähnt
WARNUNG: Weiter unten stehender Text ist nicht für Benutzer von MBR gedacht, auf die sich dieses Thema / dieser Thread zu beziehen scheint. Ich fand das trotzdem nützlich, also poste ich für diejenigen, die Anweisungen in diesem Thread / Thema an ihre GPT-Festplatte anpassen können.
Und für diejenigen, die GPT anstelle von MBR verwenden (mit parted / gparted und gdisk anstelle von fdisk), habe ich gelernt, dass Ihre / boot-Partition (die unverschlüsselt ist) nicht nach Ihrem luks-Gerät in der GPT-Reihenfolge nummeriert werden sollte. Da ich nach dem Erstellen der Partitionen / boot und luks mit gparted eine ESP-Partition erstellt hatte, musste ich die Partitionsnummern sortieren, sodass / boot immer noch weniger nummeriert war als das luks-Gerät.
Abgesehen davon und nicht im Zusammenhang mit diesem Beitrag, haben diejenigen, die GPT und UEFI mit rEFInd verwenden, möglicherweise Probleme, eine Liste der Partitionen anzuzeigen, von denen gebootet werden kann, wenn Sie mehrere ESPs in Ihrem System haben. Ich habe also stattdessen eine pro Festplatte Wenn ich rEFInd benutze, benutze ich grub, was gut funktioniert.
quelle
Vor dem Abschnitt initramfs und grub müssen Sie möglicherweise:
quelle
Ein bisschen zu spät, aber Sie müssen die Datei /etc/initramfs-tools/conf.d/resume aktualisieren, um die Swap-Änderung wiederzugeben. Ohne diese Änderung wird der Ruhezustand unterbrochen.
quelle