Migrer vers un nouveau disque SSD
Pour une raison ou pour une autre il peut être nécessaire de migrer ses données d’un disque vers un autre. Dans le cas présent, il s’agit de profiter d’une disque SSD
Prérequis
On considére pour la suite de l’article, un poste informatique sous linux (une Debian) et deux disques durs. Le premier partitionné avec des données et un OS, le second vierge avec une capacité au moins égale au disque d’origine.
On prend en compte la présence d’un liveCD ou liveUSB avec la distribution systemrescuecd.
Le disque source se nommera sda, le disque cible sdb.
Migrer les données
Pour migrer les données, la solution la plus simple est d’effectuer :
dd if=/dev/sda of=/dev/sdb bs=128K conv=noerror
. Dans ce cas de figure on transfère l’intégralité des données présentes sur le disque par bloc de 128k et ignore les blocs cassés.
Il s’agit dans ce cas d’un clone complet (mbr, partition, données).
root@sysresccd /root % dd if=/dev/sda of=/dev/sdb
488397168+0 records in
488397168+0 records out
250059350016 bytes (250 GB) copied, 47081.5 s, 5.3 MB/s
Parmi les alternatives, on peut regarder du coté de la commande gddrescue et du liveCD clonezilla.
gddrescue se présente comme une amélioration de dd tandis que clonezilla est une distribution qui utilise entre autre partclone, partimage pour effectuer les copies.
Le résultat de la copie semble équivalent via ces différents moyens.
Adapter les UUID
Chaque partition primaire ou non se voit attribuer un UUID unique. Lors d’un clone, ces UUID sont copiés à l’identique.
Dans le cas d’un remplacement cela n’est pas problématique, on ne conserve qu’un disque.
Cela se complique si on utilise les 2 disques à l’identique en mêmes temps. Le système aura du mal à identifier les bonnes partitions. Pour l’aider on doit mettre à jour les UUID pour les rendre uniques.
Identifier les UUID
Pour connaître les UUID utilisés, la commande blkid
est utile :
root@sysresccd /root % blkid
[...]
/dev/sdb1: UUID="fb5f5328-bbd9-414f-8cff-73948982bbd3" TYPE="ext3" PARTUUID="6c2421e8-01"
/dev/sdb2: LABEL="Debian" UUID="0233ea8e-fc1b-4ca8-b1b2-93a070a54597" TYPE="ext4" PTTYPE="dos" PARTUUID="6c2421e8-02"
/dev/sdb3: UUID="D3OEQO-bmoc-c7E6-c0Km-qPY7-cqo5-KgPc5i" TYPE="LVM2_member" PARTUUID="6c2421e8-03"
/dev/mapper/vg00-swap: UUID="1490fd70-f4bb-4440-986e-f95d3a2352a0" TYPE="swap"
/dev/mapper/vg00-var: UUID="b61d9bde-5f2c-47b4-955d-b9a6f13ac091" TYPE="ext4"
Changer un UUID : tunefs
Pour les systèmes de fichiers présents directement sur un partition, (par exemple /dev/sda1), on peut mettre mettre à jour leur UUID avec tune2fs :
tune2fs -U random /dev/sdb2
Changer un UUID : LVM
Si on possède une partition utilisant LVM (comme /dev/sdb3), on remarquera que seul le dernier VG avec même UUID détecté sera détecté.
Modifier un UUID avec LVM n’est pas trivial. Vu l’objectif de l’article, je vous laisse vous reporter à des documentations plus pertinentes, au besoin.
Mettre à jour son fstab
Si nous avons modifié les UUID sur le nouveau disque, n’oublions pas de mettre à jour /etc/fstab
#/dev/sdb2
UUID=b411dc99-f0a0-4c78-9e50-148977be8539 / ext4 errors=remount-ro 0 1
Optimiser son disque SSD
Du fait du fonctionnement des SSD, il est possible d’optimiser le comportement du disque en exploitant la fonctionnalité TRIM et en limitant l’écriture des meta.
Cela donnerai pour sdb2
UUID=b411dc99-f0a0-4c78-9e50-148977be8539 / ext4 discard,noatime,errors=remount-ro 0 1
Si on utilise LVM, il est intéressant de mettre à jour aussi /etc/lvm/lvm.conf
devices {
[...]
issue_discards = 1
}
Contrôler le boot du nouveau disque
La dernière étape consiste à contrôler le bon état de grub.
root@sysresccd /root % mount --bind /dev /mnt/sdd/dev
root@sysresccd /root % mount --bind /dev/pts /mnt/sdd/dev/pts
root@sysresccd /root % mount --bind /proc /mnt/sdd/proc
root@sysresccd /root % mount --bind /sys /mnt/sdd/sys
root@sysresccd /root % mount --bind /run /mnt/ssd/run
root@sysresccd /root % chroot /mnt/sdd /bin/bash
root@sysresccd:/# grub-install --recheck /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
root@sysresccd:/# update-grub
Changer le disque
Maintenant le disque est prêt, il s’agit alors de retirer l’ancien disque et de mettre le nouveau.
- https://help.ubuntu.com/community/MovingLinuxPartition
- http://blog.oaktreepeak.com/2012/03/move_your_linux_installation_t.html
- http://askubuntu.com/questions/40372/how-to-move-ubuntu-to-an-ssd
- https://radu.cotescu.com/migrating-your-ubuntu-machine-to-a-ssd-drive/