web-dev-qa-db-ja.com

USBを自動的にマウントし、USBのラベルをマウントポイントとして使用する

USBを接続したときにUSBを自動的にマウントするにはどうすればよいですか?また、マウントポイントが自動的にマウントされるたびに、USBのラベルになるようにします。

編集:DebianベースのRaspian(Raspberry Pi上)を使用しています。 USBフラッシュドライブをマウントしようとしています。 Raspianをコマンドラインモードで実行しているので、コマンドラインで自動マウントしたい

4
synthesis

dev デバイスが挿入(または削除)されたときに何をするかを決定するルールを介してデバイスを管理します。 Udev自体はマウントを処理しませんが、外部プログラムを呼び出してマウントを実行させることができます。

/etc/udev/rules.d/の下のさまざまなファイルに保存されている、/dev/disk/by-label/にエントリを作成するルールがあります。 同じ一致条件 を使用して、ファイルシステムラベルを持つUSBデバイスを一致させ、カスタムスクリプトを実行できます。

ENV{ID_FS_LABEL_ENC}=="?*", ENV{ID_FS_USAGE}=="filesystem|other", \
SUBSYSTEMS=="usb", \
RUN += "/usr/local/sbin/udev-mount-by-label '%E{ID_FS_LABEL_ENC}'"

カスタムスクリプトはマウントポイントを作成し、マウントを実行する必要があります。ディレクトリがすでに存在する場合は、少し注意が必要です。私が書いたスクリプトは、マウントポイントがすでにマウントポイントとして使用されている場合は何もしませんが、空でないディレクトリを喜んでシャドウイングします。お好みに合わせてカスタマイズしてください。

#!/bin/sh
export mount_point="/media/$1"
current_device=$(awk '$2 == ENVIRON["mount_point"] {print $1; exit}' </proc/mounts)
if [ -n "$current_device" ]; then
  echo 1>&2 "$current_device already mounted on $mount_point"
  exit 1
fi
mount "/dev/disk/by-label/$1" "$mount_point"

デバイスのマウントを解除することを忘れないでくださいbeforeプラグを抜くと、データが失われる可能性があります。

buntu-ユーザーがログインしていなくても、起動時に外部ドライブを/ media/LABELに自動的にマウントしますか? は、異なるスクリプトを使用した同じ手法を示しています。

グラフィカルデスクトップのないヘッドレスボックスの場合、これがセットアップと使用が最も簡単であることがわかりました: https://github.com/six-k/automount-usb

0
ccpizza