/dev
位置正确。有没有办法查看dmesg
或/proc
或其他地方,找出哪个设备节点是USB驱动器。(我正在使用ArchLinux,如果有帮助的话...
/dev/sda
是第一个难点驱动器,/dev/sr0
是DVD驱动器,等等。)编辑:USB驱动器已连接到USB集线器。我翻阅
dmesg
,它说集线器已连接,并扫描了连接到它的3个设备。仍然看不到我的USB驱动器在哪里。#1 楼
最简单的方法:连接USB设备后,查看dmesg
的输出。它应该显示给您分配了什么/dev
节点。评论
dmesg可以很好地工作,但是我遇到了dmesg不显示/ dev节点的情况:[421963.864281] usb 3-6:使用xhci_hcd的新高速USB设备编号32是什么意思?如何安装此设备?设备显示在主机上...
–模数
16-4-25在5:58
实际上,我知道了。自上次重启以来,发生了内核更新,这导致了此问题。重新启动后,我的USB安装就好了。希望这可以帮助某人!
–模数
16-4-25在6:39
#2 楼
只要您正在运行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则不产生任何输出。
评论
简短:用于/ dev / disk / by-id / usb *中的devlink;做readlink -f $ {devlink};完成
–Felipe Alcacibar
2015年11月25日14:02
#3 楼
所有这些都是很好的建议,但是最快和最不冗长的方法是在终端中键入以下内容:mount
,这将给出所有已安装的列表。设备(假定已安装USB驱动器,这在现代Linux发行版中通常是这种情况)。
评论
不,它不会神奇地挂载设备。您必须使用mount / dev / id / mount / point来指定它,所以它不起作用。
– polym
2014年7月22日14:02
我的回答是针对用户的问题“是否可以通过dmesg或/ proc或其他方式查看哪个设备节点是USB驱动器。”,但无意为在Linux下安装驱动器的实用性提供指导。
–otherLongUsername
2014年7月23日14:43在
这个答案为我解决了几乎相同的问题。
–马修·布朗又名马特勋爵
2014年10月10日上午11:04
我认为自动挂载行为很大程度上取决于发行版类型。
– Jiggunjer
16年2月2日,下午2:08
我想也是df。
– Alexey
16年5月26日在16:11
#4 楼
尝试使用命令udevinfo -q all -n /dev/sda
,其中/dev/sda
是磁盘的路径。这为您提供了有关正在查看的磁盘的大量信息-有一个条目可以告诉您有关所连接的总线的信息。这当然可以使您不必通过dmesg和/或进行grep或日志。
更新
udevadm info --query=all -n /dev/sda
从至少2010年7月起[1]在Debian中,
udevinfo
被udevadm info
替换(并派生)为udevadm
几乎不建议使用并删除一些短暂的瞬态符号链接(您仍然可以在未更新的旧计算机中找到它们)。总是从[1]中可以看到:在udev 117中,引入了
udevinfo
,q4312079q和其他程序变成了兼容性符号链接。符号链接在udev 128中已弃用,并在udev 147中已永久删除。评论
在Debian中,udevinfo被重命名为udevadm。
– Steve Pomeroy
2011年8月23日14:44
在Ubuntu上,该命令似乎是“ udevadm info --query = all -n / dev / sda”
–machineghost
2011年12月13日下午6:06
我想他们在某个时候将命令重命名了-在我写答案之前(几年前),该命令在我发布它的ubuntu系统上起作用;)
– Eltariel
2011-12-15在5:08
命令仍在ubuntu,udevadm info中起作用--query = all -n / dev / ttyUSB1
– Siddharth
2013年6月4日8:43
udevadm info --query = all -n / dev / ttyUSB在Fedora中也是如此。
–slm
13-10-26在14:50
#5 楼
最简单的查看正在发生什么情况的方法就是键入(当然是root):blkid -c /dev/null
这为您提供了所有块设备的完整概述,即使未安装
评论
并非所有发行版都具有此功能。你在用哪个
–新亚历山大
2015年9月19日在17:26
这在我的Raspbian发行版上没有任何输出。
– IgorGanapolsky
16年8月8日在6:17
找不到命令:blkid
– IgorGanapolsky
16-09-28在17:13
在Ubuntu 14.04 64位上,此命令无输出。
– gbmhunter
17年4月17日在18:15
#6 楼
sudo fdisk -l
只分析结果。
评论
fdisk手册页“如果未提供任何设备,则使用/ proc / partitions(如果存在)中提到的设备。”运行fdisk可能不是一种选择...根据我所知未安装的Debian系统,我猜测某些GPT系统可能未安装不需要的软件。尽管如此,检查/ proc / partitions应该仍然是一个选项。
– TOOGAM
2015年11月10日7:33
这是唯一对我有效的选择。很抱歉,如果它对您不起作用!
–Felipe
2015年11月10日在21:52
#7 楼
在这种情况下,/dev/disk/by-*
是最简单的方法,如果出于某种原因想要使生活变得更有趣,则可以使用HAL。要列出所有使用的设备:
hal-device
要使用特定的属性(在USB存储设备上返回
/dev/sd*
):hal-get-property --udi $UDI --key block.device
还有:
hal-find-by-capability
hal-find-by-property
如果要使其更加复杂,可以相对容易地编写自己的基于HAL的自动安装程序,如果要完全自动化,则非常方便。 />
为了完整性,还提供:
lsusb -v
lshw
其中提供了一些有关USB和您的硬件的一般信息。
评论
/ dev / disk / by-id / * usb *非常有用。
–Rob
2011-12-12 18:56
/ dev / disk /按标签ftw。谢谢 :)
–三联画
2013年6月17日13:25
#8 楼
在默认的udev规则下使用ls -l /dev/disk/by-id/usb*
,它将向您显示大多数USB设备,并向您显示指向系统上其块设备名称的符号链接。 />
如果不起作用,请直接查看
/dev/disk/by-id/
。#9 楼
对于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"
评论
+1。简单明了的脚本可以自动完成任务。
– leesei
15年11月18日在14:28
#10 楼
看看/dev/disk
下的树。它按各种方案列出了磁盘及其分区(文件系统)。#11 楼
/ var / log / message,如果dmesg不再包含该信息。#12 楼
如果拔下USB驱动器并将其重新插入,您应该会看到它已从内核(dmesg)初始化#13 楼
基于来自Stormlash的出色回答,并依赖于udev来填充“ / dev / disk / by-id / usb”设备树,您可以定义谓词(Bash),如下所示: is_usb_device() {
local device_path= # such as /dev/sdc
for devlink in /dev/disk/by-id/usb*; do
if [ "$(readlink -f "$devlink")" = "$device_path" ]; then
return 0
fi
done
return 1
}
然后使用它:
if is_usb_device "/dev/sdg"; then
echo "/dev/sdg is a usb device"
else
echo "/dev/sdg is not a usb device"
fi
评论
看不到吗?也许等一下。或尝试另一个USB端口。看看'lsusb'有什么区别可能想改一下这个问题-毕竟不是所有USB设备都是磁盘。
df命令显示了它的安装位置