我有一台最近“死机”的戴尔笔记本电脑(启动时会出现蓝屏死机)并且硬盘驱动器会发出奇怪的循环咔嗒声。
我想看看我是否可以在我的 linux 机器上使用一些工具来恢复数据,所以我把它插入那里。
如果我运行“fdisk”,我会得到:
Disk /dev/sdb: 20.0 GB, 20003880960 bytes
64 heads, 32 sectors/track, 19077 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x64651a0a
Disk /dev/sdb doesn't contain a valid partition table
Run Code Online (Sandbox Code Playgroud)
好吧,分区表搞砸了。但是,如果我运行“testdisk”以尝试修复该表,它此时会冻结,并发出相同的循环点击噪音:
Disk /dev/sdb - 20 GB / 18 GiB - CHS 19078 64 32
Analyse cylinder 158/19077: 00%
Run Code Online (Sandbox Code Playgroud)
我真的不关心硬盘驱动器再次工作,只关心数据,所以我运行“gpart”来找出分区以前的位置。我懂了:
dev(/dev/sdb) mss(512) chs(19077/64/32)(LBA) #s(39069696) size(19077mb)
* Warning: strange partition table magic 0x2A55.
Primary partition(1)
type: 222(0xDE)(UNKNOWN)
size: 15mb #s(31429) s(63-31491)
chs: (0/1/1)-(3/126/63)d (0/1/32)-(15/24/4)r
hex: 00 01 01 00 DE 7E 3F 03 3F 00 00 00 C5 7A 00 00
Primary partition(2)
type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX) (BOOT)
size: 19021mb #s(38956987) s(31492-38988478)
chs: (4/0/1)-(895/126/63)d (15/24/5)-(19037/21/31)r
hex: 80 00 01 04 07 7E FF 7F 04 7B 00 00 BB 6F 52 02
Run Code Online (Sandbox Code Playgroud)
所以我试图只挂载到旧的 NTFS 分区,但出现错误:
sudo mount -o loop,ro,offset=16123904 -t ntfs /dev/sdb /mnt/usb
NTFS signature is missing.
Run Code Online (Sandbox Code Playgroud)
啊。好的。但是后来我尝试通过运行来获取原始数据转储
dd if=/dev/sdb of=/home/erik/brokenhd skip=31492 count=38956987
Run Code Online (Sandbox Code Playgroud)
但是该文件达到了 59885568 字节,并发出了相同的循环点击噪音。
显然有坏道,但我不知道该怎么办!
数据仍然存在......如果我在文本板中查看那个 57MB 的文件......我可以看到来自文件的原始数据。
我怎样才能取回我的数据?
感谢您的任何建议,
解决方案:
我能够恢复大约 90% 的数据: