Возможный дубликат:
Прилагается внешние и внутренние устройства к системе в Linux
Как я могу найти через терминал что, какие устройства являются внешними и которые являются внутренними.
Внешним я имею в виду устройства, присоединенные к USB-порту. Например, Карта памяти, Портативный USB HardDrive и т.д.
Внутренним я имею в виду устройства, присоединенные внутренне. Например, Жесткий диск SATA и т.д.
Спасибо
Можно использовать lsusb
перечислять USB-устройства, lspci
перечислять устройства PCI, и lspcmcia
перечислять устройства PCMCIA.
Если Вы только заботитесь об устройствах типа диска, можно также изучить /dev/disk/by-id
. Название ссылки устройства запускается с типа соединения (usb, ata, scsi-sata, и т.д.)
Это не в целом возможно - много машин имеет внутренние USB-устройства (вещи как интерфейсы Bluetooth, и считыватели отпечатков пальцев часто реализуются таким образом), и возможно иметь внешние устройства SATA (ноутбук, который я использую, теперь имеет eSATA порт). Устройства SCSI могут также быть внутренними или внешними.
Блочные устройства имеют "съемный" атрибут. В то время как это точно не соответствует внутренний/внешний (например, внутренний CD-ROM является "съемным", и диск eSATA может быть неправильно классифицирован), это может быть достаточно близко в Ваших целях.
$ cd /sys/block/ $ grep ^ */removable dm-0/removable:0 dm-1/removable:0 dm-2/removable:0 dm-3/removable:0 dm-4/removable:0 dm-5/removable:0 dm-6/removable:0 dm-7/removable:0 dm-8/removable:0 fd0/removable:1 hdc/removable:1 loop0/removable:0 loop1/removable:0 loop2/removable:0 loop3/removable:0 loop4/removable:0 loop5/removable:0 loop6/removable:0 loop7/removable:0 md0/removable:0 md1/removable:0 sda/removable:0 sdb/removable:0 sdc/removable:0 sdd/removable:0 sde/removable:1 sdf/removable:1 sdg/removable:1 sdh/removable:1 sdi/removable:1
вот небольшой пример сценария с помощью HAL, если у Вас есть он.
store=$(hal-find-by-capability --capability "storage")
for s in $store
do
r=$(hal-get-property --udi ${s} --key storage.removable)
if [ $r = "true" ]; then
hal-get-property --udi ${s} --key info.product
prod=$(hal-get-property --udi ${s} --key info.product)
type=$(hal-get-property --udi ${s} --key storage.drive_type)
device=$(hal-get-property --udi ${s} --key block.device)
mdir=$(awk -vdev="$device" '$0~dev{print $2}' /etc/mtab)
echo Product: ${prod}
echo Type: ${type}
echo Mounted on: ${mdir}
fi
done
vol=$(hal-find-by-capability --capability "volume")
for v in $vol
do
mountpt=$(hal-get-property --udi ${v} --key volume.mount_point)
blk=$( hal-get-property --udi ${v} --key block.device )
echo "mount point: $mountpt"
echo "device: $blk"
done
Использовать hal-device
управляйте для показа устройств HAL.