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.

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.