列出Linux上未使用的SATA端口


18

我有一台运行Linux(特别是CentOS 6.3)的物理机,我想知道当前有多少个SATA端口未使用(即未插入任何东西)。当然,我可以只打开机器,但可以说我没有物理访问权限。有没有我可以用来显示哪些SATA端口未使用的命令?

我已经知道该lshw命令,但据我所知,它仅列出使用的SATA端口,而不列出可用的SATA端口。

Answers:


5

有没有我可以用来显示哪些SATA端口未使用的命令?

不,但是您可以相反。您可以列出正在使用的端口。然后(在手册中)查找主板上有多少个端口,减去已经使用的端口数,并获得剩余端口数。

假设每个SATA连接器连接一个SATA驱动器(例如,没有端口倍增器)。


有几种方法可以做到这一点。

如果所有SATA控制器都加载了驱动程序(相当正常),那么我发现fdisk -l列出所有磁盘是最简单的方法。

如果您不再拥有fdisk(将它替换为更现代的变体,例如gpart),则可以阅读引导日志。一些谷歌搜索表明CentOS可以通过dmesg获得此功能,但是您也可以直接读取日志文件。可能在/var/log/dmesg.log、/var/run/dmesg.boot或/ var / log / boot中。(对于不使用CentOS的人,请保持一点点通用性)。

然后有lspci。该列表列出了所有PCI和PCI-e设备,包括SATA控制器。添加-v以获得更易读的输出。

或使用dmidecode。这会询问BIOS信息。如果此命令的输出似乎不堪重负,请使用该-t NR选项限制它。


结合lspci相关的主板规格即可获得我所需的信息。谢谢。
coledot

21

已经三年了,但是如果有人通过Google来了,那就去了:如果启用了EPEL,然后安装lsscsi,它主要提供有关已连接设备的信息,但是您需要使用-H参数:

--hosts | -H列出scsi主机而不是scsi设备

与其他输出模式进行比较,您将得出以下区别:

root@server1:~# lsscsi -H
[0]    ata_piix  
[1]    ata_piix  
[2]    ata_piix  
[3]    ata_piix  
[4]    usb-storage
root@server1:~# lsscsi -g
[0:0:0:0]    disk    ATA      WDC WD2004FBYZ-0 RR03  /dev/sda   /dev/sg0
[0:0:1:0]    disk    ATA      WDC WD2004FBYZ-0 RR04  /dev/sdb   /dev/sg1
[1:0:0:0]    disk    ATA      WDC WD2004FBYZ-0 RR03  /dev/sdc   /dev/sg2
[4:0:0:0]    disk    Seagate  Backup+  Desk    0342  /dev/sdd   /dev/sg3

更新:无需安装任何东西,无需理会:

dmesg | grep 'SATA link down'

将显示未使用的端口。


谢谢,非常有用。它也可以在Ubuntu上运行(lsscsi默认存储库中至少包含16.04 LTS版本)。
gerlos
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.