USBディスクの自動マウント(動作方法)


12

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

ディスクを手動でアンマウントし、umountコマンドとmountコマンドで読み取り専用として手動で再マウントできますが、それは面白くありません。典型的なLinuxシステムでUSBマウントが正確にどのように自動的に行われるか(udev?歴史的背景も素晴らしい)と、このプロセスを微調整してディスクroを読み取る方法について簡単に説明してもらえますか?

ありがとう。

編集:それがまったく役立つ場合、私は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を実行してブロックデバイスをマウントしました。したがって、これがどのデーモンであり、どのように構成されているのか(私の内部のgnomeの問題だと思います)は最も重要な質問です。2番目の質問は、システムが新しく挿入されたusbディスクをどのように自動的に検出したかということですが、それは少し脇にあり、はるかに低いレベルです(udevをお読みください)。

リンク:


/ media / LaCieファイルシステムまたは/ dev / sdb1デバイスのfstabエントリはありますか?とにかく/ dev / sdb1にラベルが付けられていますか(e2label / dev / sdb1)?
トック

いいえ、fstabエントリはありません。/ media / LaCieにマウントされるとラベルが付けられると思います。確実に見つけるためにntfslabelをインストールする必要がありますが、仕事を辞めようとしています。また、デスクトップにLaCieとして表示されます。
fthinker

回答:


3

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

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

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にマウントされ、ユーザーが所有します。


ありがとう:)しかし、私の質問の主な目的は、自動マウントとusbデバイスがどのように機能するかを理解しなければならないたびに感じる極端なフラストレーションを軽減することです。これらの複雑なシステムの背後にある魔法を解読するためにここにいます。また、fstabおよびusbデバイスの使用は、起動時に常にプラグインされることが保証されているわけではないため、少し注意が必要です。
fthinker

1
私はそれがどのように機能するかわかりませんが、新しいデバイスがudevルールによって検出されることを確信しています。/etc/udev/rules.d/と/lib/udev/rules.d/を見てください。
11

2

現在、デフォルトのソリューションは、コマンドラインインターフェイスだけでなくdbus apiudisk提供するデーモンを知っている限りです。複数のudisksラッパーとオートマウンター利用できます。

通常udisk、Gnomeを調べる必要があるため、指示されたとおりに動作するため、自分で設定することはありません。Gnomeディスクユーティリティを使用すると、マウントフラグ自体を変更または変更できる場合があります。


2

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

Udisksはpolkitと対話して、ユーザーがボリュームを使用して実行できることを確認します。私はここで推測していますが、名前付きディスク/デバイスのプロパティを設定する場所を見つけることができれば、動作するはずです。

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

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

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

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

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


それがどのように通知されるかを見なければならないということはどういう意味ですか?どのステップが欠落していますか?
ウルリッヒダンゲル

そして、それはないですudev→dbus→udiskけどudev/uevent→udisk→dbus
ウルリッヒDangel

私は本当に確信が持てなかったので、検証したかったのですが、今では100%間違っていたわけではないことがわかりました。
12

[ストライク] fstabに追加された行を表示してください。[/ strike] fstab行は@profyの回答の行と一致しますか?すなわち、roオプション付き。
反転

-1

カーネルがどのようにハードウェアを検出するかのトピックについては、ここで何が起こるかについて非常に素晴らしい記事があります。

要約すれば:

  • カーネルは常にPCバスをスキャンし、デバイスを仮想ファイルシステム(通常は)にマップします/sys/
  • カーネルは、新しいハードウェアがudevで利用可能であるというメッセージを送信します。
    • デバイスでudevルールを処理します
    • デバイスをシンボリックリンクします /dev/
    • デバイスドライバーを読み込む
    • dbusを介してデバイスのユーザースペースに通知する

この時点で、デバイスはユーザー空間で使用する準備ができています。GvfsとFUSEはどちらもユーザースペースファイルシステムです。


いいえ、udev通常、dbusこれを介してアプリケーションに通知することは、サードパーティのアプリケーションによって行われません。使用qdbus --systemする場合、udev名は表示されません。一般的にだけにその人自身をサブスクライブapplicaitons ueventsか、独自のルールに出荷
ウルリッヒDangel

@ulrichを指摘してくれてありがとう。私の要約は、多くの中間ステップを除外した非常に基本的な概要を示しています。ざらついた詳細については、リンクされた記事を参照してください。
反転

2
通常は何のポーリングがバスを監視するために関与していないがあるような物品も偽である
ウルリッヒDangel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.