Partclone - Clonage partition à partition

Mise à jour : Debian 11 buster/sid

Sommaire

1 - Préalable

1.1 - Installation

La commande parclone est fournie par le paquet homonyme

$ sudo aptitude install partclone
$ aptitude versions partclone
i 0.3.11-1+b3 testing 500

Le paquet partclone fournit les commandes partclone pour les différents types de système de fichier

$ sudo partclone.
partclone.btrfs partclone.fat partclone.nilfs2
partclone.chkimg partclone.fat12 partclone.ntfs
partclone.dd partclone.fat16 partclone.ntfsfixboot
partclone.exfat partclone.fat32 partclone.ntfsreloc
partclone.ext2 partclone.hfs+ partclone.reiser4
partclone.ext3 partclone.hfsp partclone.restore
partclone.ext4 partclone.hfsplus partclone.vfat
partclone.ext4dev partclone.imager partclone.xfs
partclone.extfs partclone.info
partclone.f2fs partclone.minix

1.2 - Précautions

Le risque de perte des données ne pouvant être écarté, il est important avant de démarrer l'opération

1.3 - Préparation partitions

Dans ce qui suit, on prend pour exemple le clonage d'une partition /dev/sdb1 (test) vers une partition /dev/sdb2 (recopie) de même taille.

La partition à cloner est formatée pour l'exemple en ext4

$ sudo parted -s /dev/sdb mktable gpt mkpart test ext2 5GiB 6GiB mkpart recopie ext2 2MiB 1026MiB
$ sudo parted /dev/sdb unit MiB print
....
Number Start End Size File system Name Flags
2 2,00MiB 1026MiB 1024MiB ext4 recopie
1 5120MiB 6144MiB 1024MiB ext4 test
$ sudo mkfs.ext4 /dev/sdb1
$ sudo mount /dev/sdb1 /mnt
$ sudo chown <user>:<user> /mnt
$ for i in {a..z}; do dd if=/dev/urandom of=/mnt/random$i bs=4K count=2500; done
$ sha256sum /mnt/random* >>/mnt/shalist
$ sha256sum -c /mnt/shalist
/mnt/randoma: Réussi
/mnt/randomb: Réussi
/mnt/randomc: Réussi
/mnt/randomd: Réussi
/mnt/randome: Réussi
/mnt/randomf: Réussi
/mnt/randomg: Réussi
/mnt/randomh: Réussi
......

2 - Recopie de partition à partition

La partition source est recopiée dans une partition cible, qui doit-être disponible et de taille au moins égale à la partition d'origine

2.1 - Clonage partition avec système de fichier ext4

$ sudo parted /dev/sdb unit MiB mkpart recopie ext2 2MiB 1026MiB print
....
Number Start End Size File system Name Flags
2 2,00MiB 1026MiB 1024MiB ext2 recopie
1 5120MiB 6144MiB 1024MiB ext4 test
$ sudo umount /dev/sdb{1,2}
$ sudo partclone.ext4 -b -d -s /dev/sdb1 -o /dev/sdb2
$ sudo mount /dev/sdb2 /mnt
$ sha256sum -c /mnt/shalist

2.2 - Clonage partition avec système de fichiers vfat

Procéder comme pour le clonage d'une partition avec système de fichiers ext4 en utilisant la commande partclone.vfat au lieu de partclone.ext4

3 - Clonage de partition à fichier image

$ sudo umount /dev/sdb1
$ sudo partclone.ext4 -c -d -s /dev/sdb1 -o clone.img

avec les options

$ ls -lh clone.img
-rw------- 1 root root 305M juin 1 09:48 clone.img

$ sudo df -BM /dev/sdb1
Sys. de fichiers blocs de 1M Utilisé Disponible Uti% Monté sur
/dev/sdb1 976M 257M 653M 29% /mnt

4 - Restauration de fichier image à partition

$ sudo parted /dev/sdb unit MiB print
....
Number Start End Size File system Name Flags
2 2,00MiB 1026MiB 1024MiB ext4 recopie
1 5120MiB 6144MiB 1024MiB ext4 test
$ sudo umount /dev/sdb2
$ sudo partclone.ext4 -r -d -s clone.img -o /dev/sdb2
$ sudo mount /dev/sdb2 /mnt
$ sha256sum -c /mnt/shalist