Recupero dati · 4 min read · Dec 25, 2025

Recupera Dati Da Partizioni RAID1 LVM Con Knoppix Linux LiveCD

Recupera Dati Da Partizioni RAID1 LVM Con Knoppix Linux LiveCD

Versione 1.0
Autore: Till Brehm

Ultima modifica: 04/11/2007

Questo tutorial descrive come recuperare dati da un singolo disco rigido che faceva parte di un setup LVM2 RAID1 come quello creato ad esempio dall’installer di Fedora Core. Perché è così problematico recuperare i dati? Ogni singolo disco rigido che in precedenza faceva parte di un setup LVM RAID1 contiene tutti i dati che erano memorizzati nel RAID, ma il disco rigido non può semplicemente essere montato. Prima, un setup RAID deve essere configurato per la (le) partizione(i) e poi LVM deve essere impostato per utilizzare questa (queste) partizione(i) RAID prima di poterlo montare. Userò il Knoppix Linux LiveCD per effettuare il recupero dei dati.

Requisiti

Ho usato un Knoppix 5.1 LiveCD per questo tutorial. Scarica l’immagine ISO del CD da qui e masterizzala su CD, poi collega il disco rigido che contiene la (le) partizione(i) RAID al controller IDE / ATA della tua scheda madre, inserisci il CD di Knoppix nel tuo lettore CD e avvia dal CD.

Il disco rigido che ho usato è un’unità IDE collegata al primo controller IDE (hda). Nel mio caso, il disco rigido conteneva solo una partizione.

Ripristino Del Raid

Dopo che Knoppix è stato avviato, apri una shell ed esegui il comando:

sudo su

per diventare l’utente root.

Poiché non ho il file mdadm.conf dalla configurazione originale, lo creo con questo comando:

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

Il risultato dovrebbe essere simile a questo:

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

Modifica il file e aggiungi devices=/dev/hda1,missing alla fine della riga che descrive l’array RAID.

vi /etc/mdadm/mdadm.conf

Infine, il file appare così:

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 stringa /dev/hda1 è il dispositivo hardware e missing significa che il secondo disco in questo array RAID non è presente al momento.

Modifica il file /etc/default/mdadm:

vi /etc/default/mdadm

e cambia la riga:

AUTOSTART=false

in:

AUTOSTART=true

Ora possiamo avviare il nostro setup RAID:

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

Per controllare se il nostro dispositivo RAID è ok, esegui il comando:

cat /proc/mdstat

L’output dovrebbe apparire così:

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

unused devices:

Recupero Della Configurazione LVM

Il file di configurazione LVM non può essere creato con un semplice comando come il mdadm.conf, ma LVM memorizza una o più copie del contenuto del file di configurazione all’inizio della partizione. Uso il comando dd per estrarre la prima parte della partizione e scriverla in un file di testo:

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

Apri il file con un editor di testo:

vi /tmp/md0.txt

Troverai prima alcuni dati binari e poi una parte del file di configurazione simile a questa:

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" # Solo un suggerimento

            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    # lineare

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

Crea il file /etc/lvm/backup/VolGroup00:

vi /etc/lvm/backup/VolGroup00

e inserisci i dati di configurazione in modo che il file assomigli all’esempio sopra.

Ora possiamo avviare LVM:

/etc/init.d/lvm start

Leggi nel volume:

vgscan

Lettura di tutti i volumi fisici. Questo potrebbe richiedere un po’ di tempo…
Gruppo di volumi trovato “VolGroup00” usando il tipo di metadati lvm2

pvscan

PV /dev/md0 VG VolGroup00 lvm2 [279,47 GB / 32,00 MB liberi]
Totale: 1 [279,47 GB] / in uso: 1 [279,47 GB] / in nessun VG: 0 [0 ]

e attiva il volume:

vgchange VolGroup00 -a y
 1 volume logico(i) nel gruppo di volumi "VolGroup00" ora attivo

Ora siamo in grado di montare la partizione in /mnt/data:

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

Se recuperi dati da un disco rigido con nomi di file in formato UTF-8, potrebbe essere necessario convertirli nella tua attuale locale non-UTF-8. Nel mio caso, il disco rigido RAID proviene da un sistema Fedora Core con nomi di file codificati in UTF-8. La mia locale di destinazione è ISO-8859-1. In questo caso, lo script Perl convmv aiuta a convertire i nomi dei file nella locale di destinazione.

Installazione Di 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

Per convertire tutti i nomi dei file in /mnt/data nella locale ISO-8859-1, esegui questo comando:

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

Se vuoi testare prima la conversione, usa:

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

Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.