Bagaimana cara memperbaiki partisi HFS + yang rusak dari hard disk yang rusak?


8

Saya memiliki disk Mac OS X seorang teman yang dilengkapi dengan HFS+partisi. Saya seharusnya memulihkan data pribadi dari disk ini, dan saya belum yakin apakah filesystem rusak atau disk sekarat).


Latar Belakang : Gejala lengkapnya adalah sebagai berikut. Drive akan dikenali oleh Linux dan bahkan di-autount (menggunakan di Xfcesini):

liv@liv-HP-Compaq-dc7900:~$ cat /etc/mtab | grep -i hfs
/dev/sdb2 /media/Macintosh\040HD hfsplus ro,nosuid,nodev,uhelper=udisks 0 0

Kernel melaporkan hal berikut:

[ 4382.681310] usb 2-5: USB disconnect, device number 2
[ 4390.104044] usb 2-5: new high-speed USB device number 3 using ehci_hcd
[ 4390.259178] Initializing USB Mass Storage driver...
[ 4390.259983] scsi6 : usb-storage 2-5:1.0
[ 4390.260077] usbcore: registered new interface driver usb-storage
[ 4390.260079] USB Mass Storage support registered.
[ 4391.260684] scsi 6:0:0:0: Direct-Access     ASMT     2105             0    PQ: 0 ANSI: 6
[ 4391.261346] sd 6:0:0:0: Attached scsi generic sg2 type 0
[ 4391.494924] sd 6:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[ 4391.495668] sd 6:0:0:0: [sdb] Write Protect is off
[ 4391.495672] sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 4391.496551] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 4391.560091]  sdb: sdb1 sdb2
[ 4391.565039] sd 6:0:0:0: [sdb] Attached SCSI disk
[..]
[10376.614742] hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.  mounting read-only.
[10380.531230] sd 6:0:0:0: [sdb] Unhandled sense code
[10380.531234] sd 6:0:0:0: [sdb]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[10380.531239] sd 6:0:0:0: [sdb]  Sense Key : Medium Error [current] 
[10380.531243] sd 6:0:0:0: [sdb]  Add. Sense: Unrecovered read error
[10380.531253] sd 6:0:0:0: [sdb] CDB: Read(10): 28 00 00 1e 22 e8 00 00 08 00
[10380.531259] end_request: critical target error, dev sdb, sector 1975016
[10380.531264] Buffer I/O error on device sdb2, logical block 195672
[10384.353981] sd 6:0:0:0: [sdb] Unhandled sense code
[10384.353985] sd 6:0:0:0: [sdb]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[10384.353990] sd 6:0:0:0: [sdb]  Sense Key : Medium Error [current] 
[10384.353995] sd 6:0:0:0: [sdb]  Add. Sense: Unrecovered read error
[10384.354004] sd 6:0:0:0: [sdb] CDB: Read(10): 28 00 00 1e 22 e8 00 00 08 00
[10384.354011] end_request: critical target error, dev sdb, sector 1975016
[10384.354015] Buffer I/O error on device sdb2, logical block 195672

Inilah keluaran yang relevan dari lshw:

 *-scsi
      physical id: 3
      bus info: usb@2:5
      logical name: scsi7
      capabilities: emulated scsi-host
      configuration: driver=usb-storage
    *-disk
         description: SCSI Disk
         product: 2105
         vendor: ASMT
         physical id: 0.0.0
         bus info: scsi@7:0.0.0
         logical name: /dev/sdb
         version: 0
         serial: 00000000000000000000
         size: 232GiB (250GB)
         capabilities: gpt-1.00 partitioned partitioned:gpt
         configuration: ansiversion=6 guid=6b43402b-9887-4a33-a329-9801b59ccdc7
       *-volume:0
            description: Windows FAT volume
            vendor: BSD  4.4
            physical id: 1
            bus info: scsi@7:0.0.0,1
            logical name: /dev/sdb1
            version: FAT32
            serial: 70d6-1701
            size: 199MiB
            capacity: 199MiB
            capabilities: boot fat initialized
            configuration: FATs=2 filesystem=fat label=EFI name=EFI System Partition
       *-volume:1
            description: Apple HFS partition
            vendor: Mac OS X (fsck)
            physical id: 2
            bus info: scsi@7:0.0.0,2
            logical name: /dev/sdb2
            version: 4
            serial: d9a741cc-8313-cc78-0000-000000800000
            size: 232GiB
            capabilities: journaled bootable osx hfsplus initialized
            configuration: boot=osx checked=2009-09-24 02:29:07 created=2009-09-23 17:29:07 filesystem=hfsplus lastmountedby=fsck modified=2013-11-03 01:02:00 name=Customer state=unclean

