ฉันใช้ Linux บนโน้ตบุ๊ก โน้ตบุ๊กของฉันเพิ่งตกลงบนพื้น และตอนนี้ฉันกำลังพยายามบันทึกข้อมูลจาก hdd ที่เสียหายของฉันให้มากที่สุด ฉันสามารถบูตโน้ตบุ๊กจาก Linux live CD

เรื่องสั้นยาว:หนึ่งพาร์ติชั่น ext4 ไม่สามารถต่อเชื่อมได้ แต่ฉันสามารถลองซ่อมแซมได้โดย fsck.ext4 ฉันยังสามารถลองกู้คืนบล็อกที่ไม่ดีบน hdd ก่อน (อาจเป็นโดย SpinRite) ฉันจะทำอะไรเป็นอย่างแรก?

ในรายละเอียดทั้งหมด:

นี่คือไดรฟ์ของฉัน:

# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 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: 0x00000080

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3824    30716248+   7  HPFS/NTFS
/dev/sda2            3825       19449   125507812+  83  Linux
/dev/sda3           19450       19457       64260   83  Linux

ลืมพาร์ติชั่น /dev/sda1 NTFS ไปเลย ไม่สำคัญขนาดนั้น พาร์ติชันที่สาม /dev/sda3 เป็นเพียง /boot ไม่สำคัญเช่นกัน ที่สอง /dev/sda2 คือพื้นที่ทางกายภาพสำหรับ LVM (ดูด้านล่าง)

กลุ่มลอจิก /dev/group1/arch ถูกเข้ารหัสโดย dm-crypt LUKS ฉันไม่สามารถเปิดได้และข้อมูลอาจสูญหาย กลุ่มลอจิก /dev/group1/data และ /dev/group1/data2 เป็นวอลุ่ม ext4 ฉันสามารถเมานต์ /dev/group1/data2 ( mount -t ext4 -o ro,noload /dev/group1/data2 /mnt/data2 ) และสำรองข้อมูลบนไดรฟ์ภายนอก แต่ฉันไม่สามารถเมานต์ /dev/group1/data:

# mount -t ext4 -o ro,noload /dev/group1/data /x/data
mount: wrong fs type, bad option, bad superblock on /dev/mapper/group1-data,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

fsck ไม่ทำงาน:

# fsck.ext4 -n /dev/group1/data
e2fsck 1.41.11 (14-Mar-2010)
fsck.ext4: Attempt to read block from filesystem resulted in short read while trying to open /dev/group1/data
Could this be a zero-length partition?

dumpe2fs ไม่พบ superblock อย่างใดอย่างหนึ่ง:

# dumpe2fs /dev/group1/data
dumpe2fs 1.41.11 (14-Mar-2010)
dumpe2fs: Attempt to read block from filesystem resulted in short read while trying to open /dev/group1/data
Couldn't find valid filesystem superblock.

สิ่งเดียวที่ฉันทำได้คือพยายามค้นหาว่า superblock ปกติอยู่ที่ไหน:

# mkfs.ext4 -n /dev/group1/data
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
5242880 inodes, 20971520 blocks
1048576 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
640 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000

...และเริ่ม fsck โดยใช้หนึ่งใน superblock นี้:

# fsck.ext4 -n -b 229376 /dev/group1/data
e2fsck 1.41.11 (14-Mar-2010)
One or more block group descriptor checksums are invalid.  Fix? no

Group descriptor 0 checksum is invalid.  IGNORED.
Group descriptor 1 checksum is invalid.  IGNORED.
Group descriptor 2 checksum is invalid.  IGNORED.
Group descriptor 3 checksum is invalid.  IGNORED.
Group descriptor 4 checksum is invalid.  IGNORED.
Group descriptor 5 checksum is invalid.  IGNORED.
...
Group descriptor 637 checksum is invalid.  IGNORED.
Group descriptor 638 checksum is invalid.  IGNORED.
Group descriptor 639 checksum is invalid.  IGNORED.
/dev/group1/data contains a file system with errors, check forced.
Resize inode not valid.  Recreate? no

Pass 1: Checking inodes, blocks, and sizes
...here I pressed Ctrl-C...

ดังนั้น - มันแสดงข้อผิดพลาดมากมาย แต่ดูเหมือนว่าจะพยายามซ่อมแซม (ถ้าฉันใช้ fsck.ext4 -y แทน fsck.ext4 -n แน่นอน)

ตัวเลือกอื่น ๆ - เพื่อนของฉันมีแผ่นบูต SpinRite 6 ซึ่งบอกว่าเป็นโปรแกรมที่ดีที่สุดในการซ่อมแซมบล็อกที่ไม่ดี

ดังนั้นคำถามของฉันคือ - ฉันควร

  1. ลองใช้ SpinRite ก่อนเพื่อซ่อมแซมบล็อกที่เสียหาย จากนั้น fsck.ext4 -y (หรือดีกว่าทิ้งพาร์ติชั่นดิบทั้งหมดไปยังไฟล์ขนาดใหญ่หนึ่งไฟล์บน hdd ภายนอก ทำสำเนา ติดตั้งสำเนาเป็นลูปแบ็คแล้วลอง fckk.ext4 -y)
  2. ลอง firt fsck.ext4 -y ด้วยความหวังมากกว่าหลังจากนั้น ome data จะสามารถอ่านได้ สำรองข้อมูลนี้บน hdd ภายนอก (แล้วลองในที่สุด SpinRite) ?
  3. หรือทำอย่างอื่น?

ขอบคุณมากสำหรับคำแนะนำใด ๆ

โครงสร้าง LVM:

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               group1
  PV Size               119.69 GiB / not usable 2.22 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              30641
  Free PE               0
  Allocated PE          30641
  PV UUID               0k3Zl5-Q7BD-rb8J-9jTZ-2uii-GSGd-B339JB

# vgdisplay 
  --- Volume group ---
  VG Name               group1
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               119.69 GiB
  PE Size               4.00 MiB
  Total PE              30641
  Alloc PE / Size       30641 / 119.69 GiB
  Free  PE / Size       0 / 0   
  VG UUID               kKhvri-OVpL-uhCP-T4an-qXIJ-4XL0-kn9Ifi



# lvdisplay 
  --- Logical volume ---
  LV Name                /dev/group1/swap
  VG Name                group1
  LV UUID                wpDink-01q0-peLc-29at-5kgP-YO3a-8bNrb7
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                1.50 GiB
  Current LE             384
  Segments               1
  Allocation             contiguous
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Name                /dev/group1/arch
  VG Name                group1
  LV UUID                S1TZkr-y62z-dOuc-D38G-nuCH-1ilc-y2jqMa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                15.00 GiB
  Current LE             3840
  Segments               1
  Allocation             contiguous
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Name                /dev/group1/data
  VG Name                group1
  LV UUID                2R4LNv-sHPh-E7ES-goIF-5nUz-tQyj-GOiwvC
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                80.00 GiB
  Current LE             20480
  Segments               1
  Allocation             contiguous
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Logical volume ---
  LV Name                /dev/group1/data2
  VG Name                group1
  LV UUID                4VqpZj-uOBi-OAIZ-1IXA-G6mj-Qgfb-c6RYqw
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                23.19 GiB
  Current LE             5937
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:3
answer

สิ่งแรกที่ฉันจะทำคือใช้ ddrescue จาก liveCD เพื่อสร้างอิมเมจสำรองของไดรฟ์ หากมีความเสียหายทางกายภาพต่อไดรฟ์ มีโอกาสที่มีระยะเวลาจำกัดจนกว่าไดรฟ์จะล้มเหลวโดยสิ้นเชิง จากนั้นทำสำเนาของภาพนั้นเพื่อใช้งาน

จากตรงนั้น ฉันไม่มีข้อแนะนำที่คุณยังไม่ได้ลอง คนอื่นที่ฉลาดกว่าฉันจะต้องช่วยคุณที่นั่น