dai*_*isy 24 bash administration hardware hard-disk
我如何知道是本地 HDD 还是 USB 密钥?我更喜欢一种没有root权限的方法。/dev/sdX
好的,udevadm
帮了大忙:
对于本地硬盘:
udevadm info --query=all --name=sdb | grep ID_BUS
E: ID_BUS=ata
Run Code Online (Sandbox Code Playgroud)
对于 USB 密钥:
udevadm info --query=all --name=sdc | grep ID_BUS
E: ID_BUS=usb
Run Code Online (Sandbox Code Playgroud)
Ale*_*ios 16
有几种方法可以在没有 root 权限的情况下进行判断,其中许多方法很棘手/hacky:
使用/dev/disk/by-id
:
find /dev/disk/by-id/ -lname '*sdX'
Run Code Online (Sandbox Code Playgroud)
如果它的响应类似于/dev/disk/by-id/usb-blah-blah-blah
,则它是一个 USB 磁盘。其他前缀包括ata
,dm
,memstick
,scsi
,等。
使用/dev/disk/by-path
没有显着不同:
find /dev/disk/by-path/ -lname '*sdX'
Run Code Online (Sandbox Code Playgroud)
你会得到类似的东西/dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
。这显示了通向磁盘的设备路径。在这种情况下,粗略的路径是 PCI ? USB ?盘。(注意-usb-
)。
使用 udev(我运行 Debian。我udevadm
所在的/sbin
不在我的上$PATH
——你的可能在别处,在你的 上或下$PATH
):
/sbin/udevadm info --query=all --name=sdX | grep ID_BUS
Run Code Online (Sandbox Code Playgroud)
您将获得设备所在的总线类型。删除 以| grep ID_BUS
获取完整的信息列表(您可能需要添加|less
)。
如果您已经lshw
安装,惠更斯的回答也可能有效:
lshw -class disk -class storage | less
Run Code Online (Sandbox Code Playgroud)
并查看磁盘的输出。在 中less
,尝试/sdX 并查看前面的几行bus info
——第一行只会说scsi@…
,但前几行会更有启发性。但是,您确实应该以超级用户身份运行它,因此它可能不合适。(症状:在我尝试过的笔记本电脑上,它列出了 SATA 磁盘,但没有sudo
列出USB 磁盘 — 运行时同时列出了两者)
还有其他一些,或多或少比这些更直接。
don*_*sti 11
你可以使用lsblk
:
lsblk -do 名称,tran
NAME TRAN
sda sata
sdb sata
sdd usb
Run Code Online (Sandbox Code Playgroud)
where -d
or--nodeps
表示不打印 slaves 和-o name,tran
or--output name,tran
表示仅列出设备名称和设备传输类型。添加rm
到输出列列表以查看哪些设备是可移动的(1
如果true
):
lsblk --nodeps --output NAME,TRAN,RM
NAME TRAN RM
sda sata 0
sdb sata 0
sdd usb 1
Run Code Online (Sandbox Code Playgroud)
Huy*_*ens 10
我知道一个解决方案,但遗憾的是,它需要 root 权限。无论如何,您可能仍然会发现它很有用:
sudo lshw -class disk -class storage
Run Code Online (Sandbox Code Playgroud)
对于每个设备,它将打印逻辑名称(例如,/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
[...]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25108 次 |
最近记录: |