Mount
U盤自動掛載(無頭電腦)
對於SamplerBox項目,到目前為止,我一直在使用
/dev/sda1 /media auto nofail 0 0
USB 快閃記憶體驅動器在插入無頭電腦時自動掛載,另請參閱Auto-mount and auto-remount with /etc/fstab。但這似乎不太可靠,例如,當 USB 快閃記憶體驅動器被移除,然後重新插入時。Debian 中有
/dev/sd*``/media/
哪些輕量級且易於配置的解決方案可以自動掛載每個設備?
- 如果插入了第二個快閃記憶體驅動器,請忽略或安裝到另一個文件夾
/media2/
- 如果驅動器被移除(即使沒有正確的
umount
),然後在幾分鐘後重新插入,它應該再次安裝案例是一個無頭設備,最終使用者可以在其上插入 USB 快閃記憶體驅動器,並且它應該始終被辨識(無論他們是否在未經軟體許可的情況下移除了以前的 USB 快閃記憶體驅動器)。
根據@FelixJN 的評論,我根據我的需要稍微修改了 Andrea Fortuna 的這個優秀指南,這裡是解決方案:
- 創建一個
/root/usb-mount.sh
包含此文件的文件(並添加 +x 權限):#!/bin/bash ACTION=$1 DEVBASE=$2 DEVICE="/dev/${DEVBASE}" MOUNT_POINT=$(/bin/mount | /bin/grep ${DEVICE} | /usr/bin/awk '{ print $3 }') # See if this drive is already mounted case "${ACTION}" in add) if [[ -n ${MOUNT_POINT} ]]; then exit 1; fi # Already mounted, exit eval $(/sbin/blkid -o udev ${DEVICE}) # Get info for this drive: $ID_FS_LABEL, $ID_FS_UUID, and $ID_FS_TYPE OPTS="rw,relatime" # Global mount options if [[ ${ID_FS_TYPE} == "vfat" ]]; then OPTS+=",users,gid=100,umask=000,shortname=mixed,utf8=1,flush"; fi # File system type specific mount options if ! /bin/mount -o ${OPTS} ${DEVICE} /media/; then exit 1; fi # Error during mount process: cleanup mountpoint ;; remove) if [[ -n ${MOUNT_POINT} ]]; then /bin/umount -l ${DEVICE}; fi ;; esac
- 創建一個包含以下內容的文件
/etc/systemd/system/usb-mount@.service
:[Unit] Description=Mount USB Drive on %i [Service] Type=oneshot RemainAfterExit=true ExecStart=/root/usb-mount.sh add %i ExecStop=/root/usb-mount.sh remove %i
- 創建一個包含以下內容的文件
/etc/udev/rules.d/99-local.rules
:KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/bin/systemctl start usb-mount@%k.service" KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service"
- 重啟規則:
udevadm control --reload-rules systemctl daemon-reload
- 插入 USB 快閃記憶體驅動器。它應該安裝到
/media/
.