리눅스 blkid 명령어 완벽 가이드: UUID 확인부터 fstab 설정까지

개요

리눅스 환경에서 스토리지 장치를 안전하게 마운트하고 관리하려면 고유 식별자인 UUID 확인이 필수적입니다. 본 글에서는 blkid 명령어를 사용하여 블록 디바이스의 UUID, 파일시스템 타입, 레이블을 조회하는 방법과 주요 옵션 활용법을 단계별 실습과 함께 알아봅니다. 또한 /etc/fstab 설정에 바로 적용할 수 있는 실무 팁까지 상세히 다룹니다.

blkid 기본 사용법과 블록 디바이스 전체 속성 조회

시스템에 연결된 스토리지 장치의 트리 구조와 파티션 구성을 미리 확인하기 위해 lsblk 명령어를 실행합니다.
현재 장착된 NVMe 드라이브와 각 파티션의 크기 및 마운트 상태를 한눈에 파악할 수 있습니다.

lsblk

blkid 명령어는 시스템에 존재하는 블록 디바이스의 UUID, 파일시스템 종류(TYPE), 파티션 라벨 등 상세 속성 정보를 일괄 조회합니다.
관리자 권한(sudo)으로 실행하면 모든 파티션의 고유 식별자와 블록 크기 정보를 정확하게 확인할 수 있습니다.
⚙️ [주요 옵션]

-s <tag> : 지정한 태그(예: UUID, TYPE, PARTUUID) 속성만 필터링하여 출력합니다.
-o <format> : 출력 형식을 지정합니다 (value, list, device, export, full 등).
-t <token> : 지정한 NAME=value 조건(예: TYPE=ext4)과 일치하는 장치만 검색하여 표시합니다.
-L <label> : 지정한 파일시스템 라벨을 가진 디바이스를 조회합니다.
-U <uuid> : 지정한 UUID를 가진 디바이스를 조회합니다.
-p : 커널 캐시(/etc/blkid.tab)를 사용하지 않고 저수준 슈퍼블록 프로빙을 수행합니다.
-c <cachefile> : 캐시 파일 경로를 직접 지정하거나 비활성화(/dev/null)합니다.

sudo blkid

특정 디바이스 조회 및 출력 포맷 필터링 (-s, -o 옵션)

실습 대상을 유연하게 지정하기 위해 findmnt 명령어로 현재 루트(/) 파일시스템이 마운트된 디바이스 경로를 확인하여 TARGET_DEV 환경 변수에 저장합니다.

TARGET_DEV=$(findmnt -n -o SOURCE /)

blkid 명령어 뒤에 특정 디바이스 경로를 인수로 전달하여 해당 파티션의 속성 정보만 선별적으로 조회합니다.
전체 디바이스를 스캔하지 않고 원하는 대상 파티션의 UUID, BLOCK_SIZE, TYPE, PARTUUID 값만 빠르게 확인할 수 있습니다.

sudo blkid “$TARGET_DEV”

쉘 스크립트 등 자동화 작업에서 순수 UUID 값만 추출하기 위해 -s UUID로 조회 대상을 제한하고 -o value 옵션으로 태그명 없이 값만 출력합니다.
불필요한 레이블이나 큰따옴표 없이 36자리 고유 식별자 문자열만 깔끔하게 반환되므로 변수에 직접 할당하여 사용하기 적합합니다.

sudo blkid -s UUID -o value “$TARGET_DEV”

-o list 옵션을 사용하면 시스템 내 모든 블록 디바이스의 파일시스템 종류, 마운트 지점, UUID 정보를 정돈된 테이블 형태로 출력합니다.
한눈에 장치별 마운트 상태와 파일시스템 구성을 파악할 수 있어 전체 스토리지 현황을 직관적으로 점검할 때 유용합니다.

sudo blkid -o list

가상 디스크 생성 및 파일시스템 라벨(LABEL) 검색 실습

가상 디스크 실습을 진행하기 위해 dd 명령어로 30MB 용량의 빈 디스크 이미지 파일을 생성합니다.

dd if=/dev/zero of=/tmp/sample_disk.img bs=1M count=30 status=none

생성한 디스크 이미지를 시스템 블록 장치로 인식시키기 위해 losetup 명령어로 비어 있는 루프 디바이스에 연결하고 할당된 장치 경로를 LOOP_DEV 변수에 저장합니다.

LOOP_DEV=$(sudo losetup -f –show /tmp/sample_disk.img)

라벨 기반 검색을 실습하기 위해 mkfs.ext4 명령어의 -L 옵션으로 MY_BACKUP 라벨을 지정하여 루프 디바이스를 ext4 파일시스템으로 포맷합니다.

sudo mkfs.ext4 -L MY_BACKUP “$LOOP_DEV” > /dev/null 2>&1

blkid 명령어로 루프 디바이스를 조회하여 LABEL="MY_BACKUP" 속성과 고유 UUID, ext4 파일시스템 정보가 정상적으로 등록되었는지 확인합니다.

sudo blkid “$LOOP_DEV”

blkid의 -L 옵션을 사용하여 지정한 라벨(MY_BACKUP)을 가진 블록 디바이스 경로를 역조회합니다.
장치명을 모르더라도 파일시스템 라벨 이름만으로 실제 디바이스 경로를 즉시 찾아낼 수 있습니다.

sudo blkid -L MY_BACKUP

테스트가 완료된 루프 디바이스 연결을 해제하고 임시 이미지 파일을 삭제하여 실습 환경을 정리합니다.

sudo losetup -d “$LOOP_DEV” && rm -f /tmp/sample_disk.img

fstab 영구 마운트 연계를 위한 UUID 역조회(-U) 및 검증

findmnt 명령어로 확인한 루트(/) 파일시스템의 소스 디바이스 경로를 인수로 전달하고, blkid의 -s UUID -o value 옵션으로 순수 UUID 값만 추출하여 ROOT_UUID 변수에 저장합니다.

ROOT_UUID=$(sudo blkid -s UUID -o value $(findmnt -n -o SOURCE /))

추출한 UUID를 활용하여 시스템 재부팅 후에도 마운트가 유지되도록 /etc/fstab 파일에 등록할 엔트리 형식 예시를 출력합니다.
장치명(/dev/sdX) 대신 고유 식별자인 UUID를 사용하면 디스크 인식 순서가 변경되더라도 항상 올바른 파티션을 안전하게 마운트할 수 있습니다.

echo “UUID=${ROOT_UUID}  /  ext4  defaults  0  1”

blkid 명령어의 -U 옵션에 UUID 값을 전달하여 해당 고유 식별자와 연결된 실제 블록 디바이스 경로를 역조회합니다.
/etc/fstab에 등록하려는 UUID가 의도한 디바이스와 정확히 일치하는지 사전에 교차 검증할 수 있습니다.

sudo blkid -U “$ROOT_UUID”

지금까지 blkid 명령어를 활용해 블록 장치의 UUID를 확인하고 /etc/fstab에 안전하게 등록하는 방법을 간단하게 살펴보았습니다.
안정적인 시스템 마운트 설정을 위해 UUID 기반 관리를 적극 활용해 보시기 바랍니다.