The drive that my /home
folder lives on is showing signs of failing,
and I'm trying to migrate to a new drive.
I purchased a 4TB SSD, formatted it with ext4
, mounted it as an external drive with a USB/SATA connector, and rsync
’ed my /home
folder over.
So far, so good. But when I swapped it in place of the failing drive and rebooted, my OS reported:
unable to mount local folders
structure needs cleaning
That sounds like a corrupt file system, but fsck
reported no errors. Maybe the new hardware is faulty, but I ran badblocks
on it, and it also came back with no errors. I formatted it again and tried again, and came up with the same error. Weirdly, if I log in as root
and manually mount the new /home
drive, it mounts okay, and seems to accept read/writes. However, dmesg
did show some errors for /dev/sdb
(that's the /home
drive on this system). I've copied them below, although I'm fluent enough myself to parse them.
Any ideas? For context I'm running Gentoo Linux.
[ 0.914006] sd 6:0:0:0: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)
[ 0.914052] sd 6:0:0:0: [sdb] Write Protect is off
[ 0.914074] sd 6:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 0.914117] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 0.914224] sd 6:0:0:0: [sdb] Preferred minimum I/O size 512 bytes
[ 0.915929] sdb: sdb1
[ 0.916093] sd 6:0:0:0: [sdb] Attached SCSI disk
[ 5.012731] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 5.012740] sd 6:0:0:0: [sdb] tag#0 Sense Key : Illegal Request [current]
[ 5.012747] sd 6:0:0:0: [sdb] tag#0 Add. Sense: Unaligned write command
[ 5.012753] sd 6:0:0:0: [sdb] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 08 10 00 00 00 08 00 00
[ 5.012757] I/O error, dev sdb, sector 2064 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 5.012786] sd 6:0:0:0: [sdb] tag#1 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 5.012792] sd 6:0:0:0: [sdb] tag#1 Sense Key : Illegal Request [current]
[ 5.012797] sd 6:0:0:0: [sdb] tag#1 Add. Sense: Unaligned write command
[ 5.012802] sd 6:0:0:0: [sdb] tag#1 CDB: Read(16) 88 00 00 00 00 00 00 00 08 18 00 00 00 08 00 00
[ 5.012805] I/O error, dev sdb, sector 2072 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 5.012817] sd 6:0:0:0: [sdb] tag#31 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 5.012822] sd 6:0:0:0: [sdb] tag#31 Sense Key : Illegal Request [current]
[ 5.012827] sd 6:0:0:0: [sdb] tag#31 Add. Sense: Unaligned write command
[ 5.012832] sd 6:0:0:0: [sdb] tag#31 CDB: Read(16) 88 00 00 00 00 00 00 00 08 08 00 00 00 08 00 00
[ 5.012836] I/O error, dev sdb, sector 2056 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 35.852468] sd 6:0:0:0: [sdb] tag#13 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=30s
[ 35.852476] sd 6:0:0:0: [sdb] tag#13 Sense Key : Illegal Request [current]
[ 35.852483] sd 6:0:0:0: [sdb] tag#13 Add. Sense: Unaligned write command
[ 35.852490] sd 6:0:0:0: [sdb] tag#13 CDB: Read(16) 88 00 00 00 00 00 00 00 08 28 00 00 05 40 00 00
[ 35.852494] I/O error, dev sdb, sector 2088 op 0x0:(READ) flags 0x84700 phys_seg 168 prio class 2
[ 35.852574] sd 6:0:0:0: [sdb] tag#14 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=30s
[ 35.852581] sd 6:0:0:0: [sdb] tag#14 Sense Key : Illegal Request [current]
[ 35.852586] sd 6:0:0:0: [sdb] tag#14 Add. Sense: Unaligned write command
[ 35.852591] sd 6:0:0:0: [sdb] tag#14 CDB: Read(16) 88 00 00 00 00 00 00 00 0d 68 00 00 05 40 00 00
[ 35.852595] I/O error, dev sdb, sector 3432 op 0x0:(READ) flags 0x84700 phys_seg 168 prio class 2
[ 35.852672] sd 6:0:0:0: [sdb] tag#15 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=30s
[ 35.852677] sd 6:0:0:0: [sdb] tag#15 Sense Key : Illegal Request [current]
[ 35.852682] sd 6:0:0:0: [sdb] tag#15 Add. Sense: Unaligned write command
[ 35.852687] sd 6:0:0:0: [sdb] tag#15 CDB: Read(16) 88 00 00 00 00 00 00 00 12 a8 00 00 03 f0 00 00
[ 35.852690] I/O error, dev sdb, sector 4776 op 0x0:(READ) flags 0x80700 phys_seg 126 prio class 2
[ 36.858014] EXT4-fs (sdb1): ext4_check_descriptors: Checksum for group 18880 failed (53845!=52774)
[ 36.858017] EXT4-fs (sdb1): group descriptors corrupted!
One further experiment: I tried installing another drive into the bay,
and it also wouldn't auto mount as /home
.
I could not even mount it manually after logging in as root.
As far as I can tell, there's nothing wrong with this third drive,
and I can mount it just fine via a USB/SATA adapter.
Both of the new drives are SSDs,
while the old failing drive that still mounts is a hard disk.
This SATA port is via a SATA/PCIE adapter, so I suppose the problem could be in the adapter. In that case, though, it's weird that the old hard drive still works.