Ketika saya membuka drive Thunar, saya mendapatkan pesan kesalahan berikut: "Failed to open directory "Macintosh HD". Error when getting information for file '/media/Macintosh HD/.journal': Input/output error."(Namun, saya dapat mengakses titik mount dan beberapa subdirs, jika saya gunakan emelFM2.)

masukkan deskripsi gambar di sini

Jika saya mencoba lspada titik mount, saya mendapatkan banyak kesalahan I / O:

liv@liv-HP-Compaq-dc7900:/media/Macintosh HD$ ls -lha
ls: cannot access .hotfiles.btree: Input/output error
ls: cannot access .journal: Input/output error
ls: cannot access .journal_info_block: Input/output error
ls: cannot access .Spotlight-V100: Input/output error
ls: cannot access .Trashes: Input/output error
ls: cannot access home: Input/output error
ls: cannot access libpeerconnection.log: Input/output error
ls: cannot access net: Input/output error
ls: reading directory .: Input/output error
total 20M
drwxrwxr-t 1 root   80   35 Oct 13 22:56 .
drwxr-xr-x 3 root root 4.0K Jan 16 21:09 ..
drwxrwxr-x 1 root   80   53 Oct 18 22:07 Applications
drwxr-xr-x 1 root root   39 Sep 26 00:51 bin
drwxrwxr-t 1 root   80    2 Jul  9  2009 cores
dr-xr-xr-x 1 root root    2 Jul  9  2009 dev
-rw-rw-r-- 1  501   80  16K Sep  8 14:19 .DS_Store
lrwxr-xr-x 1 root root   11 Sep 24  2009 etc -> private/etc
---------- 1 root   80    0 Jul  9  2009 .file
drwx------ 1   99   99  246 Nov  3 00:29 .fseventsd
lrwxr-xr-x 1 root   80   60 Mar 20  2010 Guides de l’utilisateur et informations -> /Library/Documentation/User Guides and Information.localized
dr-xr-xr-t 1 root root    2 Sep 24  2009 .HFS+ Private Directory Data?
d????????? ? ?    ?       ?            ? home
-????????? ? ?    ?       ?            ? .hotfiles.btree
-????????? ? ?    ?       ?            ? .journal
-????????? ? ?    ?       ?            ? .journal_info_block
-????????? ? ?    ?       ?            ? libpeerconnection.log
drwxrwxr-t 1 root   80   58 Mar 27  2013 Library
drwxrwxrwt 1 root root    4 Sep 18  2012 lost+found
-rw-r--r-- 1 root root  20M Jun  8  2011 mach_kernel
d????????? ? ?    ?       ?            ? net
drwxr-xr-x 1 root root    2 Jul  9  2009 Network
drwxr-xr-x 1  501   80    3 Oct 26  2010 opt
drwxr-xr-x 1 root root    6 Sep 24  2009 private
drwxr-xr-x 1 root root   67 Sep 26 00:52 sbin
d????????? ? ?    ?       ?            ? .Spotlight-V100
drwxr-xr-x 1 root root    4 Jul  3  2011 System
lrwxr-xr-x 1 root root   11 Sep 24  2009 tmp -> private/tmp
d????????? ? ?    ?       ?            ? .Trashes
drwxr-xr-x 1 root root    2 May 18  2009 .vol
-rw-r--r-- 1  501   80  70K Jun 26  2013 .VolumeIcon.icns

Terakhir, saya sudah mencoba menginstal hfsprogsdan menjalankan fsck.hfsplus, tetapi tidak berhasil:

root@liv-HP-Compaq-dc7900:/home/liv# fsck.hfsplus -q /dev/sdb2
** /dev/sdb2
QUICKCHECK ONLY; FILESYSTEM DIRTY

root@liv-HP-Compaq-dc7900:/home/liv# fsck.hfsplus -d /dev/sdb2
** /dev/sdb2
    Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
