マウントコマンドのシーケンスを自動化する


9

デバイス(タブレット、カメラ、フラッシュドライブ、外付けハードドライブ)をLinux搭載のラップトップに接続すると、次の一連のコマンドを入力することがよくあります。

$ ls /dev/sd*
私のデバイスでは、/ dev / sdcのあることをしてみましょうと言う
オプション$ sudo mkdir /media/my_flash
オプション$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash

次に、いくつかのファイルをコピーし、

$ sudo umount /dev/sdc

このシーケンスにより、ファイルがコピーされ、問題が発生することはありません。

この一連のコマンドを自動化する方法を教えてください。だから私はデバイスを接続するだけです、それはそれがマウントされるべきディレクトリに認識します、そしてそれから私はいくつかのファイル転送を行い、そしてそれは私に(何らかの方法で)私がデバイスを取り外すことができるというシグナルを送りますか?Linux OSにはこのための設定がありますか?

回答:


6

リムーバブルデバイスの接続に反応するが、システムコンポーネントのudevによって述べたように、SHWudevチュートリアルでさえ、少し気が遠くなるかもしれません。いくつか例を示します。

関係するステップは2つあります。デバイスファイル(など/dev/sdc)をハードウェアデバイスに関連付け、デバイスをマウントしてファイルシステムにアクセスします。Udevの仕事は最初のステップですが、などの外部コマンドを実行するように指示することもできますmount

既知のリムーバブルデバイスの場合は、専用のデバイス名を使用します/dev/removable(そのディレクトリ名は個人的な慣習です)。次のudevルール(に配置される/etc/udev/rules.d/my_removable_disks.rules)は、2つのディスクの既知の名前を持つシンボリックリンクを作成します。どちらも、パーティション1のファイルシステムのプロパティによって識別されます。

KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s UUID %N1", RESULT=="1234-5678", SYMLINK+="removable/foo"
KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s LABEL %N1", RESULT=="Joe's disk", SYMLINK+="removable/joe"

古いバージョンのudev では、呼び出しの代わりに/udev/lib/vol_id -u %N1(UUID、-lラベル)が必要になる場合がありblkidます。たとえば、ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(の代わりにPROGRAM==…, RESULT==…)デバイスのベンダーとシリアル番号を照合するために、照合できるものがさらにあります。

次に、次のような行を使用できます/etc/fstab

/dev/removable/joe  /media/joe  vfat  noauto,user

自動マウントが必要な場合は, RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo"、udev行に次のようなものを追加できます。umount /media/foo抜く前に忘れずに。


素晴らしい解決策をありがとう。一部の外部ドライブにLVMがあるため、長いコマンド(VGアクティベーションなどを含む)のシーケンスがあり、これにバックアップスクリプトを追加することもできます:)。
Grzegorz Wierzowiecki 2012

親愛なる読者-あなたが利用可能ATTRSについて知りたい場合は、お使いのデバイスでこれを試してください:udevadm info --name=/dev/DEVICE --attribute-walk
グジェゴシWierzowiecki

8

これは、同じbashコマンドを実行するbashスクリプトを「実行」するUDEVルールを作成することで実行できます。上記のデバイスを接続すると、UDEVはこれを認識し、ルールに従って動作します。

ルールを書くには、このリンクをたどることができます。


ああ、いいね。まだ知りません-リンクをブックマークして私のレパートリーに追加します。
Shadur

もっと具体的に教えていただけますか?リンクのどの段落が私に関連していますか?
xralf

探しているもののようです。私は最近それを読む時間がないだけです。私はそれを研究し、私がそれを理解する時にあなたのコメントに正しい答えを貼り付けます。ありがとう
xralf

4

現在、いくつかの自動マウントデーモンpmountと、ユーザー/mediasudoアクセスを必要とせずにリムーバブルデバイスをマウントできるようにするためのコマンドがあります。

GnomeとKDEには、接続時にリムーバブルボリュームを自動的にマウントするオプションがあります。インストールしたディストリビューションによっては、この機能がデフォルトで「オン」になることもあります。

GNOMEでは、この機能を管理するオプションはの下で使用できSystem -> Preferences -> Removable Mediaます。KDEの使用経験は最近ありません。


ウィンドウ管理環境(KDE、GNOMEなど)で個別に実行したいと思います(まるでXが起動されなかったかのように)。
xralf

次に、SHWが投稿したリンクを読んで、そのほとんどすべてを読む必要があります。
Shadur
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.