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

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

如果我编辑 U 盘上的文件,然后直接物理移除它,数据将不会被记录。我必须单击“弹出”,然后 LED 开始闪烁,数据开始被记录。

我该如何改变这一点,以便数据在改变时立即记录下来?

更新:Ubuntu 11.10

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

在此处输入图片描述

(我是否应该针对 Ubuntu 11.10 提出另一个问题?)

答案1

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

/etc/udev/rules.d/11-media-by-label-auto-mount.rules

并写入以下内容(参见udev::Mount 在 /media 下;使用分区标签(如果存在)

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"

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

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

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

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

新规则立即生效(udev用途通知检测新的和修改的规则文件)。

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

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

答案2

对于较新的 Ubuntu(> 20.04),您可以创建/编辑 /etc/udisks2/mount_options.conf 并设置:

[defaults]
defaults=noatime,sync

sudo service udisks2 restart

断开并重新连接磁盘。

这使得同步所有文件系统自动挂载并忽略创建时间(加速导航文件系统)

相关内容