/dev/sdXがUSBまたはHDDに接続されているかどうかはどうすればわかりますか?

/dev/sdXがUSBまたはHDDに接続されているかどうかはどうすればわかりますか?

ローカル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-blahUSBディスクです。他の接頭辞にはata、、、dmなどがありますmemstickscsi

以下を使用すると/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-)。

udevadmudevの使用/sbin$PATH$PATH

/sbin/udevadm info --query=all --name=sdX | grep ID_BUS

デバイスがあるバスの種類を確認できます。完全な情報のリストを取得するには、削除してください| grep ID_BUS(追加する必要があるかもしれません|less)。

すでにインストールされている場合は、lshwHuygensの答え可能また働きます:

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

最新バージョンlsblk2.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/sdcUSBキーです(SDカードまたはその他のリムーバブルメディアの場合があります)。

関連情報