ローカルHDDなのかUSBフラッシュドライブなのか、どうすればわかりますか?私はroot権限がない方法を好みます。/dev/sdX
いいですね。udevadm
多くの助けになります。
ローカルハードドライブの場合:
udevadm info --query=all --name=sdb | grep ID_BUS
E: ID_BUS=ata
USBキーの場合:
udevadm info --query=all --name=sdc | grep ID_BUS
E: ID_BUS=usb
答え1
ルートなしで知ることができるいくつかの方法があり、その多くは難しいです。
使用/dev/disk/by-id
:
find /dev/disk/by-id/ -lname '*sdX'
このように応答すると、/dev/disk/by-id/usb-blah-blah-blah
USBディスクです。他の接頭辞にはata
、、、dm
などがありますmemstick
。scsi
以下を使用すると/dev/disk/by-path
大きな違いはありません。
find /dev/disk/by-path/ -lname '*sdX'
あなたはこのようなものを得るでしょう/dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
。ディスクへのデバイスパスが表示されます。この場合、おおよそのパスはPCI→USB→Diskです。 (知っている-usb-
)。
udevadm
udevの使用/sbin
$PATH
$PATH
/sbin/udevadm info --query=all --name=sdX | grep ID_BUS
デバイスがあるバスの種類を確認できます。完全な情報のリストを取得するには、削除してください| grep ID_BUS
(追加する必要があるかもしれません|less
)。
すでにインストールされている場合は、lshw
Huygensの答え可能また働きます:
lshw -class disk -class storage | less
そしてディスクの出力を見る。でsdXをless
試して/、最初のbus info
数行を見てください。最初の行は言葉だけですが、scsi@…
最初の数行はより多くを明らかにします。しかし、あなたはしなければならないスーパーユーザーとして実行すると適切ではない可能性があります。 (症状:お使いのノートパソコンではSATAディスクがリストされていますが、USBディスクはリストされていません。実行時に両方がリストされています。sudo
)
これよりもやや直接的な他のものがあります。
答え2
lsblk
レポートTRAN
(デバイス転送タイプ)が利用可能です。
lsblk -do name,tran
NAME TRAN
sda sata
sdb sata
sdd usb
-d
または、は--nodeps
スレーブデバイスを印刷しないことを意味-o name,tran
し、--output name,tran
デバイス名とデバイス転送タイプのみを一覧表示することを意味します。rm
取り外し可能なデバイスを確認するには、出力列のリストに追加します(1
該当する場合true
)。
lsblk --nodeps --output NAME,TRAN,RM
NAME TRAN RM
sda sata 0
sdb sata 0
sdd usb 1
または-n
ヘッダーを削除します。たとえば、特定のドライブの転送タイプのみを印刷します。
lsblk -ndo tran /dev/sdb
sata
最新バージョンlsblk
(2.27
および最新バージョン)はJSON
出力をサポートしているため、次のこともできます。
lsblk -Jdo name,tran | jq -r '.blockdevices[] | select(.tran=="usb") | .name'
USB
バスに接続されたブロックデバイスのみがリストされます。
答え3
解決策を知っていますが、残念ながらルートアクセスが必要です。それにもかかわらず、まだ役に立つかもしれません。
sudo lshw -class disk -class storage
各デバイスの論理名(例/dev/sda
:)とバス情報(USBデバイスの場合は「usb @ 1:2」)を印刷します。
出力例:
[...]
*-storage
description: SATA controller
physical id: d
bus info: pci@0000:00:0d.0
configuration: driver=ahci latency=64
[...]
*-disk:0
description: ATA Disk
physical id: 0
bus info: scsi@2:0.0.0
logical name: /dev/sda
[...]
*-scsi
physical id: 3
bus info: usb@1:2
configuration: driver=usb-storage
*-disk
description: SCSI Disk
physical id: 0.0.0
bus info: scsi@6:0.0.0
logical name: /dev/sdc
[...]
答え4
値を読んでください/sys/block/sdX/removable
。
たとえば、
$ cat /sys/block/sda/removable
0
$ cat /sys/block/sdc/removable
1
/dev/sdc
USBキーです(SDカードまたはその他のリムーバブルメディアの場合があります)。