How to find SATA controller version on Ubuntu laptop. Do I have SATA 1, 2, or 3? I, II, or III?

Try dmesg | grep SATA, this is a little faster than lspci as it will print out the kernel buffer logs from boot/after boot with the SATA speeds right there. You should see something like this:

[1.236431] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 3 Gbps 0x33 impl SATA mode

Again this is only your controller so it's not guaranteed. And it'll show your current hd

[1.577525] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) 

This is your drive's ultimate connection, i.e. SATA revision the drive is running at.


This command gives you the version exactly:

sudo smartctl -a /dev/sda | grep SATA
SATA Version is:  SATA 2.6, 3.0 Gb/s (current: 3.0 Gb/s)


lspci will tell you all the controllers and devices, take a look at your SATA controller, it should give you a model. Take that model and look up the specs for it. You will probably need elevated privileges (su/sudo) for lspci to work for you.