【Linux】特定のUSBメモリを任意のデバイス名で固定する

USBポートデバイスを固定する Linux
スポンサーリンク

今回は、LinuxでUSBを特定のデバイス名で指定する方法をまとめました。

Linuxでは、USBは/dev/sda1、/dev/sdb1、/dev/sdcといったデバイス名で検出されます。

しかも、USBの挿入順で割り当てが変更されてしまいます。

このデバイス名の検出は不便な場面があったので、指定したデバイス名でUSBを検出する方法をまとめました。

実行環境

以下の環境で試しました。

・Debian・CentOS

・Ubuntu

・LinuxMint

・MXLinux

カーネルバージョン

今回は、例としてMXLinuxで実行した結果を見ていきます。

udevで特定のUSBデバイスを検出する

現在、検出されているUSBを調べる。(今回の環境では、USBは/dev/sdb1と認識されています。)

現在のUSBデバイス名から、より詳しいデバイス情報を取得するためにudevadmを使用します。

出力される結果はかなり長いので一部抜粋しています。

ここで必要な情報は上記の「<–チェック」と明記した部分になります。

この情報を.rulesファイルに記述し、USBを特定のデバイス名/dev/USBDEV1で検出できようにします。

この.rulesファイルは、/etc/udev/rules.d/以下に配置し、ファイル名は「10-local-usb.rules」とします。

この「10」という数字は、優先順位を表しています。小さいほど優先順位は高く、数値が大きいほど優先順位は低くなります。

ファイルがあるか確認してみます。

設定を反映させるために、とりあえず再起動。

再起動後、マウントできればOKです。

シンボリックリンクを生成してデバイス名を固定する

この方法は、USBデバイス名を固定するのではなく、USBポート名を固定することになります。

ポート1の名称を「USB1」とすると、固定したポートにどんなUSBを挿入しても「USB1」と認識できるようになります。

USBポートのパス情報は、/dev/disk/by-path/以下に情報が格納されています。

ls -l コマンドで確認すると、USBポートの情報が、それぞれのデバイスパスへシンボリックリンクが発行されていることがわかります。

システム起動時に、このシンボリックリンクが各デバイスパスに発行されることで、ポート名を固定することができます。

今回は/dev/sdb1を認識しているポートを、「USBDEV1」にポート名を固定します。

マウントして確認

上手くマウントできればOK。

 

ただ、このシンボリックリンクは毎回シャットダウン時にリセットされます。

毎回設定が必要になるので、起動時に必ず実行される設定ファイル「rc.local」に先程のシンボリックリンクを登録しましょう。

/etc/rc.local

これで毎回、起動時にシンボリックリンクの発行が実行されるため、ポート固定の設定は不要になります。

コメント

タイトルとURLをコピーしました