我有点迷茫了。我拿到了我值得信赖的旧式 500Gb 外置 USB 驱动器,但它拒绝安装:
我认为我的分区表无效:
sudo fdisk -lu /dev/sdb
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4e5041f4
Device Boot Start End Blocks Id System
/dev/sdb1 16065 976768064 488376000 f W95 Ext'd (LBA)
/dev/sdb5 16128 976768064 488375968+ 7 HPFS/NTFS
sudo sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 60801 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 1 60800 60800 488376000 f W95 Ext'd (LBA)
/dev/sdb2 0 - 0 0 0 Empty
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
/dev/sdb5 1+ 60800 60800- 488375968+ 7 HPFS/NTFS
Input in the following format; absent fields get a default value.
<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
Usually you only need to specify <start> and <size> (and perhaps <type>).
最后 dmesg
[ 1014.245138] Buffer I/O error on device sdb5, logical block 6291457
[ 1235.310900] exe (4284): /proc/4284/oom_adj is deprecated, please use /proc/4284/oom_score_adj instead.
[ 1843.019531] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[ 1843.020509] sdb: sdb1 < sdb5 >
[ 1846.615552] sd 5:0:0:0: [sdb] Unhandled sense code
[ 1846.615560] sd 5:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 1846.615565] sd 5:0:0:0: [sdb] Sense Key : Medium Error [current]
[ 1846.615572] sd 5:0:0:0: [sdb] Add. Sense: Unrecovered read error
[ 1846.615579] sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 00 60 3f 00 00 00 08 00
[ 1846.615591] end_request: I/O error, dev sdb, sector 6307584
[ 1846.615598] quiet_error: 6 callbacks suppressed
[ 1846.615602] Buffer I/O error on device sdb5, logical block 6291456
[ 1846.615609] Buffer I/O error on device sdb5, logical block 6291457
[ 1846.615613] Buffer I/O error on device sdb5, logical block 6291458
[ 1846.615617] Buffer I/O error on device sdb5, logical block 6291459
[ 1846.615621] Buffer I/O error on device sdb5, logical block 6291460
[ 1846.615625] Buffer I/O error on device sdb5, logical block 6291461
[ 1846.615629] Buffer I/O error on device sdb5, logical block 6291462
[ 1846.615633] Buffer I/O error on device sdb5, logical block 6291463
[ 1849.831315] sd 5:0:0:0: [sdb] Unhandled sense code
[ 1849.831323] sd 5:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 1849.831331] sd 5:0:0:0: [sdb] Sense Key : Medium Error [current]
[ 1849.831340] sd 5:0:0:0: [sdb] Add. Sense: Unrecovered read error
[ 1849.831349] sd 5:0:0:0: [sdb] CDB: Read(10): 28 00 00 60 3f 00 00 00 08 00
[ 1849.831367] end_request: I/O error, dev sdb, sector 6307584
[ 1849.831375] Buffer I/O error on device sdb5, logical block 6291456
[ 1849.831384] Buffer I/O error on device sdb5, logical block 6291457
答案1
看起来驱动器现在出现了一些错误,DMESG 输出很好地显示了这一点。这些逻辑块看起来位于定义的分区内,但这似乎足以让操作系统不想安装该设备。此时,我会向smartctl -a /dev/sdb
它抛出错误,看看它会产生什么结果。这应该会提供驱动器的 SMART 信息,并显示它是否真的出现了坏簇。