私はLinuxとプログラミングの初心者です。私の質問はこれに似ています1つしかし、私はデスクトップのないヘッドレスの Raspberry Pi 4 [buster lite] を実行しており、これは USB ドライブを自動マウントするようです。USB の新しいドライブを自動的にマウントして、パスが予測可能になるようにする、ジャンキーでない方法は見つかりませんでした。この RPi4 にはセンサーがあり、挿入されたサムドライブにセンサーデータを自動的に保存したいと考えています。定期的にドライブを取り外して新しいドライブを挿入し、元に戻すことができます。同じ USB ドライブを再利用するのではなく、新しい USB ドライブを使用できるようにする必要があります。私が行っている残りの作業は Python 上で行われますが、この機能は Python なしで個別に実行できます。このソリューションは、Pi の再起動後も存続する必要があります。
皆様のご協力に感謝します。私は初心者なので、特にお勧めのものを説明していただけるとありがたいです。
答え1
- /dev/sdX を作成して USB をマウントする(または他のチェックを行う)スクリプトを作成します。
- USB ドライブが接続されたときにスクリプトを実行するように udevd を変更します。
スクリプトは次のように開始できます。
for i in $(ls /dev/sd* | awk -F '/' '{ print $3 }')
do
echo "Do stuff like: mkdir /mnt/$i"
done
udevは次のように設定できます。適切な値を設定すると、/dev/usb/NAMEYOUCHOOSEにデバイスが表示されます。
BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", RUN+="/usr/local/sbin/YOURSCRIPT"
役に立つコマンド
udevadm monitor
デバイスを接続します。次に、次のような属性を確認します。
udevadm info --path /devices/pci0000:00/0000:00:1d.7/usb1/1-4/usb_device/usbdev1.49 --attribute-walk
(異なる値を使用する必要があります)
ルールを記述した後、udevd にそれらを強制的に再読み込みさせます。
udevadm control --reload-rules
デバイスを再接続します。必要に応じて /etc/fstab を変更します。
しかし、私はもっとシンプルなものを好みます。おそらく /dev/disk/by-label/ があるので、それに応じてメディアにラベルを付け、fstab を変更します。