如何配置以立即将数据记录到pendrive?

The*_*ent 13 10.10 usb-drive

如果我编辑 Pendrive 上的文件,然后只是物理删除它,则不会记录数据。我必须单击“弹出”,因此 LED 开始闪烁,并且开始记录数据。

如何更改此设置,以便在更改时立即记录数据?

更新:Ubuntu 11.10

在 Ubuntu 11.10 中,我编写了规则文件(来自@enzotib答案),并且工作正常,但是当我尝试弹出/卸载时给出以下消息:

在此处输入图片说明

(我应该为 Ubuntu 11.10 提出另一个问题吗?)

enz*_*tib 9

按照@arrange 在评论中显示的问题(和答案),让我们创建一个新文件

/etc/udev/rules.d/11-media-by-label-auto-mount.rules
Run Code Online (Sandbox Code Playgroud)

并将以下内容写入其中(请参阅/media 下的 udev::Mount;如果存在,请使用分区标签

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,sync"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,uid=1000,gid=1000,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"
Run Code Online (Sandbox Code Playgroud)

我对网站上报道的内容做了一些小的修改

  • 添加了sync选项ENV{mount_options}
  • gid=100选项修改为uid=1000,gid=1000,其中数字相对于您的 used-id 和 group-id,由id -u和返回id -g

第二个使您成为挂载分区上所有文件的所有者,因此不会出现权限问题。显然,如果有多个用户访问文件,情况就不是这样,但这可以通过其他方式处理。

对于非 Windows 文件系统,所有者和组是文件系统上的元数据,不能通过挂载选项更改。

新规则立即生效(udev使用inotify检测新的和修改过的规则文件)。

挂载的驱动器不会在文件管理器窗口中自动打开,如您所见,这很难实现,因为挂载过程由 root 拥有,并且无权访问您的图形登录会话。但是驱动器在您的桌面上,因此只需双击即可将其打开。

不幸的是,我无法让桌面右键单击卸载工作,但这不是一个大问题:有了该sync选项,您可以简单地拔下设备,udev 规则负责删除条目/proc/mounts并删除安装 -观点。