Linuxを使用してデバイス(タブレット、カメラ、フラッシュドライブ、外付けハードドライブ)をラップトップに接続するときは、次のコマンドを順番に入力することがよくあります。
$ ls /dev/sd*
私のデバイスが/ dev / sdc
option $ sudo mkdir /media/my_flash
optionであるとします。$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash
その後、いくつかのファイルをコピーして
$ sudo umount /dev/sdc
この順序では、ファイルがコピーされ、悪いことは発生しません。
この一連のコマンドを自動化する方法を教えてください。そのため、デバイスを接続すると、デバイスをどのディレクトリにマウントする必要があるかを認識し、ファイル転送を行い、(とにかく)デバイスを切り離すことができることを知らせます。 Linuxオペレーティングシステムにいくつかの設定がありますか?
答え1
上記と同じbashコマンドを含むbashスクリプトを「実行」するUDEVルールを作成することでこれを実行できます。デバイスを接続するたびに、UDEVはそれを認識し、規則に従って動作を開始します。
ルールを作成するには、次のことができます。これ協会。
答え2
リムーバブルデバイスの接続に反応するシステムコンポーネントは次のとおりです。ウデブ、言うようにSHW。 〜でもudev チュートリアル少し難しいかもしれません。いくつかの例を紹介します。
関連する2つのステップは、/dev/sdc
デバイスファイル(たとえば)をハードウェアデバイスに関連付けることと、ファイルシステムにアクセスするためにデバイスをマウントすることです。 Udevの作業は最初のステップですが、外部コマンドを実行するように指示できますmount
。
既知のリムーバブルデバイスの場合は、以下の専用デバイス名を使用することをお勧めします/dev/removable
(ディレクトリ名は個人的なルールです)。次の udev ルール ( にある/etc/udev/rules.d/my_removable_disks.rules
) は、パーティション 1 のファイルシステム属性によって識別される 2 つのディスクの既知の名前を使用してシンボリックリンクを作成します。
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
。
答え3
複数のサイレントインストールデーモンと、ユーザーがアクセスせずにリムーバブルデバイスをインストールpmount
できるように特別に設計されたコマンドがあります。/media
sudo
GnomeとKDEには、インストールしたディストリビューションによっては、接続時にリムーバブルボリュームを自動的にマウントするオプションがあり、デフォルトでは「オン」になっている可能性があります。
GNOMEでは、この機能を制御するオプションを以下で使用できますSystem -> Preferences -> Removable Media
。私は最近KDEを使ったことがありません。