Recuperação de Dados · 4 min read · Dec 25, 2025

Recuperar Dados de Partições RAID1 LVM Com Knoppix Linux LiveCD

Recuperar Dados de Partições RAID1 LVM Com Knoppix Linux LiveCD

Versão 1.0
Autor: Till Brehm

Última edição: 04/11/2007

Este tutorial descreve como resgatar dados de um único disco rígido que fazia parte de uma configuração LVM2 RAID1, como é criado pelo instalador do Fedora Core, por exemplo. Por que é tão problemático recuperar os dados? Cada disco rígido que anteriormente fazia parte de uma configuração LVM RAID1 contém todos os dados que estavam armazenados no RAID, mas o disco rígido não pode simplesmente ser montado. Primeiro, uma configuração RAID deve ser configurada para a(s) partição(ões) e então o LVM deve ser configurado para usar esta(s) partição(ões) RAID antes que você possa montá-la. Eu usarei o Knoppix Linux LiveCD para fazer a recuperação de dados.

Pré-requisitos

Eu usei um Knoppix 5.1 LiveCD para este tutorial. Baixe a imagem ISO do CD daqui e grave-a em um CD, em seguida, conecte o disco rígido que contém a(s) partição(ões) RAID ao controlador IDE / ATA da sua placa-mãe, coloque o CD do Knoppix na sua unidade de CD e inicialize a partir do CD.

O disco rígido que eu usei é um drive IDE que está conectado ao primeiro controlador IDE (hda). No meu caso, o disco rígido continha apenas uma partição.

Restaurando O Raid

Depois que o Knoppix inicializou, abra um shell e execute o comando:

sudo su

para se tornar o usuário root.

Como eu não tenho o arquivo mdadm.conf da configuração original, eu o crio com este comando:

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

O resultado deve ser semelhante a este:

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

Edite o arquivo e adicione devices=/dev/hda1,missing ao final da linha que descreve o array RAID.

vi /etc/mdadm/mdadm.conf

Finalmente, o arquivo fica assim:

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

A string /dev/hda1 é o dispositivo de hardware e missing significa que o segundo disco neste array RAID não está presente no momento.

Edite o arquivo /etc/default/mdadm:

vi /etc/default/mdadm

e mude a linha:

AUTOSTART=false

para:

AUTOSTART=true

Agora podemos iniciar nossa configuração RAID:

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

Para verificar se nosso dispositivo RAID está ok, execute o comando:

cat /proc/mdstat

A saída deve ser semelhante a esta:

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

unused devices:

Recuperando A Configuração LVM

O arquivo de configuração LVM não pode ser criado por um comando fácil como o mdadm.conf, mas o LVM armazena uma ou mais cópias do conteúdo do arquivo de configuração no início da partição. Eu uso o comando dd para extrair a primeira parte da partição e escrevê-la em um arquivo de texto:

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

Abra o arquivo com um editor de texto:

vi /tmp/md0.txt

Você encontrará alguns dados binários primeiro e depois uma parte do arquivo de configuração como esta:

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" # Dica apenas

            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
                ]
            }
        }
    }
}

Crie o arquivo /etc/lvm/backup/VolGroup00:

vi /etc/lvm/backup/VolGroup00

e insira os dados de configuração para que o arquivo fique semelhante ao exemplo acima.

Agora podemos iniciar o LVM:

/etc/init.d/lvm start

Leia o volume:

vgscan

Lendo todos os volumes físicos. Isso pode levar um tempo…
Grupo de volumes encontrado “VolGroup00” usando tipo de metadados lvm2

pvscan

PV /dev/md0 VG VolGroup00 lvm2 [279,47 GB / 32,00 MB livre]
Total: 1 [279,47 GB] / em uso: 1 [279,47 GB] / em nenhum VG: 0 [0 ]

e ative o volume:

vgchange VolGroup00 -a y
 1 volume lógico(s) no grupo de volumes "VolGroup00" agora ativo

Agora podemos montar a partição em /mnt/data:

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

Se você recuperar dados de um disco rígido com nomes de arquivos no formato UTF-8, pode ser necessário convertê-los para sua localidade atual não-UTF-8. No meu caso, o disco rígido RAID é de um sistema Fedora Core com nomes de arquivos codificados em UTF-8. Minha localidade alvo é ISO-8859-1. Nesse caso, o script Perl convmv ajuda a converter os nomes dos arquivos para a localidade alvo.

Instalação do 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

Para converter todos os nomes de arquivos em /mnt/data para a localidade ISO-8859-1, execute este comando:

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

Se você quiser testar a conversão primeiro, use:

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

Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.