¿Cómo montar un disco desde un sistema de ataque destruido?

16

Tengo una situación horrible en la que tengo que restaurar datos del sistema de ataque dañado en un rescate de Debian Linux. Solo quiero montarlos todos en / mnt / rescue en modo de solo lectura para poder copiar imágenes VMWare GSX a otra máquina y migrarlas a ESXi más adelante. La salida para los comandos relevantes es la siguiente.

fdisk -l

Disk /dev/sda: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005e687

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         523     4200997   fd  Linux raid autodetect
/dev/sda2             524         785     2104515   fd  Linux raid autodetect
/dev/sda3             786      182401  1458830520   fd  Linux raid autodetect

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014fc7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         523     4200997   fd  Linux raid autodetect
/dev/sdb2             524         785     2104515   fd  Linux raid autodetect
/dev/sdb3             786      182401  1458830520   fd  Linux raid autodetect

Disk /dev/md0: 4301 MB, 4301717504 bytes
2 heads, 4 sectors/track, 1050224 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 2154 MB, 2154954752 bytes
2 heads, 4 sectors/track, 526112 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

Estaba tratando de montar los discos de la siguiente manera.

mount -o ro /dev/sda1 /mnt/rescue

Entonces me aparece el siguiente error.

mount: unknown filesystem type 'linux_raid_member'

Adivinar el sistema de archivos tampoco funciona bien.

mount -o ro -t ext3 /dev/sda1 /mnt/rescue/
mount: /dev/sda1 already mounted or /mnt/rescue/ busy

Así que intenté crear un dispositivo virtual de la siguiente manera.

mdadm -A -R /dev/md9 /dev/sda1

Esto da como resultado el siguiente mensaje.

mdadm: cannot open device /dev/sda1: Device or resource busy
mdadm: /dev/sda1 has no superblock - assembly aborted

Ahora estoy perdido, no tengo idea de cómo recuperar los discos y recuperar los datos. La siguiente es la salida de mda --examine para los 3 discos (creo que debería ser 3x discos raid1).

/ dev / sda1:

          Magic : a92b4efc
        Version : 0.90.00
           UUID : 6708215c:6bfe075b:776c2c25:004bd7b2 (local to host rescue)
  Creation Time : Mon Aug 31 17:18:11 2009
     Raid Level : raid1
  Used Dev Size : 4200896 (4.01 GiB 4.30 GB)
     Array Size : 4200896 (4.01 GiB 4.30 GB)
   Raid Devices : 3
  Total Devices : 2
Preferred Minor : 0

    Update Time : Sun Jun  2 00:58:05 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 9070963e - correct
         Events : 19720


      Number   Major   Minor   RaidDevice State
this     1       8        1        1      active sync   /dev/sda1

   0     0       0        0        0      removed
   1     1       8        1        1      active sync   /dev/sda1
   2     2       8       17        2      active sync   /dev/sdb1

/ dev / sda2:

          Magic : a92b4efc
        Version : 0.90.00
           UUID : e8f7960f:6bbea0c7:776c2c25:004bd7b2 (local to host rescue)
  Creation Time : Mon Aug 31 17:18:11 2009
     Raid Level : raid1
  Used Dev Size : 2104448 (2.01 GiB 2.15 GB)
     Array Size : 2104448 (2.01 GiB 2.15 GB)
   Raid Devices : 3
  Total Devices : 2
Preferred Minor : 1

    Update Time : Sat Jun  8 07:14:24 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 120869e1 - correct
         Events : 3534


      Number   Major   Minor   RaidDevice State
this     1       8        2        1      active sync   /dev/sda2

   0     0       0        0        0      removed
   1     1       8        2        1      active sync   /dev/sda2
   2     2       8       18        2      active sync   /dev/sdb2

/ dev / sda3:

          Magic : a92b4efc
        Version : 0.90.00
           UUID : 4f2b3b67:c3837044:776c2c25:004bd7b2 (local to host rescue)
  Creation Time : Mon Aug 31 17:18:11 2009
     Raid Level : raid5
  Used Dev Size : 1458830400 (1391.25 GiB 1493.84 GB)
     Array Size : 2917660800 (2782.50 GiB 2987.68 GB)
   Raid Devices : 3
  Total Devices : 2
Preferred Minor : 2

    Update Time : Sat Jun  8 14:47:00 2013
          State : clean
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0
       Checksum : 2b2b2dad - correct
         Events : 36343894

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     1       8        3        1      active sync   /dev/sda3

   0     0       0        0        0      removed
   1     1       8        3        1      active sync   /dev/sda3
   2     2       0        0        2      faulty removed

cat /proc/mdstat
Personalities : [raid1]
md2 : inactive sda3[1](S) sdb3[2](S)
      2917660800 blocks

md1 : active raid1 sda2[1] sdb2[2]
      2104448 blocks [3/2] [_UU]

md0 : active raid1 sda1[1] sdb1[2]
      4200896 blocks [3/2] [_UU]

