web-dev-qa-db-ja.com

ペンドライブにデータを即座に記録するように設定するにはどうすればよいですか?

ペンドライブのファイルを編集してから物理的に削除するだけでは、データは記録されません。 「取り出し」をクリックする必要があるため、LEDが点滅し始め、データの記録が開始されます。

データを変更するとすぐに記録されるように、どうすれば変更できますか?

更新:Ubuntu 11.1

Ubuntu 11.10では、ルールファイルを作成し(@ enzotib回答)、動作しますが、イジェクト/アンマウントしようとすると次のメッセージが表示されます:

enter image description here

(Ubuntu 11.10について別の質問を開始すべきですか?)

12
Tom Brito

@arrangeがコメントに表示する question(and answer) に続いて、新しいファイルを作成しましょう

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

次の内容を書き込みます( dev :: Mount in/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"

私はウェブサイトで報告されたものに関していくつかの小さな修正を行いました

  • ENV{mount_options}syncオプションを追加しました
  • gid=100オプションをuid=1000,gid=1000に変更しました。番号は、id -uおよびid -gによって返される、used-idおよびgroup-idに関連しています。

2番目の方法では、マウントされたパーティション上のすべてのファイルの所有者になるため、権限の問題は発生しません。明らかに、複数のユーザーがファイルにアクセスする必要がある場合はそうではありませんが、これは他の方法で処理できます。

Windows以外のファイルシステムの場合、所有者とグループはファイルシステムのメタデータであり、マウントオプションで変更することはできません。

新しいルールはすぐにアクティブになります(udevinotifyを使用して新しいと変更されたルールファイル)。

ご覧のように、マウントされたドライブはファイルマネージャウィンドウで自動的に開かれません。これは、マウントプロセスがルートによって所有され、グラフィカルログインセッションにアクセスできないため、実現が困難です。ただし、ドライブはデスクトップ上にあるため、単純なダブルクリックで開きます。

残念ながら、デスクトップの右クリックアンマウントを機能させることはできませんが、これは大きな問題ではありません:syncオプションを設定しておくと、デバイスを単に取り外すことができ、udevルールがエントリの削除を処理します/proc/mountsおよびマウントポイントの削除。

8
enzotib