** Checking HFS Plus volume.
   Invalid B-tree node size
(8, 0)
** Volume check failed.
volume check failed with error 7 
    volume type is pure HFS+ 
    primary MDB is at block 0 0x00 
    alternate MDB is at block 0 0x00 
    primary VHB is at block 2 0x02 
    alternate VHB is at block 487725342 0x1d12191e 
    sector size = 512 0x200 
    VolumeObject flags = 0x07 
    total sectors for volume = 487725344 0x1d121920 
    total sectors for embedded volume = 0 0x00 

Pertanyaan : Dari pesan kesalahan di atas, apakah sistem file rusak atau drive gagal? Bagaimana saya bisa memperbaiki sistem file yang rusak? Dan jika bukan itu masalahnya, bagaimana saya bisa memulihkan data pengguna dari disk yang gagal sebagian?


UPDATE1 :

Diberikan masukan berguna yang saya dapatkan dari opsi 'smartctl -d' mana yang harus saya gunakan pada hard-disk ini: 'scsi' atau 'ata'? , Saya sekarang berhasil berjalan smartctldi hard-drive:

root@liv-HP-Compaq-dc7900:/home/liv# smartctl -d sat -H -i -c -A -l error -l selftest -l selective '/dev/sdb'
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-57-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MK2555GSXF
Serial Number:    10J9SA69S
LU WWN Device Id: 5 000039 245a067fd
Firmware Version: FH205B
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Jan 17 18:02:43 2014 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
[..]

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1031
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       16237
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       18
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   081   081   000    Old_age   Always       -       7987
 10 Spin_Retry_Count        0x0033   253   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       5274
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       1119
192 Power-Off_Retract_Count 0x0032   084   084   000    Old_age   Always       -       8196
193 Load_Cycle_Count        0x0032   037   037   000    Old_age   Always       -       635340
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       25 (Min/Max 7/49)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       3
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       124
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       57
222 Loaded_Hours            0x0032   087   087   000    Old_age   Always       -       5415
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       346
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       8107

SMART Error Log Version: 1
ATA Error Count: 1210 (device log contains only the most recent five errors)
[..]

Error 1210 occurred at disk power-on lifetime: 7984 hours (332 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 e8 22 1e 40  Error: UNC 8 sectors at LBA = 0x001e22e8 = 1975016

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 da 08 e8 22 1e 40 00      00:08:36.484  READ DMA EXT
  25 da 08 e8 22 1e 40 00      00:08:32.637  READ DMA EXT
  25 da 08 00 66 22 40 00      00:08:32.637  READ DMA EXT
  25 da 08 f8 65 22 40 00      00:08:32.625  READ DMA EXT
  25 da 08 50 c3 28 40 00      00:08:32.625  READ DMA EXT

[..]

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Saya tidak yakin bagaimana menguraikan output ini, tetapi ada dua hal yang muncul di mata saya:

  • SMART overall-health self-assessment test result: PASSED
  • ATA Error Count: 1210 (device log contains only the most recent five errors)

Jadi seberapa buruk itu? Dan bagaimana saya harus melanjutkan?


UPDATE2 :

Mengikuti saran di komentar, saya menggunakan Mac OS X untuk menjalankan diskutil verifyVolume:

mac:~ admin$ diskutil list
[..]
/dev/disk1
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *250.1 GB   disk1
1:                        EFI                         209.7 MB   disk1s1
2:                  Apple_HFS Macintosh HD            249.7 GB   disk1s2

mac:~ admin$ diskutil verifyVolume /dev/disk1s2
Started filesystem verification on disk1s2 Macintosh HD
Checking Journaled HFS Plus volume
Invalid B-tree node size
The volume Macintosh HD could not be verified completely
Error: -9957: Filesystem verify or repair failed
Underlying error: 8: POSIX reports: Exec format error

Dan fsck:

mac:~ admin$ fsck -d /dev/disk1s2 
** /dev/rdisk1s2
BAD SUPER BLOCK: MAGIC NUMBER WRONG

LOOK FOR ALTERNATE SUPERBLOCKS? [yn] y

SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE
-b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE
SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck(8).

Jadi, seberapa burukkah pesan kesalahan ini? Apakah drive bersulang?


UPDATE3 :

Saya bermain sedikit lebih dengan smartctldan menurut saya (tapi tolong konfirmasi !!) bahwa drive pasti bersulang:

# 'smartctl' -d sat,16 -H -i -c -A -l error -l selftest -l selective '/dev/sdb'

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-57-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MK2555GSXF
Serial Number:    10J9SA69S
LU WWN Device Id: 5 000039 245a067fd
Firmware Version: FH205B
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Jan 27 15:20:57 2014 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (  88) The previous self-test completed having
                    the electrical element of the test
                    failed.
Total time to complete Offline 
data collection:        (  120) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  90) minutes.
SCT capabilities:          (0x0039) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1025
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       0
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       3
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       27 (Min/Max 26/30)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       57
222 Loaded_Hours            0x0032   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       353
240 Head_Flying_Hours       0x0001   001   001   001    Pre-fail  Offline  FAILING_NOW 3
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

