Como saber se um dispositivo SCSI é removível?

6

No DMESG eu vejo:

[sdb] Attached SCSI removable disk

  1. Como o Linux decide o que é removível e não removível?
  2. Existe uma maneira que eu possa procurar se um dispositivo é "removível" ou não é outro senão o log, por exemplo, somehwere em / sys ou / proc?
por Kyle Brandt 22.04.2014 / 14:33

2 respostas

7

Todos os dispositivos de bloco têm um atributo removable , entre outros atributos de dispositivo de bloco . Esses atributos podem ser lidos da userland em sysfs em /sys/block/DEVICE/ATTRIBUTE , por ex. /sys/block/sdb/removable .

Você pode consultar esse atributo a partir de uma regra do udev, com ATTR{removable}=="0" ou ATTR{removable}=="1" .

Observe que o removível (o dispositivo continua existindo, mas pode não ter mídia) não é o mesmo que hotpluggable (o dispositivo pode ir e vir). Por exemplo, as unidades de CD são removíveis, mas geralmente não são hotpluggable. As unidades flash USB são ambas, mas os discos rígidos em gabinetes externos geralmente são hotpluggable, mas não removíveis.

Se você quiser descobrir o detalhe de quando um dispositivo é considerado removível, você terá que procurar na fonte do kernel . Procure por removable - não há muitos acessos espúrios. Para dispositivos SCSI, o removable bit é lido do dispositivo em scsi_add_lun com um comando INQUÉRITO SCSI .

    
por 23.04.2014 / 04:30
2

Com um pouco de esforço, encontrei a resposta para a minha segunda pergunta:

cat /sys/block/sda/removable

    
por 22.04.2014 / 14:37