Cloner un disque dur sous Ubuntu
Divulgâchage : Que ce soit suite à l’achat d’un nouveau disque, pour faire une sauvegarde, ou toute autre raison, vous souhaitez copier, à l’identique, le contenu d’un disque dur ou d’une clef USB. Mais, comme on n’est jamais trop prudent, le mieux est de s’assurer de ne rien toucher à l’original. On vous montre comment faire sous Ubuntu Desktop. On commence par désactiver le montage automatique. Ensuite, nous allons faire une empreinte cryptographique du périphérique avant de copier celui-ci grâce à dd. Grâce à l’empreinte cryptographique, on peut ensuite vérifier que la copie s’est bien passée.
Lors d’une expertise, lorsque nous devons mener une investigation sur une pièce d’un dossier, il est important de la conserver intacte.
Imaginez-vous… Vous ouvrez votre scellé, vous branchez le disque dur qu’il contenait. Une fausse manipulation, et hop ! Des pièces à conviction disparaissent…
Avant toute action, il est donc indispensable de copier les disques durs et autres clés USB, afin de pouvoir travailler sur ces copies l’esprit tranquille.
Nous allons donc vous montrer comment vous y prendre en utilisant Ubuntu.
Désactiver montage automatique
Ne branchez pas votre disque tout de suite !
Afin d’éviter de modifier quoi que ce soit sans le faire exprès, la
première chose à faire est de désactiver le montage automatique. Pour
cela, on a besoin d’installer le paquet dconf-editor
sudo apt-get install dconf-editor
dconf-editor
est un outil en interface graphique, permettant de gérer les variables de configuration. L’outil en ligne de commande équivalent estgsettings
.
Lancer dconf-editor
. Naviguez jusqu’à
org.gnome.desktop.media-handling
. De là, vous pouvez
désactiver le montage automatique des media amovibles, en passant
automount de I à O.
Repérer son disque
Vous êtes à présent sûr que votre disque ne va pas se monter tout seul, et qu’une mauvaise manipulation ne pourra pas modifier quoique ce soit. Vous pouvez donc brancher votre disque.
Éteignez votre PC, branchez votre disque, redémarrez.
Vous allez devoir repérer à quel périphérique correspond votre
disque. Pour cela, on utilise fdisk
, auquel on demande de
lister toutes les partitions existantes.
sudo fdisk -l
Les disques dur SATA et SSD sont dans /dev/sd…
, les
disques IDE /dev/hd…
. Servez-vous de vos connaissances sur
votre disque dur pour le retrouver (en utilisant sa taille, l’OS
installé…).
Par exemple : je cherche à repérer une clef USB de 32Go contenant mes données à investiguer…
Après avoir fait appel à
fdisk
, je repère deux périphériques intéressants, l’un dans/dev/sda
et l’autre dans/dev/sdb
. En observant les détails, notamment la taille et l’OS, je peux me rendre compte que le disque dur SSD de 240Go sur lequel tourne mon Linux se trouve dans/dev/sda
et que ma clef USB qui fait 32Gb, formattée pour Windows, se trouve dans/dev/sdb
.Disque /dev/sda : 223,6 GiB, 240057409536 octets, 468862128 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : ---- Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/sda1 * 2048 468860927 468858880 223,6G 83 Linux Disque /dev/sdb : 29,3 GiB, 31457280000 octets, 61440000 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : ---- Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/sdb1 * 64 61439999 61439936 29,3G b W95 FAT32
L’affichage utilisant des GiB, soit des Gibibytes, les valeurs sont légèrement inférieures à celles en Go.
Calculer la somme de contrôle
Afin de pouvoir vérifier si des données ont été modifiée, on va en calculer la somme de contrôle. En comparant le résultat avant et après la manipulation, on contrôlera qu’aucune donnée n’a été altérée.
On utilisera la fonction de hachage sha256sum
, couplée à
dd
. D’un côté, car elle est installée par défaut sur
Ubuntu, et d’un autre car l’ANSSI la recommande pour les empreintes
cryptographiques.
RègleHash-2.Pour une utilisation au-delà de 2020, la taille minimale des empreintes générées par une fonction de hachage est de 256 bits.
Le mécanisme de hachageSHA-256 défini dans le FIPS 180-2 est conforme au référentiel.
Référentiel Général de Sécurité, ANSSI
En mettant en entrée (if
) votre périphérique et en
envoyant la sortie sur sha256sum, on obtient l’empreinte
SHA-256 du périphérique.
sudo dd if=device |sha256sum
Dans le cas de ma clef USB.
time sudo dd if=/dev/sdb |sha256sum 61440000+0 enregistrements lus 61440000+0 enregistrements écrits 31457280000 bytes (31 GB, 29 GiB) copied, 1773,13 s, 17,7 MB/s e3375bb22d59233757cbcb24d7f4ffa7b25eaff40e60e40f42f3a22435bf2655 - real 29m33,203s user 12m44,728s sys 4m15,840s
En utilisant
time
, on peut se rendre compte que pour calculer l’empreinte de ma clef de 32Go, il a fallu 30 minutes environ. Bon à savoir lorsque l’on aura un disque de 1To.
Copier le disque
On a branché le périphérique, en s’assurant qu’on ne pouvait pas
faire de bêtises et on a fait une empreinte, il ne nous reste plus qu’à
le cloner. Pour cela, on utilise encore une fois dd
avec la
commande suivante :
sudo dd if=device of=fichier.iso conv=notrunc,noerror status=progress
Où les paramètres ont le sens suivant :
- device est votre périphérique, dans le cas de ma
clef USB,
/dev/sdb
- fichier.iso est le fichier image dans lequel sera cloné mon périphérique
- conv=notrunc,noerror signifient de ne pas tronquer le fichier en sortie et de continuer en cas d’erreur
- status=progress me permet de savoir où j’en suis dans ma copie.
Toujours dans le cas de ma clef USB
time sudo dd if=/dev/sdb of=clef.iso conv=notrunc,noerror status=progress 31444406272 bytes (31 GB, 29 GiB) copied, 1981 s, 15,9 MB/s 61440000+0 enregistrements lus 61440000+0 enregistrements écrits 31457280000 bytes (31 GB, 29 GiB) copied, 1981,74 s, 15,9 MB/s real 33m4,898s user 1m36,367s sys 11m27,615s
Notez que ça m’a pris encore une demi heure…
Vérifier l’intégrité
Notre copie est faite, nous allons calculer une nouvelle empreinte du périphérique, afin de vérifier que celui-ci n’a pas été altéré pendant la copie. Profitons-en également pour vérifier que la copie est bien conforme à l’originale.
Pour cela, on réutilise tout simplement la commande de tout à l’heure, sur le périphérique, puis sur sa copie. Et enfin on compare les empreintes.
sudo dd if=device |sha256sum
Sur la clef, afin de s’assurer qu’il n’a pas été touché.
time sudo dd if=/dev/sdb |sha256sum [sudo] Mot de passe de arsouyes : 61440000+0 enregistrements lus 61440000+0 enregistrements écrits 31457280000 bytes (31 GB, 29 GiB) copied, 1755,58 s, 17,9 MB/s e3375bb22d59233757cbcb24d7f4ffa7b25eaff40e60e40f42f3a22435bf2655 - real 29m18,712s user 10m34,172s sys 3m37,959s
Puis, sur l’iso pour vérifier que la copie est bien conforme à l’original :
time sudo dd if=clef.iso |sha256sum [sudo] Mot de passe de arsouyes : 61440000+0 enregistrements lus 61440000+0 enregistrements écrits 31457280000 bytes (31 GB, 29 GiB) copied, 1111,31 s, 28,3 MB/s e3375bb22d59233757cbcb24d7f4ffa7b25eaff40e60e40f42f3a22435bf2655 - real 18m34,487s user 10m2,526s sys 3m56,255s
Ici, bingo, elles sont bien identiques.
Une donnée altérée serait détectée par un sha256 différent :
- Si celle du fichier iso est différente, je vous conseil de refaire la copie.
- Si celle du disque après copie est différente, votre disque a été altéré, vous pourriez utiliser l’ISO pour réécrire le disque original.
- Si les deux diffèrent, c’est trop tard et si c’est important, il faudra peut être regarder où ils diffèrent.
Vous pouvez aussi mettre l’empreinte initiale dans un fichier (par exemple Initial_CHECKSUM) et calculer l’empreinte avec l’option
-c
comme suit :sudo dd if=device | sha256sum -c Initial_CHECKSUM
Où
device
est soit votre fichier iso, soit votre périphérique (en fonction de ce que vous voulez faire).Si l’empreinte est la même, vous aurez un joli petit
OK
en sortie, mais si l’empreinte diffère, vous obtiendrez unFAILED
suivit desha256sum: WARNING: 1 computed checksum did NOT match
.
Et après
Maintenant que vous avez une copie toute belle de votre périphérique, vous allez pouvoir replacer votre original dans son petit sachet et refermer votre scellé.
Si vous n’êtes pas expert judiciaire et que vous n’avez pas à gérer de scellés, vous pouvez quand même être fier de ne rien avoir modifié sur votre disque original.