I remember when USB2 came out and similar mischief ensued. All the hardware manufacturers got together and pushed the standards body to re-brand USB 1.1 hardware as USB 2.0 (full-speed vs. high-speed). It allowed hardware retailers to empty their shelves, while consumers thought they were getting the latest technology.
Same thing exists for USB3. Every time a new version is released, all cables and products suddenly support that revision. They just don't have any new features.
Not to mention that I've _never_ had a cable identify what it is capable of. Thus USB is a shitshow of crapiness.
I recently upgraded the NVME SSD in my machine. The motherboard only has a single NVME compatable M.2 port, so I bought a USB 3.1 enclosure [0] to put the old drive in while I cloned it to the new drive. The enclosure has a USB type-C connector so I also had to use a USB 3.1 A-to-C adapter [1] to connect it to my motherboard's [2] USB 3.1 type-A port. Anyway something somewhere went wrong and it took over 5 hours to copy 750 GB instead of the expected 10 minutes. Absolute shitshow.
I recently had nearly the opposite experience. I was upgrading a Linux server to a new motherboard with a NVMe SSD from and old one with a SATA3 SSD attached. To see how things would go, I imaged the old SATA3 SSD onto a USB3/NVMe adapter (https://www.amazon.com/gp/product/B07Z8Y85GL) and tried booting the new system from USB. It actually came up working, so next I figured I would need to remove the NVMe SSD from the USB3 adapter and install it in the motherboard slot, boot the system from a different USB drive, and then once again image the NVMe SSD from the old SATA3 drive. (I had read that the USB3/NVMe adapter accessed the SSD in a way that was incompatible with the motherboard.) So I installed the NVMe SSD in the new motherboard and powered it up just for giggles. To my great surprise, it booted normally and everything was fine! (Oh, and my SSD access speeds went from 500MB/s on the old system to 2GB/s on the new one.)
Why wouldn't it work? Bulk storage is bulk storage. As for booting from that... Linux has all the required drivers in the kernel, at worst (booting from radically different hardware) select a fallback initramfs with more drivers. If you did a bit-by-bit copy of your drive, partitions should have come out unmodified at the other end, including GUIDs and the EFI label on the EFI partition (if using EFI), or the bootloader in the MBR if using that.
Parent is talking about speed. There are different things in M.2 ports (as this is the form factor): SATA and NVMe, PCIe AHCI[1]. There was probably a slight incompatibility and a fallback to some other mode there.
I've definitely had problems with external storage on Linux machines
> Why wouldn't it work? Bulk storage is bulk storage
You would think so, but anything using UAS is a complete mess and you can't be sure it'll work. I can only assume devices implemented the convenient parts of the spec and fail randomly.
Happened often enough the kernel flag for the USB quirk to disable UAS was stickied on the Raspberry Pi forums when USB boot was new.
https://arstechnica.com/uncategorized/2003/10/2927-2/