列出 Linux 上未使用的 SATA 端口

列出 Linux 上未使用的 SATA 端口

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

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

答案1

是否有一个命令可以用来显示哪些 SATA 端口未使用?

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

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


有多种方法可以实现此目的。

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

如果你不再使用 fdisk(它已被更现代的变体(如 gpart)取代),那么你可以阅读启动日志。谷歌搜索显示 CentOS 可以通过以下方式获得它消息,但您也可以直接读取日志文件。可能位于 /var/log/dmesg.log、/var/run/dmesg.boot 或 /var/log/boot 中。(对于不使用 CentOS 的人来说,这有点通用)。

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

或者使用dmidecode。这会向 BIOS 询问信息。如果此命令的输出看起来太多,请使用选项限制它-t NR

答案2

已经三年了,但如果有人通过谷歌来找我,那么请这样做:如果你启用了 EPEL,那么请安装安全接口,它主要提供有关连接设备的信息,但它的 -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'

将显示未使用的端口。

相关内容