![명령줄에서 모든 디스크의 파티션 유형 GUID를 나열하시겠습니까?](https://linux55.com/image/66327/%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C%20%EB%AA%A8%EB%93%A0%20%EB%94%94%EC%8A%A4%ED%81%AC%EC%9D%98%20%ED%8C%8C%ED%8B%B0%EC%85%98%20%EC%9C%A0%ED%98%95%20GUID%EB%A5%BC%20%EB%82%98%EC%97%B4%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
목록을 작성해야 해요파티션 유형 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[@]}"
}