Récupération de données · 4 min read · Dec 25, 2025

Récupérer des données à partir de partitions RAID1 LVM avec Knoppix Linux LiveCD

Récupérer des données à partir de partitions RAID1 LVM avec Knoppix Linux LiveCD

Version 1.0
Auteur : Till Brehm

Dernière modification : 04/11/2007

Ce tutoriel décrit comment sauver des données à partir d’un disque dur unique qui faisait partie d’une configuration LVM2 RAID1 comme celle créée par exemple par l’installateur de Fedora Core. Pourquoi est-il si problématique de récupérer les données ? Chaque disque dur qui faisait auparavant partie d’une configuration LVM RAID1 contient toutes les données qui étaient stockées dans le RAID, mais le disque dur ne peut pas simplement être monté. Tout d’abord, une configuration RAID doit être configurée pour la ou les partition(s) et ensuite LVM doit être configuré pour utiliser cette (ces) partition(s) RAID avant que vous puissiez la monter. J’utiliserai le Knoppix Linux LiveCD pour effectuer la récupération des données.

Prérequis

J’ai utilisé un Knoppix 5.1 LiveCD pour ce tutoriel. Téléchargez l’image ISO du CD ici et gravez-la sur un CD, puis connectez le disque dur qui contient la ou les partition(s) RAID au contrôleur IDE / ATA de votre carte mère, mettez le CD Knoppix dans votre lecteur de CD et démarrez à partir du CD.

Le disque dur que j’ai utilisé est un disque IDE qui est attaché au premier contrôleur IDE (hda). Dans mon cas, le disque dur ne contenait qu’une seule partition.

Restauration du RAID

Après que Knoppix a démarré, ouvrez un shell et exécutez la commande :

sudo su

pour devenir l’utilisateur root.

Comme je n’ai pas le fichier mdadm.conf de la configuration originale, je le crée avec cette commande :

mdadm --examine --scan /dev/hda1 >> /etc/mdadm/mdadm.conf

Le résultat devrait être similaire à celui-ci :

DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a

Modifiez le fichier et ajoutez devices=/dev/hda1,missing à la fin de la ligne qui décrit le tableau RAID.

vi /etc/mdadm/mdadm.conf

Enfin, le fichier ressemble à ceci :

DEVICE partitions
CREATE owner=root group=disk mode=0660 auto=yes metadata=1
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=a28090aa:6893be8b:c4024dfc:29cdb07a devices=/dev/hda1,missing

La chaîne /dev/hda1 est le périphérique matériel et missing signifie que le deuxième disque de ce tableau RAID n’est pas présent pour le moment.

Modifiez le fichier /etc/default/mdadm :

vi /etc/default/mdadm

et changez la ligne :

AUTOSTART=false

en :

AUTOSTART=true

Maintenant, nous pouvons démarrer notre configuration RAID :

/etc/init.d/mdadm start
/etc/init.d/mdadm-raid start

Pour vérifier si notre périphérique RAID est ok, exécutez la commande :

cat /proc/mdstat

La sortie devrait ressembler à ceci :

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 hda1[1]
293049600 blocks [2/1] [_U]

unused devices:

Récupération de la configuration LVM

Le fichier de configuration LVM ne peut pas être créé par une commande simple comme le mdadm.conf, mais LVM stocke une ou plusieurs copie(s) du contenu du fichier de configuration au début de la partition. J’utilise la commande dd pour extraire la première partie de la partition et l’écrire dans un fichier texte :

dd if=/dev/md0 bs=512 count=255 skip=1 of=/tmp/md0.txt

Ouvrez le fichier avec un éditeur de texte :

vi /tmp/md0.txt

Vous trouverez d’abord des données binaires, puis une partie du fichier de configuration comme ceci :

VolGroup00 {
    id = "evRkPK-aCjV-HiHY-oaaD-SwUO-zN7A-LyRhoj"
    seqno = 2
    status = ["RESIZEABLE", "READ", "WRITE"]
    extent_size = 65536     # 32 Megabytes
    max_lv = 0
    max_pv = 0

    physical_volumes {

        pv0 {
            id = "uMJ8uM-sfTJ-La9j-oIuy-W3NX-ObiT-n464Rv"
            device = "/dev/md0" # Hint only

            status = ["ALLOCATABLE"]
            pe_start = 384
            pe_count = 8943 # 279,469 Gigabytes
        }
    }

    logical_volumes {

        LogVol00 {
            id = "ohesOX-VRSi-CsnK-PUoI-GjUE-0nT7-ltxWoy"
            status = ["READ", "WRITE", "VISIBLE"]
            segment_count = 1

            segment1 {
                start_extent = 0
                extent_count = 8942 # 279,438 Gigabytes

                type = "striped"
                stripe_count = 1    # linear

                stripes = [
                    "pv0", 0
                ]
            }
        }
    }
}

Créez le fichier /etc/lvm/backup/VolGroup00 :

vi /etc/lvm/backup/VolGroup00

et insérez les données de configuration afin que le fichier ressemble à l’exemple ci-dessus.

Maintenant, nous pouvons démarrer LVM :

/etc/init.d/lvm start

Lisez le volume :

vgscan

Lecture de tous les volumes physiques. Cela peut prendre un certain temps…
Groupe de volumes trouvé “VolGroup00” utilisant le type de métadonnées lvm2

pvscan

PV /dev/md0 VG VolGroup00 lvm2 [279,47 GB / 32,00 MB free]
Total : 1 [279,47 GB] / en utilisation : 1 [279,47 GB] / dans aucun VG : 0 [0 ]

et activez le volume :

vgchange VolGroup00 -a y
 1 logical volume(s) in volume group "VolGroup00" now active

Maintenant, nous pouvons monter la partition sur /mnt/data :

mkdir /mnt/data
mount /dev/VolGroup00/LogVol00 /mnt/data/

Si vous récupérez des données d’un disque dur avec des noms de fichiers au format UTF-8, il peut être nécessaire de les convertir dans votre locale actuelle non-UTF-8. Dans mon cas, le disque dur RAID provient d’un système Fedora Core avec des noms de fichiers encodés en UTF-8. Ma locale cible est ISO-8859-1. Dans ce cas, le script Perl convmv aide à convertir les noms de fichiers dans la locale cible.

Installation de convmv

cd /tmp
wget http://j3e.de/linux/convmv/convmv-1.10.tar.gz
tar xvfz convmv-1.10.tar.gz
cd convmv-1.10
cp convmv /usr/bin/convmv

Pour convertir tous les noms de fichiers dans /mnt/data à la locale ISO-8859-1, exécutez cette commande :

convmv -f UTF-8 -t ISO-8859-1 -r --notest /mnt/data/*

Si vous souhaitez tester la conversion d’abord, utilisez :

convmv -f UTF-8 -t ISO-8859-1 -r /mnt/data/*

Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.