Як встановити диск із зруйнованої рейдової системи?


16

У мене жахлива ситуація, коли мені потрібно відновити дані з пошкодженої рейдової системи в рятувальному Debian Linux. Я просто хочу встановити їх на / mnt / рятувати лише в режимі читання, щоб мати змогу копіювати зображення VMWare GSX на іншу машину та пізніше переносити їх на ESXi. Вихід для відповідних команд наступний.

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

Я намагався встановити диски наступним чином.

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

Тоді я отримую наступну помилку.

mount: unknown filesystem type 'linux_raid_member'

Відгадування файлової системи також не вдається.

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

Тому я спробував створити віртуальний пристрій так.

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

Це призводить до наступного повідомлення.

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

Зараз я загубився, я не маю уявлення, як відновити диски і повернути дані. Далі виводиться mda --examine для всіх 3 дисків (я думаю, це має бути 3x диски 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 пошкоджений, і це, ймовірно, рейд з моїми зображеннями VMWare.

Я хотів би отримати доступ до даних з md2 (дані на активному і не пошкодженому диску, тобто / dev / sda3), встановивши їх поза рейдом.

Це гарна ідея просто виконати

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

(чи буде це навіть працювати, оскільки md2 не бачить fdisk)?

Чи повинен я повторно призначити інші рейди md0 та md1, запустивши

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

?

ОНОВЛЕННЯ 0: Я не в змозі зібрати md0 і 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

Монтаж з автоматичним кріпленням не можливий.

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

Монтаж / dev / md1 працює, але на ньому відсутні дані VMWare.

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

ОНОВЛЕННЯ 1:

Я спробував ще раз зупинити md2 та md0 та зібрати.

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

Будь-які ідеї?

ОНОВЛЕННЯ 2:

Збірка з одного диска не працює через наступне повідомлення про помилку.

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.

Навіть новий наліт не вдається.

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.

Створення нового диска md теж не вдається.

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.

ОНОВЛЕННЯ 3:

Видалення дисків з md2 не працює.

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

ОНОВЛЕННЯ 4:

Нарешті, біг збірки з --forceнадією це зробив. Зараз я копіюю файли на інший сервер.


mdadm --assembleце шлях. Спробуйте без --remove.
Hauke ​​Laging

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 mdadm: /dev/md0 has been started with 2 drives (out of 3). Але потім монтаж не вдається (я не знаю типу файлової системи). mount -o ro /dev/md0 /mnt/rescue /dev/md0 looks like swapspace - not mounted mount: you must specify the filesystem type
Тоні Старк

Може бути sd?1, своп простору. Спробуйте зібрати md1і md2і змонтувати mount -t auto ....
Hauke ​​Laging

@HaukeLaging: Я спробував зібрати md0, md1 та md2 (див. Оновлений пост). Тільки md1 збирається успішно і монтується. Інші два не вдається зібрати та встановити. Будь-які ідеї?
Тоні Старк

1
Чи змогли ви вирішити цю проблему? Будь ласка, подумайте надсилати самовідповідь із рішенням, яке закінчилося для вас (або прийняти існуючу відповідь, якщо це допомогло), якщо ви це зробили, на користь майбутніх відвідувачів.
CVn

Відповіді:


3

У моєму випадку я підняв CentOS 7 і спробував дотримуватися всіх вказівок на цій сторінці. Я постійно працював над пристроєм, зайнятим повідомленням. На мою думку, чому ви отримуєте це

mdadm: не вдається відкрити device / dev / sda1: пристрій або ресурс зайнятий

повідомлення про помилку, оскільки пристрій вже змонтовано як щось інше.

Я також не хотів робити жодних змін на диску, оскільки моїм випадком використання було витягти дуже великий файл з мого масиву RAID1, який не вдалося витягти всіма можливими способами інакше, і найшвидшим способом було витягнути один з дисків , Я хочу повернути накопичувач і все ще мати свою конфігурацію.

Ось що я зробив, зробивши дослідження в Інтернеті на інших сайтах: ПРИМІТКА : NAS: 0 - це назва мого пристрою NAS, тому його замініть належним чином.

Він був автоматично встановлений, хоча він би сказав, що його не встановлено, якщо ви запускаєте команду mount, ви можете перевірити, що він був встановлений, виконавши:

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

Зауважте, що він автоматично встановлений /dev/md127для мене.

Добре тоді:

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

Це зробило це для мене.

Якщо ви сумніваєтесь, DD накопичувач зробити повну копію та використовувати CentOS або інший Linux Live CD.


Ця відповідь мені найбільше допомогла. Спасибі! Для мене він також був встановлений під /dev/md127таким, що я видав зупинку, як це mdadm --manage --stop /dev/md127.
Ferenc Géczi

4

Якщо ви, можливо, вам слід зробити ddзображення всього диска, перш ніж робити що-небудь, про всяк випадок.

Ви повинні мати можливість монтувати / dev / sda3 безпосередньо після mdadmйого випуску:

mdadm - стоп / dev / md2

mount / dev / sda3 / mnt / рятувальний

Якщо це не працює, testdiskзазвичай можна знайти файлові системи на необмежених блокових пристроях.


1
Це не працює для мене. "mount: невідома файлова система типу" linux_raid_member ""
Cerin

4

Я зробив це "важким способом": (по-перше, якщо можливо його клонувати цей диск, перш ніж щось робити!)

dmesgдля raid-диска або спробуйте (приклад sdc1:)

$ fdisk -l

Змініть прапор RAID-DISK на вашу файлову систему Linux (ext3 чи щось подібне), збережіть це та перезавантажте.

Після того

$ mdadm --zero-superblock /dev/sdx 

і вуаля, яку можна змонтувати

$ mount /dev/sdc1 /mnt

1
це відключить RAID і створить "звичайний" диск.
CousinCocaine
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.