我知道我们可以使用mount
命令列出所有安装的设备。甚至是df
命令。
但是我们如何知道列出的设备是否是可移动的,如USB、CMROM、外部硬盘等?
对于这个问题,我们可以从如何在SUSE或RedHat上完成它开始。
谢谢!
发布于 2022-08-10 07:59:03
在进一步考虑这一点之后,确定驱动器是否可移动的方法是检查以下内容:
/sys/block/sdX/removable
设置为0
-不可移动或1
-可移动。您可以获得挂载驱动器的列表(假设表单/dev/sdX
,其中X
是a
、b
、c
等)然后循环检查设备,检查removable
文件的内容。
对于使用进程替换的bash
,可以通过while
循环遍历设备名称,删除尾随的分区数字,并且只使用唯一的设备,可以这样做:
#!/bin/bash
while read -r name; do
if [ "$(<${name/dev/sys\/block}/removable)" -eq "1" ]; then
echo "$name - removable"
else
echo "$name - non-removable"
fi
done < <(awk '/^\/dev\/sd/ {sub(/[0-9]+$/,"",$1); print $1}' /proc/mounts | uniq)
它将列出所有设备以及它们是否可移动。例如,使用插入的闪存驱动器(/dev/sdc
)和我的普通硬盘驱动器(/dev/sdb
)运行脚本,您将收到:
$ bash list-removable.sh
/dev/sdb - non-removable
/dev/sdc - removable
也许还有很多其他的方法可以做到这一点。
发布于 2022-08-10 07:07:17
你可以这样做:
for dev in /dev/disk/by-id/usb*; do mount | grep $(readlink -f ${dev}); done
这第一次运行挂载以列出已挂载的设备。然后查看/dev/disk/by- id /它将使用设备的制造id连接到设备的udev。此链接将解析到它对应的/dev/设备。它会查看这些设备的挂载输出,并将它们与当前的挂载点和fs选项一起显示在屏幕上。
*编辑包括对安装的检查
https://stackoverflow.com/questions/73300929
复制相似问题