パーティションのUUIDPART_ID
と同じBash変数を定義したいと思います。/dev/sdb1
必要な答えに最も近い結果は次のとおりです。
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
。
答え1
これはパーティション自体のUUIDではなく、パーティション内のファイルシステムのUUID(またはudevスクリプトに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)
答え2
あなたはこれを行うことができます
PART_ID=$(blkid -o value -s UUID /dev/sdb1)
答え3
すべてをまとめたら(@ Mongrel、ありがとう!):
これは自動的に取得されます
DISK=$(mount | grep " $1 type" | awk '{print $1}')
PART_UUID=$(blkid -o value -s UUID ${DISK})
echo "DISK UUID ($1): ${PART_UUID}"
出力:
DISK UUID (/): cf9eb16f-c1fa-45d1-9764-b10f064cc993