Error SMART Error Log Read failed: scsi error badly formed scsi parameters
Smartctl: SMART Error Log Read Failed
Error SMART Error Self-Test Log Read failed: scsi error badly formed scsi parameters
Smartctl: SMART Self Test Log Read Failed
Error SMART Read Selective Self-Test Log failed: scsi error badly formed scsi parameters
Smartctl: SMART Selective Self Test Log Read Failed

Saya dapat memilih:

  • SMART overall-health self-assessment test result: FAILED! Drive failure expected in less than 24 hours. SAVE ALL DATA.
  • 240 Head_Flying_Hours 0x0001 001 001 001 Pre-fail Offline FAILING_NOW 3

Saya menduga bahwa solusi apa pun seperti testdiskatauphotorec di drive itu sendiri cukup banyak dari pertanyaan sekarang. Jadi satu-satunya harapan saya untuk menyelamatkan data apa pun adalah membuat saya mendapatkan hard disk yang lebih besar dan membuat salinan bit-for-bit dari drive yang gagal menggunakan ddatauddrescue , dan kemudian bermain dengan photorecgambar yang dihasilkan. Ada ide lain yang paling disambut!


UPDATE4 :

Seperti yang ditanyakan dalam Memulihkan data dari hard-drive yang rusak: "trik freezer" , saya memposting output dari smartctl -H /dev/yourdiskdan smartctl -A /dev/yourdisk:

[Output was misleading so I removed that. See UPDATE5.]

Apakah ini memungkinkan untuk mengidentifikasi jenis kegagalan?


UPDATE5 :

Sekitar seminggu yang lalu saya bodoh berlari testdiskpada disk untuk satu malam (setelah beberapa fsckupaya Mac OS X asli ), dan kerusakan mungkin menjadi lebih buruk daripada ketika pemilik hanya menjatuhkannya. Di akhir testdisksesi saya jelas-jelas mendengar suara klik (" klik kematian "?), Dan drive tidak mampu membaca lebih lanjut (semua bacaan menghasilkan kesalahan). Awalnya saya berasumsi bahwa ini terjadi karena terlalu panas, tetapi sekarang saya cenderung percaya bahwa kerusakan hanya diperbanyak dan drive sekarang dalam kondisi sangat buruk.

Ketika saya mencoba untuk menjalankan smartctl short self-testdi drive, tes Completed with electrical failuredan smartctloutput sama dengan di UPDATE3, termasuk 240 Head_Flying_Hours 0x0001 001 001 001 Pre-fail Offline FAILING_NOW 3kesalahannya.

masukkan deskripsi gambar di sini

Saya juga mencoba sebuah ddrescuesesi, yang berakhir dengan 0 bytespenyelamatan total .

root@xubuntu:/mnt/ram# ddrescue -f -n /dev/sdc /dev/sda /mnt/ram/ddrescue.log

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:         0 B,  errsize:    250 GB,  current rate:        0 B/s
   ipos:     65024 B,   errors:       1,    average rate:        0 B/s
   opos:     65024 B,     time from last successful read:     3.5 m
Finished                   

Pada setiap percobaan baca, kernel mengeluh dmesgtentang Buffer I/O error on device:

