SSブログ
2022年06月18日| 2022年06月20日 |- ブログトップ

udevへのストレージに関するルールの追加 [Linux]

/dev/sd[ab] が入れ替わることに関連して、デバイスへのパスを固定するための udev のルールを作成してみた。

1. 要件
指定したデバイスへのシンボリック・リンク(パス名を固定)を /dev に作成する。


対象とするデバイスは、下記の通りである。
また、ルールは /etc/udev/rules.d/60-persistent-strage.rules に設定する。

(1) 2 個のバードディスクの一方にインストールされている Windows のパーティション


・/dev/part-win-1
・/dev/part-win-2


(2) SATA1、STAT2 に接続されているハードディスク


・/dev/ata-disk-1
・/dev/ata-disk-2


2. 作成したルール


(1) Windows のパーティションへのシンポリック・リンクの作成


(a) /dev/sda[12] を使用の場合

# NTFS partitions
SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{ID_FS_TYPE}=="ntfs", \
SYMLINK+="part-win-%n"


(b) /dev/sda{1+x,2+x} を使用の場合

# NTFS partitions
SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{ID_FS_TYPE}=="ntfs", \
PROGRAM="/bin/sh -c 'echo $((%n-x))'", SYMLINK+="part-win-%c"


・実際には一行で設定する。
・%n: デバイスの番号
・%c: PROGRAM で指定したコマンドの標準出力


(2) SATA1、STAT2 に接続されているハードディスクへのシンボリック・リンクの作成

# pci-0000:00:1f.2-ata-1.0
SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", \
ENV{ID_PATH}=="pci-0000:00:1f.2-ata-1.0", SYMLINK+="ata-disk-1"
# pci-0000_00_1f_2-ata-1.1
SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", \
ENV{ID_PATH}=="pci-0000:00:1f.2-ata-1.1", SYMLINK+="ata-disk-2"


または

# pci-0000:00:1f.2-ata-1.0, pci-0000_00_1f_2-ata-1.1
SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", \
ENV{ID_PATH}=="pci-0000:00:1f.2-ata-1.?", \
PROGRAM="/bin/sh -c \"echo $((`echo %E{ID_PATH} | sed 's/.*\.//'` +1))\"", \
SYMLINK+="ata-disk-%c"


・実際には一行で設定する。
・%E{ID_PATH}: ID_PATH の値
・同様のシンボリック・リンクが /dev/disk/by-path に存在する。
 /dev/disk/by-path/pci-0000:00:1f.2-ata-1.0
 /dev/disk/by-path/pci-0000:00:1f.2-ata-1.1


3. 備考


(1) ルールで指定できる項目の確認

% udevadm info --query=all --name=<dev-path>


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット
2022年06月18日| 2022年06月20日 |- ブログトップ