我想挂载一个 USB 驱动器,其中两个,我需要两个不同的挂载点。不幸的是,Linux 内核进行了名称更改,我无法确定哪个/dev
位置是正确的。有没有一种方式来看待通过dmesg
或/proc
或其他地方,以找出哪些设备节点是一个USB驱动器。
(如果有帮助的话,我正在使用 ArchLinux……/dev/sda
是第一个硬盘驱动器,/dev/sr0
是 DVD 驱动器等)
编辑:USB 驱动器连接到 USB 集线器。我查看了dmesg
它,它说集线器已连接并扫描了连接到它的 3 个设备。仍然看不到我的 USB 驱动器在哪里。
zig*_*don 89
最简单的方法:查看dmesg
连接USB设备后的输出。它应该显示/dev
分配给它的节点。
Ano*_*ame 59
所有这些都是很好的建议,但最快和最不冗长的方法是在终端中输入以下内容:
mount
Run Code Online (Sandbox Code Playgroud)
这将给出所有已安装设备的列表(假设 USB 驱动器已安装,现代 Linux 发行版通常就是这种情况)。
小智 58
只要您正在运行udev,您就可以通过引用 /dev/disk/by-id/usb- manufacturername _ serialnumber轻松完成此操作。这些显示为符号链接,您可以在 fstab 中直接引用它们,也可以使用readlink -e取消引用以确定关联的块设备。
这是一个真实世界的例子。在我的机器上,我连接了 3 个 USB 硬盘驱动器。这些每个都以唯一的序列号显示在 /dev/disk/by-id 中(尽管它们共享一个共同的制造商字符串)。我已经为这三个唯一条目中的每一个创建了符号链接,现在可以通过运行readlink -e linkname快速确定哪个驱动器是哪个(以及哪个设备与每个驱动器关联)。例如,在我的机器上运行readlink -e /root/disk2当前显示“ /dev/sde ”,而readlink -e /root/disk3 不产生任何输出。
Elt*_*iel 26
试试这个命令udevinfo -q all -n /dev/sda
,/dev/sda
你的磁盘路径在哪里。这为您提供了有关您正在查看的磁盘的大量信息 - 有一个条目告诉您它所连接的总线。
这当然可以使您不必通过 dmesg 和/或日志进行 grep。
更新
udevadm info --query=all -n /dev/sda
Run Code Online (Sandbox Code Playgroud)
至少从 2010 年 7 月开始,[ 1 ] udevinfo
在 Debian(和派生)中被udevadm info
替换为一个小的瞬态,符号链接很快被弃用和删除(您仍然可以在旧的未更新的机器中找到它们)。总是从 [ 1 ] 我们可以读到:
在 udev 117 中,
udevadm
引入了和udevinfo
其他程序变成了兼容性符号链接。符号链接在udev 128中已弃用,并在udev 147中永久删除。
小智 23
查看正在发生的事情的最简单方法就是输入(当然是以 root 身份):
blkid -c /dev/null
Run Code Online (Sandbox Code Playgroud)
即使未安装,这也会为您提供有关所有块设备的完整概述
Gru*_*bel 11
/dev/disk/by-*
在这种情况下是最简单的方法,如果出于某种原因你想让生活更有趣,你可以使用 HAL。
要列出您使用的所有设备:
hal-device
Run Code Online (Sandbox Code Playgroud)
要获取您使用的特定属性(这将/dev/sd*
在 USB 存储设备上返回):
hal-get-property --udi $UDI --key block.device
Run Code Online (Sandbox Code Playgroud)
还有:
hal-find-by-capability
hal-find-by-property
Run Code Online (Sandbox Code Playgroud)
如果你想让它变得更复杂,你可以相对容易地自己编写一个基于 HAL 的自动挂载器,如果你想完全自动化,它会非常方便。
为了完整起见,还有:
lsusb -v
lshw
Run Code Online (Sandbox Code Playgroud)
它提供了一些有关 USB 和您的硬件的一般信息。
用
ls -l /dev/disk/by-id/usb*
Run Code Online (Sandbox Code Playgroud)
在默认的 udev 规则下,它会显示大多数 USB 设备,并且会显示系统上它们的块设备名称的符号链接。
如果这不起作用,请/dev/disk/by-id/
直接查看。
小智 7
对于 USB 设备,你可以简单地做
REMOVABLE_DRIVES=""
for _device in /sys/block/*/device; do
if echo $(readlink -f "$_device")|egrep -q "usb"; then
_disk=$(echo "$_device" | cut -f4 -d/)
REMOVABLE_DRIVES="$REMOVABLE_DRIVES $_disk"
fi
done
echo Removable drives found: "$REMOVABLE_DRIVES"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
493708 次 |
最近记录: |