md2 parece estar dañado y probablemente sea la redada con mis imágenes de VMWare.

Me gustaría acceder a los datos de md2 (los datos en el disco activo y no dañado, es decir / dev / sda3) montándolo fuera de la incursión.

¿Es una buena idea simplemente ejecutar

mdadm --manage /dev/md2 --remove /dev/sda3 

(¿funcionaría incluso porque md2 no es visto por fdisk)?

¿Debo volver a atacar las otras incursiones md0 y md1 ejecutando

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1

?

ACTUALIZACIÓN 0: no puedo ensamblar md0 y md2.

root@rescue ~ # mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
mdadm: cannot open device /dev/sda1: Device or resource busy
mdadm: /dev/sda1 has no superblock - assembly aborted
root@rescue ~ # mdadm --assemble /dev/md2 /dev/sda3 /dev/sdb3
mdadm: cannot open device /dev/sda3: Device or resource busy
mdadm: /dev/sda3 has no superblock - assembly aborted

No es posible el montaje con mount -t auto.

root@rescue ~ # mount -t auto -o ro /dev/md0 /mnt/rescue/
/dev/md0 looks like swapspace - not mounted
mount: you must specify the filesystem type
root@rescue ~ # mount -t auto -o ro /dev/md2 /mnt/rescue/
mount: you must specify the filesystem type

El montaje / dev / md1 funciona pero no hay datos de VMWare en él.

root@rescue /mnt/rescue # ll
total 139M
-rw-r--r-- 1 root root 513K May 27  2010 abi-2.6.28-19-server
-rw-r--r-- 1 root root 631K Sep 16  2010 abi-2.6.32-24-server
-rw-r--r-- 1 root root 632K Oct 16  2010 abi-2.6.32-25-server
-rw-r--r-- 1 root root 632K Nov 24  2010 abi-2.6.32-26-server
-rw-r--r-- 1 root root 632K Dec  2  2010 abi-2.6.32-27-server
-rw-r--r-- 1 root root 632K Jan 11  2011 abi-2.6.32-28-server
-rw-r--r-- 1 root root 632K Feb 11  2011 abi-2.6.32-29-server
-rw-r--r-- 1 root root 632K Mar  2  2011 abi-2.6.32-30-server
-rw-r--r-- 1 root root 632K Jul 30  2011 abi-2.6.32-33-server
lrwxrwxrwx 1 root root    1 Aug 31  2009 boot -> .
-rw-r--r-- 1 root root 302K Aug  4  2010 coffee.bmp
-rw-r--r-- 1 root root  89K May 27  2010 config-2.6.28-19-server
...

ACTUALIZACIÓN 1:

Traté de detener md2 y md0 y ensamblar una vez más.

mdadm -S /dev/md0

root@rescue ~ # mount -t auto -o ro /dev/md0 /mnt/rescue/
/dev/md0 looks like swapspace - not mounted
mount: you must specify the filesystem type

mdadm -S /dev/md2

root@rescue ~ # mount -t auto -o ro /dev/md2 /mnt/rescue/
mount: you must specify the filesystem type

¿Algunas ideas?

ACTUALIZACIÓN 2:

El ensamblaje desde un disco no funciona debido al siguiente mensaje de error.

root@rescue ~ # mdadm -S /dev/md2
root@rescue ~ # mdadm --assemble /dev/md2 /dev/sda3
mdadm: /dev/md2 assembled from 1 drive - not enough to start the array.

root@rescue ~ # mdadm -S /dev/md2
mdadm: stopped /dev/md2
root@rescue ~ # mdadm --assemble /dev/md2 /dev/sdb3
mdadm: /dev/md2 assembled from 1 drive - not enough to start the array.

Incluso la nueva incursión falla.

root@rescue ~ # mdadm -S /dev/md9
mdadm: stopped /dev/md9
root@rescue ~ # mdadm --assemble /dev/md9 /dev/sda3
mdadm: /dev/md9 assembled from 1 drive - not enough to start the array.

root@rescue ~ # mdadm -S /dev/md9
mdadm: stopped /dev/md9
root@rescue ~ # mdadm --assemble /dev/md9 /dev/sdb3
mdadm: /dev/md9 assembled from 1 drive - not enough to start the array.

La creación de un nuevo disco md también falla.

root@rescue ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[1] sdb1[2]
      4200896 blocks [3/2] [_UU]

md1 : active raid1 sda2[1] sdb2[2]
      2104448 blocks [3/2] [_UU]

unused devices: <none>
root@rescue ~ # mdadm -A -R /dev/md9 /dev/sda3
mdadm: failed to RUN_ARRAY /dev/md9: Input/output error
mdadm: Not enough devices to start the array.
root@rescue ~ # cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md9 : inactive sda3[1]
      1458830400 blocks

md0 : active raid1 sda1[1] sdb1[2]
      4200896 blocks [3/2] [_UU]

md1 : active raid1 sda2[1] sdb2[2]
      2104448 blocks [3/2] [_UU]

