假设在一台linux机器上同时存在SATA和USB设备,并且如果它们全部检测正常,您如何知道特定设备(sda1 / sdb1)是USB设备还是SATA设备? 注意:设备需要手动安装。 注:dmesg已被清除。 我们不能使用/ var / log / messages来清除。
问题是:有没有其他的方法,从/ proc或其他命令我们知道特定设备(sda1 / sdb1)是SATA或USB?
谢谢!
您可以从/sys
虚拟文件系统获取该信息。
运行find /sys -name \*sd[ab]\*
。 我站的一些线路是:
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/host69/target69:0:0/69:0:0:0/block/sdb /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
sdb中有“usb”,sda没有,所以USB驱动是sdb。
另一个你可以得到的信息是从
cat /sys/class/block/sda/removable cat /sys/class/block/sdb/removable
文件。 如果文件内容为0,则设备不可移动,因此它不能是外部USB驱动器。 一些SATA驱动器报告自己可移动,所以它可能不是确定的。