[ 3706.642819] sd 9:0:0:0: [sdc]  Sense Key : Medium Error [current]
[ 3706.642824] sd 9:0:0:0: [sdc]  Add. Sense: Unrecovered read error
[ 3706.642834] sd 9:0:0:0: [sdc] CDB: Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3706.642842] end_request: critical target error, dev sdc, sector 24
[ 3706.642845] Buffer I/O error on device sdc, logical block 3
[ 3710.910060] sd 9:0:0:0: [sdc] Unhandled sense code
[ 3710.910064] sd 9:0:0:0: [sdc]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE

Jadi semua ini pasti menunjukkan kerusakan perangkat keras. Tapi apa jenis kerusakan yang tepat? (Sebagian, saya ingin memeriksa apakah "trik freezer" dengan cara apa pun sesuai.)

Seperti yang disarankan dalam pertanyaan terkait , saya memeriksa Cara Memulihkan Data Saat Hard Drive Anda Naik Perut dan menurut saya, mengingat gejala yang saya perhatikan, bahwa itu salah satunya:

  • Drive Anda Berputar ke Atas dan Membuat Suara Mengklik, atau
  • Drive Anda Berputar ke Atas dan Terdeteksi oleh Komputer Anda, Tetapi Menggantung Ketika Anda Mencoba Mengaksesnya

Jadi mengingat semua informasi tambahan yang diposting di sini, apakah mungkin mengidentifikasi jenis kegagalan yang dialami disk? Dan apakah "trik freezer" sesuai dalam kasus ini?

( Disarankan kepada saya bahwa "Ketika membaca kepala tulis menyentuh permukaan disk, kemudian mereka melemparkan dan memutar, jadi tidak ada lagi membaca mungkin", dan ini memang terdengar seperti penjelasan yang realistis, tapi saya tidak yakin bagaimana untuk mengkonfirmasinya.)


1
Pesan-pesan kernel ini mengatakan Anda memiliki sektor yang buruk. Anda dapat menggunakan smartctluntuk memeriksa apakah itu hanya bad sector atau sedikit, atau disk hal-hal yang sudah dekat.
derobert

@derobert Sekarang saya berhasil berjalan smartctldi drive (lihat UPDATE1 di OP). Ada wawasan?
landroni

Rekomendasi saya adalah untuk melampirkannya ke Mac dan mencoba memperbaiki dengan OS X asli fsckatau diskutil.
bahamat

@ Bahahamat Setidaknya di Debian, hfsprogs hulu adalah ... Apple. Meskipun paket Debian sudah usang. Menemukan versi terbaru di hulu, yah, menantang ... Ini mungkin opensource.apple.com/source/hfs/hfs-226.1.1 tetapi versi yang lebih rendah, jadi siapa tahu!
derobert

@derobert: Ya ... Versi Debian adalah 332.25-11. Menurut changelog 332.25-1 adalah rilis upstream baru yang cocok dengan Mac OS X 10.4 pada tahun 2009. Sebelumnya, versi minornya adalah 332.23. Jadi sepertinya versi Debian melacak Tiger. Kalau itu aku , aku akan gugup menjalankan Tiger fsckuntuk apa pun yang modern.
bahamat

Jawaban:


7

Sepertinya saya menemukan utas ini terlambat, tetapi untuk pembaca mendatang utas ini:

Saat melakukan penyelamatan data, langkah pertama Anda harus melakukan gambar penuh drive dengan dd atau yang serupa (cloneZilla adalah pilihan populer).

Dengan kata lain, dapatkan jejak drive apa adanya agar Anda tidak merusak volume lebih lanjut saat mencoba menyelamatkan data.


2
Yup, tepatnya! Itu adalah kesalahan awal saya selama ini. Semua itu testdisk, pengecekan FS, dll. Alat lakukan adalah untuk memperburuk masalah perangkat keras. Mungkin yang terbaik adalah mengkloning citra drive menggunakan alat seperti ddrescue, karena memungkinkan untuk secara cerdas melewati sektor yang bermasalah (padahal ddhanya akan gagal pada tanda pertama kerusakan perangkat keras).
landroni

1
Lebih baik lagi, gunakan dd_rescue bukan ddrescue. Ini aktif mengharapkan dan berurusan dengan menjalankan sektor yang rusak, melompat ke zona waras untuk mendapatkan sebanyak mungkin dari data yang mudah dibaca sebelum kembali untuk mencoba kembali zona gagal lambat. Jenius dan gratis.
hmijail meratapi orang-orang yang mengundurkan diri

3

