Linux – Whats wrong with the partition table

fdisklinuxpartitionusb

I'm a bit lost here.
I got my trusty old external 500Gb USB drive but it refuse to mount:

I think my partition table is invalid:

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>).

Lastly 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

Best Answer

Looks like the drive is now throwing some errors, the DMESG output shows it pretty well. Those logical blocks look to be within the defined partitions, but it does seem to be enough for the OS to not want to mount the device. At this point, I'd throw smartctl -a /dev/sdb at it and see what it yields. That should deliver the SMART information for the drive and should show if it really is throwing bad clusters.

Related Topic