|
|
我今天手动修改了硬盘的第一扇区中的主分区表,虽然当时进行了仔细的检查,但我无法保证我的修改一定没有问题。
修改后重新启动时系统就无法启动了,只是说从硬盘启动失败。我把硬盘卸下来,装在移动硬盘盒上,插到一台装有Windows系统的电脑中,发现Windows系统完全不理会这个设备,Acronis Disk Director和Windows的磁盘管理程序根本不能发现这块硬盘(但系统可以识别到这个设备)。我有将其插到装有Linux系统(Debian)的电脑中,dmesg中有关的信息如下(硬盘可以被识别,但报告逻辑块0不能读取):
usb 5-6: new high speed USB device using ehci_hcd and address 3
usb 5-6: configuration #1 chosen from 1 choice
Initializing USB Mass Storage driver...
scsi2 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 2:0:0:0: Direct-Access SAMSUNG MP0804H 0811 PQ: 0 ANSI: 0
sd 2:0:0:0: [sda] 156368016 512-byte hardware sectors (80060 MB)
sd 2:0:0:0: [sda] Test WP failed, assume Write Enabled
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] 156368016 512-byte hardware sectors (80060 MB)
sd 2:0:0:0: [sda] Test WP failed, assume Write Enabled
sd 2:0:0:0: [sda] Assuming drive cache: write through
sda:<6>usb 5-6: reset high speed USB device using ehci_hcd and address 3
usb 5-6: USB disconnect, address 3
sd 2:0:0:0: [sda] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK,SUGGEST_OK
end_request: I/O error, dev sda, sector 0
Buffer I/O error on device sda, logical block 0
更严重的是,在dev下没有sda这个文件。
无奈,我又把硬盘插回原来的电脑,并用移动硬盘启动了一个Ubuntu系统(系统在移动硬盘上),启动时产生了大量的错误(我加了内核参数debug):
ata1: EH complete
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata1.00: BMDMA stat 0x25
ata1.00: cmd c8/00:20:00:00:00/00:00:00:00:00/e0 tag 0 dma 16384 in
res 51/40:20:00:00:00/00:00:00:00:00/e0 Emask 0x9 (media error)
ata1.00: status: { DRDY ERR }
ata1.00: error: {UNC }
ata1.00: configured for UDMA/100
最后系统还是启动起来了,而且/dev/sda出现了。我使用dd读取前面的扇区时
dd if=/dev/sda of=~/a.txt bs=512 count=1
就会出现和上面一样的错误,且读取失败。还有一些错误信息如:
sd 0:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
sd 0:0:0:0: [sda] Sense Key: Medium Error [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
00 00 00 00
sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
end_request: I/O error, dev sda, sector 0
Buffer I/O error on device sda, logical block 0
Buffer I/O error on device sda, logical block 1
Buffer I/O error on device sda, logical block 2
Buffer I/O error on device sda, logical block 3
但
dd if=/dev/sda of=~/a.txt bs=512 count=1 skip=8
就会成功,经过实验,前4096字节不能读,后面的好像都没有问题。
由于只经历过一次重新启动,主观上感觉硬件损坏的可能性不是很大,难道修改mbr会导致硬盘无法读取吗?如果可以,有什么办法可以解决吗?谢谢大家了 |
|