Berdasarkan smart log pertama, Anda mungkin memiliki 124 bad sector - bagian ini:

196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       3
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       124

Anda harus melakukan pemindaian penuh untuk memastikan nomor yang sebenarnya. Beberapa file pasti rusak. Itu sebabnya Anda memiliki Kesalahan Hitung: 1210, setiap kali sektor yang rusak dibaca, Anda mendapatkan kesalahan +1. Anda harus menulis nol untuk sektor-sektor ini jika Anda ingin membuat cakram bekerja karena sektor-sektor hanya dapat dipindahkan ketika mereka sedang ditulis. Saya tidak bisa memberi tahu Anda cara beroperasi pada sistem file hfs karena saya belum pernah menggunakannya. Jika Anda memiliki ext4, Anda dapat menggunakan fsck dengan opsi berikut:

 -c                   Check for bad blocks and add them to the badblock list
 -l bad_blocks_file   Add to badblocks list

Jadi, Anda bisa mendapatkan daftar semua blok buruk, dan kemudian Anda bisa tahu lokasi mereka, yang dapat membantu memperkirakan apakah blok buruk merusak file biasa atau sesuatu yang lain. Saya menggunakan debugfs. Maka Anda dapat menulis nol untuk sektor-sektor ini melalui:

# hdparm --yes-i-know-what-i-am-doing --write-sector 104284160 /dev/sdb

dan hapus file yang rusak.

Dari log yang Anda berikan:

ls: cannot access .hotfiles.btree: Input/output error
ls: cannot access .journal: Input/output error
ls: cannot access .journal_info_block: Input/output error
ls: cannot access .Spotlight-V100: Input/output error
ls: cannot access .Trashes: Input/output error
ls: cannot access home: Input/output error
ls: cannot access libpeerconnection.log: Input/output error
ls: cannot access net: Input/output error
ls: reading directory .: Input/output error

Anda tahu file mana yang rusak.

Hal berikutnya adalah nilai parameter berikut:

193 Load_Cycle_Count        0x0032   037   037   000    Old_age   Always       -       635340

Ini membunuh disk Anda, atau sudah membunuhnya. Disk saya, misalnya, memiliki 500 ribu seumur hidup. Saya mengetahui tentang hal ini ketika mencapai 350rb. Pada akhirnya, saya menonaktifkan fitur ini di firmware disk saya, dan berfungsi sejauh ini.

Hal berikutnya adalah supperblock filesystem. Anda harus melakukan salinan blok itu untuk situasi seperti ini, dan setelah menghapus badblock, Anda bisa mengembalikan superblok. Jika superblok rusak, dan Anda tidak memiliki cadangan, atau Anda tidak ingat lokasi sektor cadangan, Anda tidak akan dapat memulihkan data. Coba gunakan:

# file -s /dev/sdb1
# file -s /dev/sdb

Tetapi Anda dapat membaca filesystem (perintah ls), jadi itu tidak terlalu buruk, dan saya pikir setelah menghapus badblock dan menghapus beberapa file, semuanya harus baik-baik saja.


Terima kasih! Sebagai catatan umum, saya punya sedikit keraguan bahwa drive rusak (sebelum saya bahkan bisa me-mount partisi HFS +, tapi sekarang kernel tidak mendeteksi bahkan itu; pengungkapan penuh: Saya bodoh berlari testdiskdi atasnya selama satu malam, dan kerusakan kemungkinan menjadi lebih buruk daripada ketika pemiliknya menjatuhkannya). Jadi sekarang saya hanya berharap pada ddrescueapa pun yang saya bisa darinya , dan kemudian photorecapa pun yang bisa diselamatkan.
landroni

Beberapa pertanyaan. "Load_Cycle_Count" Apa artinya itu, dan mengapa itu mematikan disk? Bagaimana Anda bisa menonaktifkannya di firmware? "Hal berikutnya adalah sistem file supperblock. Seharusnya kamu sudah membuat salinan dari blok itu [..]" Aku seharusnya sudah melakukan salinan dari semuanya begitu aku mendapatkannya !! Tetapi bagaimanapun juga, sekarang superblok tersebut kemungkinan akan hangus, seperti akhir-akhir ini ketika saya menghubungkan disk kernel tersebut mengeluh tentang superblock yang rusak dmesg.
landroni

