在典型的 GUI 文件管理器(如 PCManFM)中,我只需单击 USB 驱动器的图标即可安装该驱动器。是否有一个类似的命令可以使用它在安装驱动器之前在正确的位置(/media/USER/label)自动创建一个目录?我使用的是 Debian 9。
答案1
我认为在这种情况下最好的方法是使用 udev。这准备好了,复制粘贴解决方案:
只需使用以下内容创建文件 /etc/udev/rules.d/11-media-by-label-auto-mount.rules :
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"
创建脚本并保存后,使用以下命令重新加载 udev:
udevadm control --reload-rules
现在,当您连接 USB 存储设备时,udev 应自动在 /media 下使用设备 ID 或设备标签(如果您已指定)创建一个目录,并挂载该设备。如果断开设备连接,驱动器目录(位于 /media 中)将被自动删除。
要了解有关 udev 的更多信息,请阅读这。
答案2
优盘2
udiskctl mount -b /dev/sdXy
例子
udiskctl mount -b /dev/sdb1
挂载 1. 从 /dev/sdb 分区
尤迪卡
udisks --mount /dev/sdXy
答案3
这不是最好的解决方案,因为您在计算机上留下了一个空目录,用于存放要安装的每个设备的标签。
但是,您可以尝试这样的事情(警告:我还没有测试过):
MYDEVICE=/dev/foo
MYDEVLABEL=$(e2label $MYDEVICE)
mkdir -p /media/$USER/$MYDEVLABEL
mount $MYDEVICE /media/$USER/$MYDEVLABEL
请记住向命令添加必要的选项mount
。
答案4
即使我喜欢纯粹的 udev 答案,也有一个名为 usbmount 的工具,您可以通过以下方式安装
apt-get install usbmount
它自动挂载磁盘,并且通过其配置文件进行配置非常简单。
我根本不喜欢自动挂载,但有些客户要求它。