Làm thế nào để gắn một đĩa từ hệ thống đột kích bị phá hủy?


16

Tôi có một tình huống khủng khiếp khi tôi phải khôi phục dữ liệu từ hệ thống đột kích bị hỏng trong giải cứu Debian Linux. Tôi chỉ muốn gắn kết tất cả chúng vào / mnt / cứu trong chế độ chỉ đọc để có thể sao chép hình ảnh VMWare GSX sang một máy khác và di chuyển chúng sang ESXi sau này. Đầu ra cho các lệnh có liên quan như sau.

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

Tôi đã cố gắn các đĩa như sau.

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

Sau đó tôi nhận được lỗi sau.

mount: unknown filesystem type 'linux_raid_member'

Hệ thống tập tin đoán cũng không tốt.

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

Vì vậy, tôi đã cố gắng tạo ra một thiết bị ảo như sau.

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

Điều này dẫn đến thông báo sau.

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

Bây giờ tôi bị mất, tôi không biết làm thế nào để phục hồi các đĩa và lấy lại dữ liệu. Sau đây là đầu ra của mda --examine cho cả 3 đĩa (tôi nghĩ rằng nó phải là 3x raid1 đĩa).

/ 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 dường như bị hư hại và nó có lẽ là cuộc đột kích với hình ảnh VMWare của tôi.

Tôi muốn truy cập dữ liệu từ md2 (dữ liệu trên đĩa đang hoạt động và không bị hỏng, đó là / dev / sda3) bằng cách gắn nó bên ngoài cuộc đột kích.

Có phải là một ý tưởng tốt để chỉ thực hiện

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

(nó thậm chí sẽ hoạt động như md2 mà fdisk không nhìn thấy)?

Tôi có nên tái xác nhận các cuộc tấn công khác md0 và md1 bằng cách chạy không

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

?

CẬP NHẬT 0: Tôi không thể lắp ráp md0 và 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

Gắn kết với mount -t tự động là không thể.

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

Mount / dev / md1 hoạt động nhưng không có dữ liệu VMWare trên đó.

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

CẬP NHẬT 1:

Tôi đã cố gắng dừng md2 và md0 và lắp ráp lại.

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

Có ý kiến ​​gì không?

CẬP NHẬT 2:

Lắp ráp từ một đĩa không hoạt động do thông báo lỗi sau.

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.

Ngay cả cuộc đột kích mới cũng thất bại.

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.

Tạo đĩa md mới cũng thất bại.

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.

CẬP NHẬT 3:

Loại bỏ đĩa khỏi md2 không hoạt động.

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

CẬP NHẬT 4:

Cuối cùng, chạy lắp ráp với --forcehy vọng đã làm điều đó. Tôi hiện đang sao chép các tập tin vào một máy chủ khác.


mdadm --assemblelà con đường để đi Hãy thử mà không có --remove.
Hauke ​​Laging

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 mdadm: /dev/md0 has been started with 2 drives (out of 3). Nhưng sau đó việc cài đặt không thành công (tôi không biết loại hệ thống tệp). mount -o ro /dev/md0 /mnt/rescue /dev/md0 looks like swapspace - not mounted mount: you must specify the filesystem type
Tony Stark

Có lẽ sd?1là hoán đổi. Cố gắng lắp ráp md1md2gắn kết với mount -t auto ....
Hauke ​​Laging

@HaukeLaging: Tôi đã cố gắng lắp ráp md0, md1 và md2 (xem bài đăng cập nhật). Chỉ md1 lắp ráp thành công và gắn kết. Hai cái còn lại không lắp ráp và gắn kết. Có ý kiến ​​gì không?
Tony Stark

1
Bạn có thể giải quyết vấn đề này không? Vui lòng xem xét việc tự trả lời với giải pháp cuối cùng có hiệu quả với bạn (hoặc chấp nhận câu trả lời hiện có nếu điều đó có ích) nếu bạn làm vậy, vì lợi ích của khách truy cập trong tương lai.
một CVn

Câu trả lời:


3

Trong trường hợp của tôi, tôi đã đưa lên CentOS 7 và thử làm theo hướng dẫn của mọi người trên trang này. Tôi tiếp tục chạy vào một thiết bị bận tin nhắn. Lý do theo ý kiến ​​của tôi tại sao bạn nhận được

mdadm: không thể mở thiết bị / dev / sda1: Thiết bị hoặc tài nguyên bận

thông báo lỗi là do thiết bị đã được gắn kết như một cái gì đó khác.

Tôi cũng không muốn thực hiện bất kỳ thay đổi nào đối với đĩa vì trường hợp sử dụng của tôi là trích xuất một tệp rất lớn từ mảng RAID1 mà không thể trích xuất mọi cách có thể và cách nhanh nhất là rút một trong các ổ đĩa ra , Tôi muốn đặt ổ đĩa trở lại và vẫn có cấu hình của tôi.

Đây là những gì tôi đã làm sau khi thực hiện một số nghiên cứu trực tuyến trên các trang web khác: LƯU Ý : NAS: 0 là tên của thiết bị NAS của tôi để thay thế một cách thích hợp.

Nó được tự động gắn kết mặc dù nó sẽ nói rằng nó không được gắn nếu bạn chạy lệnh mount, bạn có thể xác minh rằng nó được gắn kết bằng cách chạy:

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

Lưu ý rằng nó đã được tự động gắn dưới /dev/md127cho tôi.

Được rồi:

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

Điều đó đã làm nó cho tôi.

Nếu nghi ngờ, DD ổ đĩa để tạo một bản sao đầy đủ và sử dụng CentOS hoặc Linux Live CD khác.


Câu trả lời này đã giúp tôi nhiều nhất. Cảm ơn! Đối với tôi nó cũng được gắn dưới /dev/md127nên tôi đã ban hành lệnh dừng như thế này mdadm --manage --stop /dev/md127.
Ferenc Géczi

4

Nếu bạn có thể, bạn nên tạo một ddhình ảnh của toàn bộ đĩa trước khi bạn làm bất cứ điều gì, chỉ trong trường hợp.

Bạn sẽ có thể gắn kết / dev / sda3 trực tiếp sau khi mdadmphát hành nó:

mdadm --stop / dev / md2

gắn kết / dev / sda3 / mnt / cứu hộ

Nếu điều đó không hoạt động testdiskthường có thể tìm thấy các hệ thống tập tin trên các thiết bị khối thô.


1
Điều này không làm việc cho tôi. "mount: loại hệ thống tập tin không xác định 'linux_ston_member'"
Cerin

4

Tôi đã làm điều đó bằng "cách khó": (đầu tiên nếu nó có thể sao chép đĩa này trước khi bạn làm bất cứ điều gì!)

dmesgcho đĩa đột kích hoặc thử (ví dụ sdc1:)

$ fdisk -l

Thay đổi RAID-DISK-Flag thành hệ thống tệp Linux của bạn (ext3 hoặc thứ gì đó), lưu cái này và khởi động lại.

Sau đó

$ mdadm --zero-superblock /dev/sdx 

và voila bạn có thể gắn kết

$ mount /dev/sdc1 /mnt

1
điều này sẽ vô hiệu hóa RAID và tạo ra một ổ đĩa 'bình thường'.
CousinCocaine
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.