unused devices: <none>
root@rescue ~ # mdadm -S /dev/md9
mdadm: stopped /dev/md9
root@rescue ~ # mdadm -A -R /dev/md9 /dev/sdb3
mdadm: failed to RUN_ARRAY /dev/md9: Input/output error
mdadm: Not enough devices to start the array.

ACTUALIZACIÓN 3:

Eliminar discos de md2 no funciona.

mdadm --remove /dev/md2 /dev/sda3
mdadm: cannot get array info for /dev/md2

ACTUALIZACIÓN 4:

Finalmente, corriendo ensamblar con --forcesuerte lo hizo. Ahora estoy copiando archivos a otro servidor.

Tony Stark
fuente
mdadm --assembleEs el camino a seguir. Intenta sin --remove.
Hauke ​​Laging
mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 mdadm: /dev/md0 has been started with 2 drives (out of 3). Pero luego el montaje falla (no sé el tipo de sistema de archivos). mount -o ro /dev/md0 /mnt/rescue /dev/md0 looks like swapspace - not mounted mount: you must specify the filesystem type
Tony Stark
Quizás sd?1sea ​​swapspace. Intenta ensamblar md1y md2montar con mount -t auto ....
Hauke ​​Laging
@HaukeLaging: intenté ensamblar md0, md1 y md2 (ver publicación actualizada). Solo md1 se ensambla con éxito y se monta. Los otros dos no se ensamblan ni montan. ¿Algunas ideas?
Tony Stark
1
¿Pudiste resolver este problema? Considere publicar una respuesta propia con la solución que terminó funcionando para usted (o aceptando la respuesta existente si eso ayudó) si lo hizo, para beneficio de futuros visitantes.
un CVn

Respuestas:

3

En mi caso, mencioné CentOS 7 e intenté seguir las instrucciones de todos en esta página. Seguí encontrándome con un mensaje de dispositivo ocupado. La razón en mi opinión de por qué estás recibiendo

mdadm: no se puede abrir el dispositivo / dev / sda1: dispositivo o recurso ocupado

El mensaje de error se debe a que el dispositivo ya está montado como otra cosa.

Tampoco quería hacer ningún cambio en el disco, ya que mi caso de uso era extraer un archivo muy grande de mi matriz RAID1 que no se pudo extraer de todas las formas posibles y la forma más rápida fue extraer una de las unidades , Quiero volver a poner la unidad y aún tener mi configuración en su lugar también.

Esto es lo que hice después de hacer una investigación en línea en otros sitios: NOTA : NAS: 0 es el nombre de mi dispositivo NAS, así que sustitúyalo adecuadamente.

Se montó automáticamente, aunque diría que no está montado si ejecuta el comando de montaje, puede verificar que se montó ejecutando:

[root@localhost Desktop]# cat /proc/mdstat 
Personalities : [raid1] 
md127 : active (auto-read-only) raid1 sdb2[0]
      1952996792 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Observe que se montó automáticamente debajo /dev/md127de mí.

OK entonces:

[root@localhost Desktop]# mdadm -A -R /dev/md9 /dev/sdb2 
mdadm: /dev/sdb2 is busy - skipping

[root@localhost Desktop]# mdadm --manage --stop /dev/md/NAS\:0 
mdadm: stopped /dev/md/NAS:0

[root@localhost Desktop]# mdadm -A -R /dev/md9 /dev/sdb2
mdadm: /dev/md9 has been started with 1 drive (out of 2).

[root@localhost Desktop]# mount /dev/md9 /mnt/

Eso lo hizo por mí.

En caso de duda, DD la unidad para hacer una copia completa y utilizar CentOS u otro CD de Linux Live.

Eugene
fuente
Esta respuesta me ayudó más. ¡Gracias! Para mí también estaba montado debajo, /dev/md127así que emití la parada de esta manera mdadm --manage --stop /dev/md127.
Ferenc Géczi
4

Si es posible, debe hacer una ddimagen de todo su disco antes de hacer cualquier cosa, por si acaso.

Debería poder montar / dev / sda3 directamente una vez que lo mdadmlibere:

mdadm --stop / dev / md2

mount / dev / sda3 / mnt / rescue

Si eso no funciona testdisk, generalmente puede encontrar sistemas de archivos en dispositivos de bloques sin formato.

skorgu
fuente
1
Esto no funciona para mi. "mount: tipo de sistema de archivos desconocido 'linux_raid_member'"
Cerin el
4

Lo hice por el "camino difícil": (primero si es posible clonar este disco antes de hacer nada!)

dmesgpara la incursión en disco o intento (ejemplo: sdc1)

$ fdisk -l

Cambie el indicador RAID-DISK a su sistema de archivos Linux (ext3 o algo así), guárdelo y reinicie.

Después de esto

$ mdadm --zero-superblock /dev/sdx 

y listo puedes montar

$ mount /dev/sdc1 /mnt
invitado
fuente
1
esto deshabilitará el RAID y creará una unidad 'normal'.
CousinCocaine