Greetings, happy new year,
I have a 3TB (2.7 TiB) drive attached via an Initio USB-to-SATA bridge
to a server that has been running mainline kernel 6.6. As the next LTS
kernel is now out, 6.12, I upgraded; here's how it went:
* Booting into 6.6, drive shows normally as 3TB.
* Rebooting into 6.12, drive now shows as 2TB.
* Rebooting back into 6.6, drive continues to show as 2TB.
* Yank USB cable and re-plug, drive once again shows as 3TB.
As the errant drive size = 512 byte sectors * 2^32, it appears as though
the USB-to-SATA initialization code in the more recent kernel is putting
the adapter into some sort of 32-bit mode. Resetting it via a
disconnected cable (or power cycling) is required to get the normal
behavior back.
The USB-to-SATA adapter lists itself (lsusb) as:
ID 13fd:1e40 Initio Corporation INIC-1610P SATA bridge
It comes bundled inside a "Vantec NexStar CX" external drive enclosure.
There are no error messages in the dmesg output as the kernel boots.
The output is the same between 6.6 and 6.12, except for the capacity
reported, and the failure to properly read the GPT partition table under
the truncated disk size.
Anybody have any suggestions for something to try? An hdparm setting
perhaps? I could always bisect, but that would take awhile as the
kernel versions are considerably distant.
Kris