Bagaimana cara memasang disk dari sistem raid yang hancur?


16

Saya memiliki situasi yang mengerikan di mana saya harus memulihkan data dari sistem serangan yang rusak dalam menyelamatkan Debian Linux. Saya hanya ingin me-mount semuanya ke / mnt / rescue dalam mode read only untuk dapat menyalin gambar VMWare GSX ke komputer lain dan memigrasikannya ke ESXi nanti. Output untuk perintah yang relevan adalah sebagai berikut.

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

Saya mencoba memasang disk sebagai berikut.

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

Lalu saya mendapatkan kesalahan berikut.

mount: unknown filesystem type 'linux_raid_member'

Menebak sistem file juga tidak berjalan dengan baik.

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

Maka saya mencoba membuat perangkat virtual sebagai berikut.

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

Ini menghasilkan pesan berikut.

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

Sekarang saya tersesat, saya tidak tahu bagaimana memulihkan disk dan mendapatkan kembali data. Berikut ini adalah output dari mda --examine untuk semua 3 disk (saya pikir seharusnya 3x raid1 disk).

/ dev / hda1:

          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 / hda2:

          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 tampaknya rusak dan mungkin penggerebekan dengan gambar VMWare saya.

Saya ingin mengakses data dari md2 (data pada disk yang aktif dan tidak rusak, yaitu / dev / sda3) dengan memasangnya di luar razia.

Apakah itu ide yang bagus untuk dieksekusi

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

(apakah akan berfungsi sebagai md2 tidak dilihat oleh fdisk)?

Haruskah saya kembali menggerebek raid lain md0 dan md1 dengan menjalankan

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

?

UPDATE 0: Saya tidak dapat merakit md0 dan 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

Pemasangan dengan mount -t auto tidak dimungkinkan.

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

Mounting / dev / md1 berfungsi tetapi tidak ada data VMWare di situ.

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

PEMBARUAN 1:

Saya mencoba untuk menghentikan md2 dan md0 dan berkumpul sekali lagi.

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

Ada ide?

PEMBARUAN 2:

Perakitan dari satu disk tidak berfungsi karena pesan kesalahan berikut.

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.

Bahkan serangan baru gagal.

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.

Membuat disk md baru juga gagal.

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.

PEMBARUAN 3:

Menghapus disk dari md2 tidak berfungsi.

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

PEMBARUAN 4:

Akhirnya, menjalankan assemble dengan --forcesemoga berhasil. Saya sekarang menyalin file ke server lain.


mdadm --assembleadalah cara untuk pergi. Coba tanpa --remove.
Hauke ​​Laging

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 mdadm: /dev/md0 has been started with 2 drives (out of 3). Tapi kemudian pemasangan gagal (saya tidak tahu jenis sistem file). mount -o ro /dev/md0 /mnt/rescue /dev/md0 looks like swapspace - not mounted mount: you must specify the filesystem type
Tony Stark

Mungkin sd?1swapspace. Cobalah untuk merakit md1dan md2dan memasang dengan mount -t auto ....
Hauke ​​Laging

@ HaukeLaging: Saya mencoba merakit md0, md1 dan md2 (lihat posting terbaru). Hanya md1 berhasil dirakit dan dipasang. Dua lainnya gagal dipasang dan dipasang. Ada ide?
Tony Stark

1
Apakah Anda dapat menyelesaikan masalah ini? Silakan pertimbangkan untuk memposting jawaban sendiri dengan solusi yang akhirnya bekerja untuk Anda (atau menerima jawaban yang ada jika itu membantu) jika Anda melakukannya, untuk kepentingan pengunjung masa depan.
CVn

Jawaban:


3

Dalam kasus saya, saya membuka CentOS 7 dan mencoba mengikuti instruksi semua orang di halaman ini. Saya terus berlari ke pesan perangkat yang sibuk. Alasannya menurut saya mengapa Anda mendapatkan

mdadm: tidak bisa membuka perangkat / dev / sda1: Perangkat atau sumber daya sibuk

pesan kesalahan adalah karena perangkat sudah dipasang sebagai sesuatu yang lain.

Saya juga tidak ingin membuat perubahan pada disk sama sekali karena kasus penggunaan saya adalah untuk mengekstrak file yang sangat besar dari array RAID1 saya yang gagal diekstraksi setiap cara yang mungkin sebaliknya dan cara tercepat adalah menarik salah satu drive keluar , Saya ingin memasukkan drive kembali dan masih memiliki konfigurasi saya di tempat juga.

Inilah yang saya lakukan setelah melakukan riset online di situs lain: CATATAN : NAS: 0 adalah nama perangkat NAS saya jadi gantilah dengan tepat.

Itu secara otomatis dipasang meskipun akan mengatakan bahwa itu tidak dipasang jika Anda menjalankan perintah mount, Anda dapat memverifikasi bahwa itu dipasang dengan menjalankan:

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

Perhatikan itu secara otomatis dipasang di bawah /dev/md127untuk saya.

Baiklah kalau begitu:

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

Itu berhasil untuk saya.

Jika ragu, DD drive untuk membuat salinan lengkap dan menggunakan CentOS atau Linux Live CD lainnya.


Jawaban ini sangat membantu saya. Terima kasih! Bagi saya itu juga dipasang di bawah /dev/md127jadi saya mengeluarkan berhenti seperti ini mdadm --manage --stop /dev/md127.
Ferenc Géczi

4

Jika memungkinkan, Anda harus membuat ddgambar seluruh disk sebelum melakukan apa pun, untuk berjaga-jaga.

Anda harus dapat me-mount / dev / sda3 secara langsung setelah mdadmdirilis:

mdadm --stop / dev / md2

mount / dev / sda3 / mnt / rescue

Jika itu tidak berhasil testdiskbiasanya dapat menemukan sistem file pada perangkat blok mentah.


1
Ini tidak berhasil untuk saya. "mount: tipe sistem berkas tidak dikenal 'linux_raid_member'"
Cerin

4

Saya melakukannya dengan "cara yang sulit": (pertama jika mungkin mengkloning disk ini sebelum Anda melakukan apa pun!)

dmesguntuk raid-disk atau coba (contoh sdc1:)

$ fdisk -l

Ubah RAID-DISK-Tandai ke sistem file Linux Anda (ext3 atau apalah), simpan ini dan reboot.

Setelah itu

$ mdadm --zero-superblock /dev/sdx 

dan voila kamu bisa mount

$ mount /dev/sdc1 /mnt

1
ini akan menonaktifkan RAID dan membuat drive 'normal'.
CousinCocaine
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.