Partitionnement et copie de fichiers - pendant l'exécution
Je l'ai fait en commençant par le système en cours d'exécution. J'ai branché le nouveau SSD dans un adaptateur USB SATA et l'ai partitionné, configuré LVM et copié les fichiers.
# 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
Votre disque devrait maintenant ressembler à:
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
L'étape suivante consiste à mettre le chiffrement sur la partition et LVM au-dessus du chiffrement.
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
Maintenant, créez les systèmes de fichiers, montez-les et copiez votre système.
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/
Jusqu'à ce point, vous pouvez maintenir le système en marche et l'utiliser. Vous devez maintenant arrêter et démarrer sur un CD / USB en direct afin que vous puissiez mettre le système dans un état d'arrêt.
Partitionnement et copie de fichiers - Live CD / USB
Une fois que vous avez démarré, ouvrez un terminal et:
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/
Modification des UUID
Maintenant, nous sommes root dans le chroot et exécutons les commandes suivantes:
# inside chroot, as root
mount -t ext2 /dev/sdc1 /boot
blkid
Vous verrez maintenant tous les UUID des différents disques du système. Vous devrez modifier les UUID dans /etc/fstab
et /etc/crypttab
faire correspondre les valeurs de/dev/sdc?
En /etc/fstab
vous devez utiliser l'UUID pour le disque de démarrage - /dev/sdc1
si vos disques ont la même lettre que moi.
Dans, /etc/crypttab
vous devez utiliser l'UUID pour l'autre (grande) partition - /dev/sdc5
si vos disques ont la même lettre que moi.
initramfs et 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
Maintenant, arrêtez, placez le SSD dans votre ordinateur portable, croisez les doigts et démarrez.
Liens utiles
Bon guide pour les trucs cryptsetup sur http://www.debian-administration.org/articles/577
Pour installer grub sur une partition externe: /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
au préalable faire:sudo mkdir /mnt/sdcroot/proc
sudo mkdir /mnt/sdcroot/sys
--- Dans mon cas, la commande pour créer les initramfs ne fonctionnait pas, car les versions du noyau ne correspondaient pas et donc initramfs ne pouvait pas trouver le bon noyau dans / boot, donc je n'ai pas pu faire fonctionner le tout.J'ai essayé de commenter, mais je manque de réputation :-)
Quoi qu'il en soit, j'ai utilisé avec succès le guide étonnant de Hamish pour migrer vers un SSD sur mon ordinateur portable de travail crypté luks sous Linux. Quelques remarques:
1. Après avoir créé le swap lv, utilisez également
pour initialiser le swap, sinon il échoue au démarrage, comme indiqué dans le commentaire ci-dessus.
2. La
rsync
commande est trop restrictive. Lorsque je l'ai utilisé avec--exclude run
, j'ai rencontré toutes sortes de veeeeeeery étranges généralement invisibles par les erreurs Internet. La course doit être incluse . Le sys est de toute façon vide lors du démarrage en mode maintenance, il peut donc rester. De plus, si vous excluez tmp, les nouvellement créés sur la cible / tmp et / var / tmp ne sont pas collants - n'oubliez pas de les régler vous-même. J'ai fini par utiliser quelque chose commeDans l'ensemble - un excellent guide, montre la vue d'ensemble du processus avec précision! Vous apprend à pêcher, pour ainsi dire!
la source
[Impossible de mettre un commentaire, bien que ce message appartienne à un commentaire plutôt qu'à une réponse]
En utilisant cette méthode, vous pouvez également déplacer une installation lvm cryptée ** non ** existante vers une installation lvm cryptée sur le nouveau disque; vous avez juste besoin des étapes supplémentaires (pour installer cryptsetup tout en étant chrooté sur le disque cible), comme mentionné sur http://blog.andreas-haerter.com/2011/06/18/ubuntu-full-disk-encryption-lvm -luks , en particulier:
La commande ci-dessus installe également lvm2 sur le disque cible, bien que ce ne soit pas nécessaire, cela aurait été utile si vous déplaciez un système non lvm vers un système lvm sur votre SSD, en utilisant un Live CD / DVD. Notez que vous devrez également copier le fichier /etc/resolve.conf sur votre chroot pour que vous puissiez exécuter l'installation d'apt-get avec succès: il est mentionné à l'URL mentionnée ci-dessus, fragment de code:
sudo cp /etc/resolv.conf /mnt/sdcroot/etc/resolv.conf
En outre, il est plus facile de faire un cp (en utilisant une installation différente (pas à partir de l'installation source qui est), par exemple, un CD / DVD live) au lieu de rsync pour la partition /, comme décrit dans Comment déplacer Ubuntu vers un SSD
Vous devriez aussi peut-être créer un swap à l'aide
mkswap
de votre/dev/mapper/<swap-name-here>
partition.Devrait également activer la prise en charge de TRIM en même temps, comme indiqué sur http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html
AVERTISSEMENT: le texte ci-dessous n'est pas destiné à ceux qui utilisent MBR, auquel ce sujet / thread semble appartenir. J'ai trouvé cela utile de toute façon, alors je poste au profit de ceux qui peuvent adapter les instructions de ce fil / sujet à leur disque GPT.
Et pour ceux qui utilisent GPT au lieu de MBR (en utilisant parted / gparted et gdisk au lieu de fdisk), j'ai appris à la dure que votre partition / boot (qui n'est pas chiffrée) ne devrait pas être numérotée après votre appareil luks dans l'ordre GPT. Parce que j'avais créé une partition ESP après avoir créé les partitions de périphérique / boot et luks à l'aide de gparted, j'ai ensuite dû trier les numéros de partition afin que / boot soit toujours moins numéroté que le périphérique luks.
En passant et sans lien avec ce post à proprement parler, ceux qui utilisent GPT et UEFI avec rEFInd, rEFInd a peut-être des problèmes pour vous présenter une liste de partitions à partir de laquelle démarrer si vous avez plusieurs ESP dans votre système, j'en ai une par disque, donc à la place d'utiliser rEFInd, j'utilise grub, qui fonctionne très bien.
la source
Avant la section initramfs et grub, vous devrez peut-être:
la source
Un peu tard, mais vous devez mettre à jour le fichier /etc/initramfs-tools/conf.d/resume pour refléter la modification du swap. Sans cette modification, vous romprez la fonction d'hibernation.
la source