_HFS+
_パーティションが付属している友人のMac OS Xディスクがあります。このディスクから個人データを回復することになっていますが、ファイルシステムが破損しているか、ディスクが故障しているかはまだわかりません)。
背景:完全な症状は次のとおりです。ドライブはLinuxによって認識され、自動マウントされます(ここでXfce
を使用):
_liv@liv-HP-Compaq-dc7900:~$ cat /etc/mtab | grep -i hfs
/dev/sdb2 /media/Macintosh\040HD hfsplus ro,nosuid,nodev,uhelper=udisks 0 0
_
カーネルは次のことを報告します。
_[ 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
_
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
_
Thunar
でドライブを開くと、次のエラーメッセージが表示されます。_"Failed to open directory "Macintosh HD". Error when getting information for file '/media/Macintosh HD/.journal': Input/output error."
_(ただし、_emelFM2
_を使用すると、マウントポイントといくつかのサブディレクトリにアクセスできます。)
マウントポイントでls
を試すと、一連の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
_
最後に、hfsprogs
をインストールして_fsck.hfsplus
_を実行しようとしましたが、あまりうまくいきませんでした。
_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
_
質問:上記のエラーメッセージから、ファイルシステムが破損しているか、ドライブに障害がありますか?破損したファイルシステムを修正するにはどうすればよいですか?それが問題ではない場合、部分的に障害が発生したディスクから user data を回復するにはどうすればよいですか?
UPDATE1:
このハードディスクで使用する必要がある 'smartctl -d'オプション: 'scsi'または 'ata'? から得た有用な入力を考えると、正常に実行できましたハードドライブのsmartctl
:
_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.
_
この出力を解析する方法はわかりませんが、2つのことが目に浮かびます。
SMART overall-health self-assessment test result: PASSED
_ATA Error Count: 1210 (device log contains only the most recent five errors)
それでそれはどれほど悪いですか?そして、どうすればいいですか?
UPDATE2:
コメントの提案に従って、Mac OS Xを使用して_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
_
そして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).
_
では、これらのエラーメッセージはどの程度悪いのでしょうか。ドライブは乾杯ですか?
UPDATE3:
私はsmartctl
をもう少し使ってみましたが、ドライブは確実に乾杯しているように見えます(ただし確認してください!!)。
_# '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
_
私は選び出すことができます:
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
_ドライブ自体の testdisk
やphotorec
のような解決策は、今のところ問題外です。したがって、データを救うための唯一の希望は、自分自身をより大きなハードディスクにして、 dd
またはddrescue
を使用して、障害が発生したドライブのビットごとのコピーを作成し、再生することです。結果の画像でphotorec
を使用します。他のアイデアは大歓迎です!
UPDATE4:
破損したハードドライブからデータを回復する:「フリーザートリック」 で問い合わせたように、_smartctl -H /dev/yourdisk
_および_smartctl -A /dev/yourdisk
_の出力を投稿しています:
_[Output was misleading so I removed that. See UPDATE5.]
_
これにより、障害の種類を特定できますか?
UPDATE5:
約1週間前、私は愚かにもディスク上でtestdisk
を1晩実行しました(ネイティブのMac OS X fsck
を数回試行した後)。 testdisk
セッションの最後に、クリック音( " click of death "?)がはっきりと聞こえ、ドライブはそれ以上の読み取りを行うことができませんでした(すべての読み取りはエラーになりました) )。当初は過熱が原因であると考えていましたが、今では損傷が単純に拡大し、ドライブの状態が非常に悪いと思いがちです。
ドライブでsmartctl
_short self-test
_を実行しようとすると、テスト_Completed with electrical failure
_およびsmartctl
の出力は、_240 Head_Flying_Hours 0x0001 001 001 001 Pre-fail Offline FAILING_NOW 3
_エラーを含め、UPDATE3と同じです。
また、ddrescue
セッションを試みましたが、その合計は_0 bytes
_の救出で終了しました。
_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
_
読み取りを試みるたびに、カーネルは_Buffer I/O error on device
_のdmesg
で不平を言っていました:
_[ 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
_
したがって、これらすべては間違いなくハードウェアの損傷を示しています。しかし、損傷の正確なタイプは何ですか? (部分的に、 "freezer trick" が適切であるかどうかを確認したい。)
関連の質問 で示唆されているように、 ハードドライブがおかしくなったときにデータを回復する方法 を確認しましたが、私が気付いた症状は、次のいずれかです。
ここに投稿されたすべての追加情報を考慮して、ディスクで発生している障害のtypeを特定することは可能ですか?この場合、 "freezer trick" が適切でしょうか?
( 推奨 は、「読み取り/書き込みヘッドがディスクの表面に触れると、トスとツイストが発生するため、読み取りが不可能になる」と感じました。現実的な説明ですが、確認方法はわかりません。)
私はこのスレッドを見つけるのが遅すぎるようですが、このスレッドの将来の読者のために:
データレスキューを行う場合、最初のステップはドライブの完全なイメージを実行するでddまたは同様のものにする必要があります(cloneZillaが一般的な選択肢です)。
言い換えると、データを救済しようとするときにボリュームにそれ以上の損傷を与えないように、ドライブの現状をそのまま取得します。
最初のスマートログに基づくと、おそらく124の不良セクターがあります-この部分:
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 3
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 124
実際の数を確認するには、フルスキャンを実行する必要があります。一部のファイルは確かに破損しています。そのため、エラーカウント:1210があり、破損したセクターが読み取られるたびに、+ 1エラーが発生します。セクターは書き込み中のみ再配置できるため、ディスクを機能させる場合は、これらのセクターにゼロを書き込む必要があります。私はhfsファイルシステムを使用したことがないので、それを操作する方法を説明することはできません。 ext4がある場合は、次のオプションを指定してfsckを使用できます。
-c Check for bad blocks and add them to the badblock list
-l bad_blocks_file Add to badblocks list
したがって、すべての不良ブロックのリストを取得し、それらの場所を知ることができます。これは、不良ブロックが通常のファイルやその他のものを損傷したかどうかを推定するのに役立ちます。 debugfs
を使用していました。次に、次の方法でこれらのセクターにゼロを書き込むことができます。
# hdparm --yes-i-know-what-i-am-doing --write-sector 104284160 /dev/sdb
破損したファイルを削除します。
あなたが提供したログから:
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
破損しているファイルがわかります。
次は、次のパラメータの値です。
193 Load_Cycle_Count 0x0032 037 037 000 Old_age Always - 635340
これにより、ディスクが強制終了されるか、すでに強制終了されています。たとえば、私のディスクの寿命は500kです。 350kに達したときにこれについて知りました...最終的に、私はディスクファームウェアでこの機能を無効にしましたが、これまでのところ機能します。
次はファイルシステムのスーパーブロックです。このような状況では、そのブロックのコピーを作成しておく必要があります。不良ブロックを削除した後、スーパーブロックを復元できます。スーパーブロックが破損していて、バックアップがない場合、またはバックアップセクターの場所を覚えていない場合、データを回復できません。使用してみてください:
# file -s /dev/sdb1
# file -s /dev/sdb
しかし、ファイルシステム(lsコマンド)を読み取ることができるので、それほど悪くはありません。不良ブロックを削除していくつかのファイルを削除した後は、すべてが問題ないはずです。