วิธีการติดตั้งดิสก์จากระบบการโจมตีที่ถูกทำลาย?


16

ฉันมีสถานการณ์ที่น่ากลัวที่ฉันต้องกู้คืนข้อมูลจากระบบการโจมตีที่เสียหายในระบบช่วยเหลือ Debian Linux ฉันต้องการเมานต์พวกเขาทั้งหมดไปยัง / mnt / rescue ในโหมดอ่านอย่างเดียวเพื่อให้สามารถคัดลอกอิมเมจ 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)?

ฉันควร assamble คนอื่น ๆ บุก 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

ไม่สามารถทำการติดตั้งกับ 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

การติดตั้ง / 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
Tony Stark

อาจจะsd?1เป็น swapspace พยายามที่จะรวบรวมmd1และและจะติดกับmd2 mount -t auto ...
Hauke ​​Laging

@HaukeLaging: ฉันพยายามรวบรวม md0, md1 และ md2 (ดูโพสต์ที่อัปเดต) md1 เท่านั้นที่ประกอบสำเร็จและประกอบเข้าด้วยกัน อีกสองคนล้มเหลวในการรวบรวมและติดตั้ง ความคิดใด ๆ
Tony Stark

1
คุณสามารถแก้ไขปัญหานี้ได้หรือไม่ โปรดลองโพสต์คำตอบด้วยตนเองด้วยโซลูชันที่ทำงานให้คุณ (หรือยอมรับคำตอบที่มีอยู่หากสิ่งนั้นช่วย) หากคุณทำเพื่อประโยชน์ของผู้เข้าชมในอนาคต
CVN

คำตอบ:


3

ในกรณีของฉันฉันนำ CentOS 7 ขึ้นมาและลองทำตามคำแนะนำของทุกคนในหน้านี้ ฉันยังคงทำงานเป็นข้อความไม่ว่างของอุปกรณ์ เหตุผลในความคิดของฉันทำไมคุณถึงได้รับ

mdadm: ไม่สามารถเปิดอุปกรณ์ / 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 อื่น ๆ


คำตอบนี้ช่วยฉันได้มากที่สุด ขอบคุณ! สำหรับฉันมันก็ยังอยู่ใต้ดังนั้นฉันออกหยุดเช่นนี้/dev/md127 mdadm --manage --stop /dev/md127
Ferenc Géczi

4

ถ้าเป็นไปได้คุณควรสร้างddอิมเมจของดิสก์ทั้งหมดก่อนทำทุกอย่างในกรณี

คุณควรจะเมานต์ / dev / sda3 โดยตรงเมื่อรีลีสmdadmมัน:

mdadm - หยุด / dev / md2

mount / dev / sda3 / mnt / rescue

หากไม่ได้ผลtestdiskมักจะสามารถค้นหาระบบไฟล์บนอุปกรณ์บล็อกดิบ


1
มันไม่ได้ผลสำหรับฉัน "เมานต์: ประเภทระบบไฟล์ที่ไม่รู้จัก 'linux_raid_member'"
Cerin

4

ฉันทำโดย "วิธียาก": (ก่อนถ้าเป็นไปได้โคลนดิสก์นี้ก่อนที่คุณจะทำอะไร!)

dmesgสำหรับการโจมตีดิสก์หรือลอง (ตัวอย่าง: sdc1)

$ fdisk -l

เปลี่ยน RAID-DISK-Flag เป็นระบบไฟล์ Linux ของคุณ (ext3 หรือบางอย่าง) บันทึกสิ่งนี้และรีบูต

หลังจากนั้น

$ mdadm --zero-superblock /dev/sdx 

และ voila คุณสามารถติดตั้งได้

$ mount /dev/sdc1 /mnt

1
สิ่งนี้จะปิดการใช้งาน RAID และสร้างไดรฟ์ 'ปกติ'
CousinCocaine
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.