I have filled up a drive and I am thinking of buying another, but I do not know if there is a free SATA port on the system (there are 1x SSD boot, 2x 2TB in a RAID 1 and 2x 8TB installed and I think the system had 5 ports).

I'm a few hundred kilometers away so I can't physically get to it. Is there a way to tell if there is a free SATA port?

System is running Ubuntu with Kodi and I have SSH access.

(I've moved some files - but obviously I still need to do something)

xxxxx@XXXX:~$ df
Filesystem      1K-blocks       Used  Available Use% Mounted on
udev              3891552          0    3891552   0% /dev
tmpfs              782448      11076     771372   2% /run
/dev/sdd1       107339792   14089224   87774884  14% /
tmpfs             3912224        196    3912028   1% /dev/shm
tmpfs                5120          4       5116   1% /run/lock
tmpfs             3912224          0    3912224   0% /sys/fs/cgroup
/dev/md127p1   3845448720  425741372 3224346684  12% /media/shared
/dev/sda1      7752326436 7245791420  115817372  99% /media/shared/series
/dev/sdc1      7752326436 4672850844 2688757948  64% /media/shared/movies
cgmfs                 100          0        100   0% /run/cgmanager/fs
tmpfs              782448         88     782360   1% /run/user/1000

You should refer to the system/motherboard manual on how many ports your system has, then count how many of those ports are in use.

You should be able to determine the motherboard/system model with dmidecode (for example dmidecode --string system-product-name). When you know the exact model, check from the manual how many ports your system has.

Compare this to how many disks your currently have installed. Depending on your setup, determining it using software might be also problematic as explained in answers for "How do I find out what hard disks are in the system?"

Also remember to check if your system has any additional disk controllers. They should show up in lspci output.

  • probably correct except almost every string is "To Be Filled By O.E.M" except sudo dmidecode --string baseboard-manufacturer ASRock sudo dmidecode --string baseboard-product-name H87M
    – Ross
    Dec 1 '17 at 5:39
  • Those O.E.M fields don't contain any actual data about the live system, they are just fields that the system board company can and should fill out, but often don't. So those wouldn't matter in this case, what you're interested in is the actually live real system data.
    – Lizardx
    Dec 16 '17 at 19:11

"baseboard-manufacturer" and "baseboard-product-name" dmidecode strings are usually excellent clues for self-built systems. On brand-name pre-built systems, replace "baseboard" with "system".

So you got ASRock as the manufacturer and "H87M" as product name.

Googling for "asrock H87M" gave me this as the first hit: http://asrock.com/mb/Intel/H87M/

By viewing the 2nd available motherboard image on that page, I count 6 SATA ports on that motherboard, numbered from SATA_0 to SATA_5.

lsblk and/or lsscsi commands might be more helpful in listing the physical disks connected to the motherboard.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.