Bash変数PART_ID
を/dev/sdb1
パーティションのUUIDと等しいものとして定義したいと思います。私が望ましい答えに最も近いのは、次の出力です。
ls -ld /dev/disk/by-uuid/* | grep sdb1
私にとっては、
lrwxrwxrwx 1 root root 10 Mar 16 17:02 /dev/disk/by-uuid/d26c3e60-0cfb-4118-9dec-1f1819439790 -> ../../sdb1
これは、PART_ID
を設定するための許容値ではありません。むしろPART_ID
と等しいものはd26c3e60-0cfb-4118-9dec-1f1819439790
です。
パーティション自体のUUIDではなく、パーティション上のファイルシステム(またはudevスクリプトが認識しているUUIDを持つ他の構造化データ)のUUIDであることに注意してください(すべてのパーティション分割スキームがUUIDをパーティションに与えるわけではありません)。 blkidとmdadmのUUIDの違い? も参照してください。
LinuxベースのシステムでFS UUIDを取得するためのいくつかのオプション:
fs_uuid=$(blkid -o value -s UUID /dev/sdb1)
fs_uuid=$(lsblk -no UUID /dev/sdb1)
fs_uuid=$(udevadm info -n sdb1 -q property | sed -n 's/^ID_FS_UUID=//p')
fs_uuid=$(find /dev/disk/by-uuid -lname '*/sdb1' -printf %f)
最初のものは、スーパーユーザー特権、または少なくともデバイスを読み取るための権利を必要とする場合があります。
ファイルシステムがマウントされている場合は、次も使用できます。
fs_uuid=$(findmnt -fn -o UUID /dev/sdb1)
このようにできます
PART_ID=$(blkid -o value -s UUID /dev/sdb1)