I have a USB storage drive which is using NTFS. It works perfectly in Win10, I can see the drive and the files and read and write without issue.
I was previously able to mount this drive on my Arch server via the UUID.
I recently plugged this USB into my Win10 machine so I could do some file transfers onto another USB, and that was fine. After, I safely removed the USB drives with the eject option.
But now plugging the USB back into my Arch server it throws an error on boot saying timeout on mounting the disk.
I had a look using things like fdisk and lsblk and the UUID has completely disappeared for the USB disk.
fdisk -l shows the disk and its partitions /dev/sdb1 "Microsoft Reserved" and /dev/sdb2 "Microsoft Basic Data".
But with lsblk -l it only shows sdb it doesn't show the partitions like it does on the other drives.
Looking in the /dev/disk/by-uuid it has nothing that correlates to the USB disk.
When I try sudo mount /dev/sdb2 /mnt/test it says fsconfig system call failed /dev/sdb2: Can't look up block dev
and sudo mount /dev/sdb2 /mnt/test -t ntfs says Failed to access volume '/dev/sdb2': No such file or directory.
I can still plug this back into my Win10 machine and it's fine.
I have dun chkdsk /f on that disk and it looks ok there.
This USB storage drive is a ~30TB RAID with a lot of data so I can't really just reformat.
Any ideas why this randomly stopped working and more importantly how to fix it without having to reformat?
Results from fdisk -l /dev/sdb
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
Disk /dev/sdb: 115.45 PiB, 129986248068418560 bytes, 253879390758630 sectors
Disk model: USB3.0 DISK00
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 6E50C089-2F38-45FD-A894-20BBFDD4B8AF
Device Start End Sectors Size Type
/dev/sdb1 34 32767 32734 16M Microsoft reserved
/dev/sdb2 32768 58598420479 58598387712 27.3T Microsoft basic data
Partition 1 does not start on physical sector boundary.
Results from sudo gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.10
Warning! Read error 5; strange behavior now likely!
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! Error 5 reading partition table for CRC check!
Warning! One or more CRCs don't match. You should repair the disk!
Main header: OK
Backup header: ERROR
Main partition table: OK
Backup partition table: ERROR
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Results from dmesg
[ 3480.558117] Buffer I/O error on dev sdb, logical block 126939695379298, async page read
[ 3480.558120] Buffer I/O error on dev sdb, logical block 126939695379299, async page read
[ 3480.914504] sd 5:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 3480.914523] sd 5:0:0:0: [sdb] tag#0 Sense Key : Illegal Request [current]
[ 3480.914532] sd 5:0:0:0: [sdb] tag#0 Add. Sense: Logical block address out of range
[ 3480.914541] sd 5:0:0:0: [sdb] tag#0 CDB: Read(16) 88 00 00 00 e6 e6 e6 e6 e6 00 00 00 00 08 00 00
[ 3480.914546] critical target error, dev sdb, sector 253879390758400 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[ 3480.916343] sd 5:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 3480.916362] sd 5:0:0:0: [sdb] tag#0 Sense Key : Illegal Request [current]
[ 3480.916375] sd 5:0:0:0: [sdb] tag#0 Add. Sense: Logical block address out of range
[ 3480.916386] sd 5:0:0:0: [sdb] tag#0 CDB: Read(16) 88 00 00 00 e6 e6 e6 e6 e6 00 00 00 00 02 00 00
[ 3480.916394] critical target error, dev sdb, sector 253879390758400 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 3480.916408] Buffer I/O error on dev sdb, logical block 126939695379200, async page read
[ 3480.918329] sd 5:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 3480.918341] sd 5:0:0:0: [sdb] tag#0 Sense Key : Illegal Request [current]
[ 3480.918348] sd 5:0:0:0: [sdb] tag#0 Add. Sense: Logical block address out of range
[ 3480.918356] sd 5:0:0:0: [sdb] tag#0 CDB: Read(16) 88 00 00 00 e6 e6 e6 e6 e6 02 00 00 00 02 00 00
[ 3480.918360] critical target error, dev sdb, sector 253879390758402 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 3480.918369] Buffer I/O error on dev sdb, logical block 126939695379201, async page read
[ 3480.920074] sd 5:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 3480.920086] sd 5:0:0:0: [sdb] tag#0 Sense Key : Illegal Request [current]
[ 3480.920094] sd 5:0:0:0: [sdb] tag#0 Add. Sense: Logical block address out of range
[ 3480.920101] sd 5:0:0:0: [sdb] tag#0 CDB: Read(16) 88 00 00 00 e6 e6 e6 e6 e6 04 00 00 00 02 00 00
[ 3480.920105] critical target error, dev sdb, sector 253879390758404 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 3480.920115] Buffer I/O error on dev sdb, logical block 126939695379202, async page read
Results from win10 sg_readcap.exe -l g: (exact same results on arch)
Read Capacity results:
Protection: prot_en=0, p_type=0, p_i_exponent=0
Logical block provisioning: lbpme=0, lbprz=0
Last LBA=58598424575 (0xda4bcffff), Number of logical blocks=58598424576
Logical block length=512 bytes
Logical blocks per physical block exponent=3 [so physical block length=4096 bytes]
Lowest aligned LBA=0
Hence:
Device size: 30002393382912 bytes, 2.86125e+07 MiB, 30002.4 GB, 30.0024 TB
sudo blkid | grep -i "microsoft"? Also tell it the fs type as ntfs is an oddballsudo mount -t ntfs /dev/sdb2 /mnt/testSee /proc/filesystems and /lib/modules/$(uname -r)/kernel/fs for a complete list of the filesystemssdbdoesn't show up at all inblkidso the grep result is empty. I already ran that mount command twice, once with type specified and once without, neither work now (when previously the typed one would work). I'm not sure what I'm looking at in those 2 directories, should there be entries forntfsin both? I don't seentfsin proc, and i see antfs3in the kernel one.dmesg/journalctl -k) after plugging in the drive. It sounds like somehow the kernel is ignoring the partition table. Can you add full output offdisk -l /dev/sdb? (Maybe also see if opening the drive withgdiskinstead give you some hint about what's wrong.)~10TB RAIDWhich mode of RAID? Is10TBthe expected RAID capacity or the size of each drive? Does the size of27.3TiB(i.e.30TB) make any sense to you? Do you mind installingsg3_utilsand add the output ofsg_readcap -l /dev/sdb?