DMESGでは次のようになります。
[sdb] Attached SCSI removable disk
すべてのブロックデバイスには、とりわけremovable
属性があります ブロックデバイス属性 。これらの属性は、 sysfs at /sys/block/DEVICE/ATTRIBUTE
のユーザーランドから読み取ることができます。 /sys/block/sdb/removable
。
この属性は、ATTR{removable}=="0"
またはATTR{removable}=="1"
を使用してudevルールからクエリできます。
リムーバブル(デバイスは存在し続けますが、メディアがない場合があります)は、ホットプラグ可能(デバイスは出入りできます)と同じではないことに注意してください。たとえば、CDドライブは取り外し可能ですが、多くの場合、ホットプラグ可能ではありません。 USBフラッシュドライブは両方ですが、外部エンクロージャーのハードディスクは通常、ホットプラグ可能ですが、取り外しはできません。
デバイスがリムーバブルと見なされるタイミングの要点を知りたい場合は、 カーネルソース を掘り下げる必要があります。 removable
を検索します—偽のヒットはそれほど多くありません。 SCSIデバイスの場合、removable
ビットは scsi_add_lun
のデバイスから SCSI INQUIRYコマンド で読み取られます。
少しの努力で、2番目の質問に対する答えを見つけました。
cat /sys/block/sda/removable