명령줄에서 모든 디스크의 파티션 유형 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[@]}"
}

관련 정보