Come montare un disco dal sistema raid distrutto?


16

Ho una situazione orribile in cui devo ripristinare i dati dal sistema di raid danneggiato in un Debian Linux di salvataggio. Voglio solo montarli tutti su / mnt / rescue in modalità di sola lettura per poter copiare le immagini VMWare GSX su un'altra macchina e migrarle in seguito su ESXi. L'output per i comandi rilevanti è il seguente.

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

Stavo cercando di montare i dischi come segue.

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

Quindi ottengo il seguente errore.

mount: unknown filesystem type 'linux_raid_member'

Anche indovinare il file system non sta andando bene.

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

Quindi ho provato a creare un dispositivo virtuale come segue.

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

Ciò si traduce nel seguente messaggio.

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

Ora mi sono perso, non ho idea di come recuperare i dischi e recuperare i dati. Quello che segue è l'output di mda --examine per tutti e 3 i dischi (penso che dovrebbe essere 3x dischi 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 sembra essere danneggiato ed è probabilmente il raid con le mie immagini VMWare.

Vorrei accedere ai dati da md2 (i dati sul disco attivo e non danneggiato, ovvero / dev / sda3) montandolo al di fuori del raid.

È una buona idea eseguire solo

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

(funzionerebbe anche perché md2 non è visto da fdisk)?

Dovrei riassemblare gli altri raid md0 e md1 correndo

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

?

AGGIORNAMENTO 0: Non sono in grado di assemblare md0 e 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

Il montaggio con mount -t auto non è possibile.

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

Il montaggio / dev / md1 funziona ma non vi sono dati VMWare su di esso.

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
...

AGGIORNAMENTO 1:

Ho provato a fermare md2 e md0 e assemblare ancora una volta.

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

Qualche idea?

AGGIORNAMENTO 2:

L'assemblaggio da un disco non funziona a causa del seguente messaggio di errore.

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.

Anche il nuovo raid fallisce.

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.

Anche la creazione di un nuovo disco md non riesce.

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.

AGGIORNAMENTO 3:

La rimozione di dischi da md2 non funziona.

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

AGGIORNAMENTO 4:

Finalmente, correre insieme con si --forcespera lo abbia fatto. Ora sto copiando i file su un altro server.


mdadm --assembleè la strada da percorrere. Prova senza --remove.
Hauke ​​Laging,

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 mdadm: /dev/md0 has been started with 2 drives (out of 3). Ma poi il montaggio fallisce (non conosco il tipo di file system). mount -o ro /dev/md0 /mnt/rescue /dev/md0 looks like swapspace - not mounted mount: you must specify the filesystem type
Tony Stark,

Forse sd?1è swapspace. Prova a montare md1e md2e montare con mount -t auto ....
Hauke ​​Laging,

@HaukeLaging: ho provato ad assemblare md0, md1 e md2 (vedi post aggiornato). Solo md1 si monta correttamente e si monta. Gli altri due non riescono a montare e montare. Qualche idea?
Tony Stark,

1
Sei riuscito a risolvere questo problema? Ti consigliamo di pubblicare una risposta automatica con la soluzione che ha finito per funzionare per te (o accettare la risposta esistente se ciò ha aiutato) se lo hai fatto, a beneficio dei futuri visitatori.
un CVn,

Risposte:


3

Nel mio caso ho visualizzato CentOS 7 e ho provato a seguire le istruzioni di tutti in questa pagina. Ho continuato a imbattermi in un messaggio di dispositivo occupato. Il motivo secondo me perché stai ottenendo il

mdadm: impossibile aprire device / dev / sda1: dispositivo o risorsa occupata

il messaggio di errore è perché il dispositivo è già montato come qualcos'altro.

Inoltre, non volevo apportare alcuna modifica al disco poiché il mio caso d'uso consisteva nell'estrarre un file molto grande dal mio array RAID1 che altrimenti non poteva essere estratto in tutti i modi possibili e il modo più veloce era estrarre una delle unità , Voglio reinserire l'unità e mantenere anche la mia configurazione in atto.

Ecco cosa ho fatto dopo aver fatto alcune ricerche online su altri siti: NOTA : NAS: 0 è il nome del mio dispositivo NAS, quindi sostituirlo in modo appropriato.

È stato montato automaticamente sebbene direbbe che non è montato se si dovesse eseguire il comando mount, è possibile verificare che sia stato montato eseguendo:

[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>

Si noti che è stato montato automaticamente sotto /dev/md127per me.

Va bene allora:

[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/

Che ha fatto per me.

In caso di dubbi, DD l'unità per effettuare una copia completa e utilizzare CentOS o altri CD Live Linux.


Questa risposta mi ha aiutato di più. Grazie! Per me è stato montato anche sotto, /dev/md127quindi ho emesso la fermata in questo modo mdadm --manage --stop /dev/md127.
Ferenc Géczi,

4

Se possibile, dovresti creare ddun'immagine dell'intero disco prima di fare qualsiasi cosa, per ogni evenienza.

Dovresti essere in grado di montare / dev / sda3 direttamente una volta mdadmrilasciato:

mdadm --stop / dev / md2

mount / dev / sda3 / mnt / rescue

Se ciò non funziona di testdisksolito è possibile trovare filesystem su dispositivi a blocchi grezzi.


1
Questo non funziona per me. "mount: tipo di filesystem sconosciuto 'linux_raid_member'"
Cerin

4

L'ho fatto in modo "difficile": (prima se è possibile clonare questo disco prima di fare qualsiasi cosa!)

dmesgper il raid-disk o prova (esempio sdc1:)

$ fdisk -l

Cambia il RAID-DISK-Flag sul tuo filesystem Linux (ext3 o qualcosa del genere), salvalo e riavvia.

Dopo di che

$ mdadm --zero-superblock /dev/sdx 

e voilà puoi montare

$ mount /dev/sdc1 /mnt

1
questo disabiliterà il RAID e creerà un'unità 'normale'.
Cugina Cocaina,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.