UUID
私のシステム(Debian)では、すべてのディスクパーティションの識別子を見ることができます(例/dev/sda1
:dev/sda2
..)
ls /dev/disk/by-uuid/
UUID
ただし、識別子自体は表示されません/dev/sda
。ディスク全体を参照できますかUUID
?
特定のディスクを参照したいが、呼び出されるものに依存できないため、これが必要です/dev/sda
。
編集する
@don_crisstiが提案した解決策は素晴らしいです。ただし、シリアル番号が一意ではなく、同じモデル/製造元のすべてのハードドライブに対してUUIDが同じであることを願っています。
使用udevadm
: ディスクのプロパティを表示できます。
udevadm info -n /dev/sda -a
ATTRS{model}=="Samsung SSD 840 "
ATTRS{vendor}=="0x8086"
ATTRS{class}=="0x010700"
ATTRS{device}=="0x1d6b"
....
UUID
同じモデル/製造元のディスクが同じ属性を持つようにこれらの属性を作成するにはどうすればよいですかUUID
。
ベストアンサー1
以下のシンボリックリンクは、次の規則に従って生成され/dev/disk/by-uuid/
ます。udev
ファイルシステムUUID。見てみると、次/usr/lib/udev/rules.d/60-persistent-storage.rules
のようなものが見つかります。
...... ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ディスクを参照するには、次のものを使用できます。ディスクシリアル番号そしてENV{ID_SERIAL_SHORT}
鍵。
次のudev
規則は、ドライブをシリアル番号と一致させます。0000000013100925DB96
そして、次の場所に同じ名前のシンボリックリンクを作成します/dev/disk/by-uuid/
。
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL_SHORT}=="0000000013100925DB96", SYMLINK+="disk/by-uuid/$env{ID_SERIAL_SHORT}"
他の質問は...もちろん、シンボリックリンク名にカスタム文字列を使用するENV{ID_MODEL}
のではなく、いつでも使用できます。次の規則は、=があるすべてのドライブと一致し、下にシンボリックリンクを作成します。ENV{ID_SERIAL_SHORT}
ID_MODEL
M4-CT128M4SSD2
M4-SSD-1234567890
/dev/disk/by-uuid/
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_MODEL}=="M4-CT128M4SSD2", SYMLINK+="disk/by-uuid/M4-SSD-1234567890"
あるドライブが1つしかないID_MODEL
限り、同じモデルの複数のドライブがある場合、ルールは各ドライブに再適用され、シンボリックリンクは最後に検出/追加されたドライブを指します。