web-dev-qa-db-ja.com

USBディスクの自動マウント(仕組み)

背景:USBディスクを読み取り専用としてマウントしようとしていますが、ディスクを接続すると、ubuntuインストールでrwがマウントされます。

ディスクを手動でマウント解除し、umountおよびmountコマンドを使用して読み取り専用として手動で再マウントできますが、これは面白くありません。誰かが典型的なLinuxシステムで正確にusbマウントがどのように自動的に行われるか(udev?歴史的背景もいいです)について簡単な説明を教えてもらえますか?

ありがとう。

編集:まったく役立つ場合は、gnomeを使用しています。
Edit2:急いで、もう少し情報を提供するのを忘れました。これは、「mount」の出力からディスクがどのように見えるかです。

/dev/sdb1 on /media/LaCie type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

Edit3:これも独自の方法で関係があるかもしれません。マウント出力には、次のものもあります。

gvfs-Fuse-daemon on /home/fletcher/.gvfs type Fuse.gvfs-Fuse-daemon (rw,nosuid,nodev,user=fletcher)  

これは上記のfuseblkマウントに関連しているのではないかと思いましたが、私が知ったのはこれです。

GvfsはGnome仮想ファイルシステムです。これは、既存のカーネルvfsの上に構築された仮想ファイルシステムです。 gvfsはGIOライブラリ(VFS API)を使用して、ファイル、デバイス、リモートネットワークの場所などにアクセスします。この場合、上記( 'gvfs-Fuse-daemon')のgvfsはFuseを使用してファイル/場所/デバイスをマウントしています。これは、Nautilusでリモートネットワーク接続をマウントすると、基本的に何が起こるかです。 Fuseを使用して.gvfsディレクトリの場所(内部?)をマウントし、次にgnome仮想ファイルシステムレイヤーと通信して新しいマウントと通信します。

基本的にこの構造により、ユーザーは新しい場所を動的にマウントし、nautilusを介してそれらと対話することができます。

参考までに:Fuseはユーザースペースファイルシステムであり、別名、ユーザーがrootでない場合でもマウントを実行できます)

それで、それはどこに私を残しますか? LaCieディスクは、fuseblkタイプでマウントされています。これはFuseでマウントされた単なるブロックデバイスです。そのため、一部のデーモンは、ドライブが接続されたときにドライブを自動検出し、次に進み、Fuseを実行してブロックデバイスをマウントしました。したがって、これはどのデーモンであり、どのように構成されているか(私の推測では、内部のgnomeの問題です)が最も重要な質問です。二番目の質問は、システムが新しく挿入されたUSBディスクをどのように自動的に検出したかですが、これは少し脇に置いて、はるかに低いレベルだと思います(read:udev?)。

リンク:

12
fthinker

私は自分のコンピュータでこれをやろうとしました、そしてそれは仕事です:)

まず、デバイスの名前を取得します。

ls -l /proc/disk/by-id/

私の場合、それは/ proc/disk/by-id/usb-09a6_8001です

この行を/ etc/fstabに追加しました:

/dev/disk/by-id/usb-09a6_8001   /media/macle ext2 ro,users 0 2

そして、それは機能しています。usbkeyを差し込むと、roにマウントされ、ユーザーが所有します。

3
profy

最近のデフォルトの解決策は、私が知る限り udiskdbus api および commandline interface を提供するデーモンです。複数の disksラッパーとオートマウンターが利用可能です。

通常、udisk自体は構成されません。指示されたとおりに機能するため、Gnomeを調べる必要があります。たぶん、Gnome Disk Utilityを使用すると、マウントフラグ自体を変更または変更できます。

2
Ulrich Dangel

Ulrich Dangelが言ったように、最近ではudiskがリファレンスになるはずです。どのように通知されるかはまだわかりません(udev-> dbus-> udisks?)が、手動で使用して、必要なオプションでデバイスをマウントできます。

Udisksはユーザーがボリュームで何ができるかを確認するためにpolkitに話しかけます。私はここで推測していますが、名前付きディスク/デバイスのプロパティを設定する場所を見つけることができれば、それは機能するはずです。

Udisksctlを使用すると、ユーザーは次のような必要なオプションを使用してデバイスをマウントできるはずです。

udisksctl mount -b/dev/sdxy -o ro/mountpoint

それでも、オプションをどこに配置するかはわかりません。

PDATE: Ulrichの提案に従って、Gnomeディスクユーティリティにアクセスしましたが、必要なものは実現しましたが、それが最もエレガントなソリューションであるかどうかはわかりません。 Kororaa 17(Fedora 17ベース)をCinnamon + Gnome3で使用しています。「ディスク」ユーティリティに移動し、USBドライブのマウントオプションを変更し、「ro」を追加して保存しました。

それはfstabにエントリを追加します(そこにはエレガントなソリューションとは思えませんが、システム全体ではなくユーザー構成として残すべきだと思います)、ドライブを接続すると、オプションで選択したマウントポイントに自動的にマウントされますGnomeディスクユーティリティで保存しました。

2
tripledes