我是 Linux 和编程的新手。我的问题类似于此一但是我正在运行没有桌面的 Raspberry Pi 4 headless [buster lite],它似乎会自动挂载 USB 驱动器。我还没有找到一种非不稳定的方法来自动挂载新的 USB 驱动器,以便它们的路径是可预测的。这个 RPi4 有一个传感器,我希望它自动将传感器数据保存到插入它的任何拇指驱动器上。我可以定期拔下驱动器并放入一个新的,然后回家。我需要能够使用任何新的 USB 驱动器,而不仅仅是重复使用相同的几个。我正在做的其余工作是在 python 上,但这个功能可以在没有 python 的情况下单独执行。这个解决方案需要在 pi 重启后继续存在。
感谢大家的帮助。由于我是个新手,我特别希望您能解释一下我的建议。
答案1
- 编写一个脚本来填充 /dev/sdX 并挂载 usb(或进行其他检查)
- 修改 udevd 以在连接 USB 驱动器时运行脚本。
脚本可以像这样启动:
for i in $(ls /dev/sd* | awk -F '/' '{ print $3 }')
do
echo "Do stuff like: mkdir /mnt/$i"
done
您可以像这样配置 udev。使用正确的值,您将在 /dev/usb/NAMEYOUCHOOSE 看到设备
BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", RUN+="/usr/local/sbin/YOURSCRIPT"
有用的命令
udevadm monitor
插入设备。然后检查它们的属性,例如
udevadm info --path /devices/pci0000:00/0000:00:1d.7/usb1/1-4/usb_device/usbdev1.49 --attribute-walk
(您必须使用不同的值)
编写规则后,强制 udevd 重新读取它们。
udevadm control --reload-rules
重新连接您的设备。根据需要修改 /etc/fstab。
但我更喜欢简单一点的。也许你有 /dev/disk/by-label/,所以请相应地标记你的媒体并修改你的 fstab。