Hace ya un tiempo me tocó lidiar con este problema. Fue un arduo trabajo, nunca lo había hacho antes, pero que dió buenos resultados. Seguí los pasos de este HowTo.

Lo primero que necesitamos es tener una versión de Knoppix que podemos descargar desde aquí. La quemamos en un CD y booteamos con el nuevo CD.

Restaurando el RAID

Una vez que Knoppix haya arrancado ejecutamos

sudo su

para convertirnos en usuario root

Como no tengo en archivo de configuración original (mdadm.conf), lo voy a crear con el siguiente comando:

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

el resultado debería ser algo como esto:

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

Editamos la línea que describe el array y agregamos devices=/dev/sda1,missing:

vi /etc/mdadm/mdadm.conf

debería quedar algo así:

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/sda1,missing

La cadena /dev/sda1 es el disco del cual queremos recuperar los datos y missing significa que el segundo disco de este RAID no está presente.

Editamos el archivo /etc/default/mdadm:
vi /etc/default/mdadm

y cambiamos la línea

AUTOSTART=false

por

AUTOSTART=true

Ahora podemos levantar nuestra configuración del RAID


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

Para corroborar que nuestro RAID esté OK usamos el comando:

cat /proc/mdstat

la salida es algo como esto:


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

unused devices:

Recuperando la configuración de LVM

LVM guarda una o varias copias del archivo de configuración en el inicio de la partición. Con lo cual podemos utilizar el comando dd para recuperarla.

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

lo abrimos con un editor de textos

vi /tmp/md0.txt

vamos a ver algunos datos binarios, lo que nos interesa es algo como esto:


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

creamos el archivo /etc/lvm/backup/VolGroup00

vi /etc/lvm/backup/VolGroup00

e insertamos la configuración de LVM.
Ahora estamos listos para levantar el servicio LVM:

/etc/init.d/lvm start

y activamos el volúmen:


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

Ya estamos listos para montar nuestra partición:


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

Ahora podemos recuperar los datos desde /mnt/data