1
Baca tentang ini di sini community.wd.com/t5/My-Book-Live/… - Saya punya disk WD, dan saya bisa menggunakan idle3-tools - idle3-tools.sourceforge.net
Mikhail Morfikov

1
Itu karena tiga nilai 001 001 001- jika VALUE = <THRESH, disk mungkin akan gagal, sehingga Anda mendapatkan info itu. Bisa juga tidak ada artinya.
Mikhail Morfikov

1
@ Landroni - Saya tidak yakin apakah membekukan disk adalah ide yang bagus, tetapi jika disk Anda mati, atau hampir mati, dan Anda tidak bisa membuatnya bekerja, Anda tidak dapat melakukan lebih banyak kerusakan, jadi jika Anda tidak punya pilihan lain, lakukan saja, tapi saya pikir itu tidak akan membantu.
Mikhail Morfikov

-2

Kerusakan drive mekanis

Untuk memulihkan data dari blok buruk, Anda dapat menggunakan utilitas SpinRite $ 89 untuk memulihkan data. SpinRite tidak tergantung pada sistem file.

Kerusakan sistem file HFS +

Ketika ada masalah dalam sistem file HFS +, gunakan utilitas DiskWarrior $ 99,95 pada Mac OS X untuk memperbaiki masalah HFS +.

Karena Anda sudah menggunakan alat perbaikan (fsck) lainnya, Anda perlu menggunakan DiskWarrior dalam mode " scavenge ". Anda dapat mencapai opsi "scavenge" tersembunyi dengan menekan dan menahan altsebelum menekan tombol "Rebuild" ("Rebuild" berubah menjadi "Rebuild ..." sambil menahan tombol alt). Sekarang tambahkan tanda centang ke "Mengais" dan mulai "Membangun kembali".

"Pemulung" DiskWarrior dioptimalkan untuk memulihkan file setelah utilitas perbaikan disk lain telah digunakan untuk memulihkan file. Korupsi OP mungkin disebabkan oleh masalah logis atau fisik. DiskWarrior berspesialisasi dalam menghilangkan kesalahan direktori "logis", SpinRite berspesialisasi dalam memulihkan data yang disebabkan oleh masalah hard drive "fisik".


Apa yang berbeda dari normal tentang mode "memulung" DiskWarrior? Mengapa alat-alat ini sangat cocok untuk menyelesaikan situasi OP?
CVn

1
@ MichaelKjörling "pemulung" DiskWarrior dioptimalkan untuk memulihkan file setelah utilitas perbaikan disk lain telah digunakan untuk memulihkan file. Korupsi OP mungkin disebabkan oleh masalah logis atau fisik. DiskWarrior berspesialisasi dalam menghilangkan kesalahan direktori "logis", SpinRite berspesialisasi dalam memulihkan data yang disebabkan oleh masalah hard drive "fisik".
Pro Backup

Anda harus mengedit posting Anda untuk memasukkan informasi tambahan, lalu mungkin menggunakan @ -comment untuk memberi tahu komentator asli. Informasi dalam komentar hanya memiliki kecenderungan untuk mudah tersesat ke kebisingan.
CVn

1
Saya harus merekomendasikan MELAWAN SpinRite . Ketika saya mencoba menyelamatkan data dari hard disk hanya membuang waktu berharga pada disk yang sekarat (> 24 jam kurang dari 1 MB, sampai saya menyerah dan mencoba sesuatu yang lain). Akhirnya saya berhasil mendapatkan kembali sekitar 80% data dengan menggunakan Linux (ddrescue dan dd_rescue). Saya telah memiliki pengalaman yang baik dengan DiskWarrior, meskipun tidak dalam mode mengais.
hmijail meratapi orang-orang yang mengundurkan diri

Saya pernah mengalami situasi yang sangat mirip beberapa kali, memecahkan masalah yang baru sekarang; dan saya harus @hmijail 2 pada bahwa: ddrescue, testdisk, dan perangkat lunak bebas lainnya telah terbukti sangat membantu sejauh ini. jpgrecoverstok Debian bekerja dengan sangat baik. Juga, tandingan alat OSX yang menjengkelkan yang disebut Easeus recovery file wizard berfungsi dengan baik, tetapi BUKAN jika disk kacau seperti dalam pertanyaan OPs, di sini.
forgetstackxpassword
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.