コマンドラインにすべてのディスクのパーティションタイプGUIDを一覧表示しますか?

コマンドラインにすべてのディスクのパーティションタイプGUIDを一覧表示しますか?

リストを作成する必要があります。パーティションタイプGUIDコマンドラインから。

注:これはパーティションUUIDとは異なります。

デフォルトでは、Ceph OSDタイプのGUIDを含むすべてのディスクを検索する必要があります。

4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D

目的は、CoreOSのbashスクリプトでceph-disk(python)を使用して実行されたいくつかの操作をシミュレートすることです。なぜ?これにより、ceph-dockerを使用して適切な場所に自動的にインストールできます。

答え1

lsblk - list block devicesあなたの友達です。

# lsblk -p -o NAME,PARTTYPE
NAME         PARTTYPE
/dev/vda     
├─/dev/vda1  c12a7328-f81f-11d2-ba4b-00a0c93ec93b
├─/dev/vda2  ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
...

答え2

これが私が使用した最終的な解決策ですblkid -p

function find_osds()
{
    local osds
    declare -a dev_list
    mapfile dev_list < <(lsblk -l -n -o NAME --exclude 1,7,11) # note -I not available in all versions of lsblk, use exclude instead
    for dev in "${dev_list[@]}"; do
        dev=/dev/$(trim "$dev")
        if blkid -p "$dev" | fgrep -q '4fbd7e29-9d25-41b8-afd0-062c0ceff05d'; then
            osds+=($dev)
        fi
    done
    echo "${osds[@]}"
}

関連情報