소개
이번 실습에서는 시스템에 연결된 모든 사용 가능한 블록 장치에 대한 정보를 표시해 주는 Linux lsblk 명령어를 알아봅니다. 블록 장치에는 하드 드라이브, SSD, USB 드라이브 및 기타 저장 매체가 포함됩니다. lsblk 명령어는 이 정보를 명확한 트리 구조 형식으로 제공하여, 서로 다른 스토리지 장치와 그 파티션 간의 관계를 쉽게 파악할 수 있도록 해줍니다.
Linux 시스템을 다루는 사람이라면 스토리지 장치를 이해하는 것이 필수적입니다. 사용 가능한 스토리지를 식별하거나, 파티션 크기를 확인하거나, 마운트 지점을 검증해야 할 때 lsblk 명령어는 이러한 정보를 빠르고 효율적으로 수집할 수 있는 방법을 제공합니다.
이번 실습을 마치면 다양한 옵션과 함께 lsblk 명령어를 사용하여 Linux 시스템의 스토리지 장치에 대한 상세한 정보를 얻을 수 있게 됩니다.
lsblk 명령어 기본 사용법
이번 단계에서는 lsblk 명령어를 사용하여 Linux 시스템에서 사용 가능한 블록 장치에 대한 정보를 표시해 봅니다. 블록 장치는 하드 드라이브, SSD, USB 드라이브와 같은 스토리지 장치를 말합니다.
터미널이 열려 있지 않다면 엽니다. 그런 다음 기본 lsblk 명령어를 실행합니다.
lsblk
다음과 유사한 출력을 볼 수 있습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.5M 1 loop /snap/core18/2128
loop1 7:1 0 55.4M 1 loop /snap/core18/2284
loop2 7:2 0 43.6M 1 loop /snap/snapd/15534
loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535
loop4 7:4 0 31.1M 1 loop /snap/snapd/16292
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 49G 0 part /
└─sda2 8:2 0 976M 0 part [SWAP]
이 출력은 시스템의 모든 블록 장치를 보여주며, 다음과 같은 열(column)들로 구성되어 있습니다.
NAME: 장치 이름MAJ:MIN: 주(major) 및 부(minor) 장치 번호RM: 제거 가능 여부 플래그 (1은 제거 가능, 0은 제거 불가능)SIZE: 장치 크기RO: 읽기 전용 플래그 (1은 읽기 전용, 0은 읽기/쓰기 가능)TYPE: 장치 유형 (disk, partition, loop 등)MOUNTPOINT: 장치가 마운트된 위치 (해당되는 경우)
위의 예시에서 다음을 확인할 수 있습니다.
- Snap 패키지에서 사용하는 여러 개의
loop장치 - 메인 스토리지 장치인
sda(50GB 디스크) sda의 두 파티션:sda1(최상위 루트/에 마운트됨)과sda2(스왑 공간으로 사용됨)
출력 결과의 트리 구조 덕분에 어떤 파티션이 어떤 디스크에 속해 있는지 쉽게 시각적으로 파악할 수 있습니다. 예를 들어, sda1과 sda2 모두 sda 디스크의 파티션임을 알 수 있습니다.
lsblk 명령어의 기본 출력을 이해했으니, 다음 단계에서는 몇 가지 유용한 옵션들을 살펴보겠습니다.
lsblk로 추가 정보 표시하기
이번 단계에서는 블록 장치에 대한 더 자세한 정보를 표시하기 위해 다양한 옵션과 함께 lsblk 명령어를 사용하는 방법을 배웁니다.
-f 옵션을 사용하여 파일 시스템 정보 표시하기
-f 옵션은 파일 시스템 유형, 레이블(label), UUID, 마운트 지점을 포함한 파일 시스템 정보를 보여줍니다. 이는 장치를 UUID로 식별하거나 현재 사용 중인 파일 시스템 유형을 확인할 때 특히 유용합니다.
터미널에서 다음 명령어를 실행합니다.
lsblk -f
다음과 유사한 출력을 볼 수 있습니다.
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 squashfs /snap/core18/2128
loop1 squashfs /snap/core18/2284
loop2 squashfs /snap/snapd/15534
loop3 squashfs /snap/gtk-common-themes/1535
loop4 squashfs /snap/snapd/16292
sda
├─sda1 ext4 5fbb8eed-12a3-4b5c-9d67-9594ff4e2d1c /
└─sda2 swap b409ae25-7589-44eb-a909-b56f1d42c5ab [SWAP]
출력에 다음과 같은 추가 열들이 포함됩니다.
FSTYPE: 파일 시스템 유형 (ext4, swap, squashfs 등)LABEL: 할당된 파일 시스템 레이블UUID: 파일 시스템의 고유 식별자(Universal Unique Identifier)
-m 옵션을 사용하여 장치 소유자 및 권한 정보 표시하기
-m 옵션은 블록 장치의 권한 및 소유자 정보를 표시합니다. 권한과 관련된 문제를 트러블슈팅할 때 유용합니다.
다음 명령어를 실행합니다.
lsblk -m
다음과 같은 출력이 표시됩니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT OWNER GROUP MODE
loop0 7:0 0 55.5M 1 loop /snap/core18/2128 root disk brw-rw----
loop1 7:1 0 55.4M 1 loop /snap/core18/2284 root disk brw-rw----
loop2 7:2 0 43.6M 1 loop /snap/snapd/15534 root disk brw-rw----
loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535 root disk brw-rw----
loop4 7:4 0 31.1M 1 loop /snap/snapd/16292 root disk brw-rw----
sda 8:0 0 50G 0 disk root disk brw-rw----
├─sda1 8:1 0 49G 0 part / root disk brw-rw----
└─sda2 8:2 0 976M 0 part [SWAP] root disk brw-rw----
새로 추가된 열들은 다음을 보여줍니다.
OWNER: 장치를 소유한 사용자 (일반적으로 root)GROUP: 장치를 소유한 그룹 (일반적으로 disk)MODE: 장치의 권한 모드
-o 옵션을 사용하여 특정 출력 열 선택하기
-o 옵션을 사용하면 표시할 열을 직접 지정할 수 있습니다. 특정 정보만 필요할 때 더 깔끔하고 집중된 출력을 얻고 싶을 때 유용합니다.
이름(name), 크기(size), 마운트 지점(mountpoint) 열만 표시해 보겠습니다.
lsblk -o NAME,SIZE,MOUNTPOINT
출력이 훨씬 단순해집니다.
NAME SIZE MOUNTPOINT
loop0 55.5M /snap/core18/2128
loop1 55.4M /snap/core18/2284
loop2 43.6M /snap/snapd/15534
loop3 61.9M /snap/gtk-common-themes/1535
loop4 31.1M /snap/snapd/16292
sda 50G
├─sda1 49G /
└─sda2 976M [SWAP]
이렇게 맞춤형으로 출력하면 필요한 정보에만 집중하기가 더 쉽습니다. 여러 옵션을 결합하여 요구사항에 가장 잘 맞는 형식으로 원하는 정확한 정보를 얻을 수 있습니다.
lsblk로 블록 장치 필터링하기
이번 단계에서는 lsblk 명령어의 출력을 제한하고 다양한 형식으로 정보를 표시하는 방법을 배웁니다.
최상위 장치만 표시하기
-d로 축약되는 --nodeps 옵션은 파티션과 같은 종속 장치를 생략합니다. 최상위 블록 장치에 대한 간결한 개요를 보고 싶을 때 유용합니다.
다음 명령어를 실행합니다.
lsblk --nodeps
출력에는 파티션 트리가 제외된 최상위 장치들이 표시됩니다. 장치 이름과 크기는 시스템마다 다를 수 있습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 40G 0 disk
vdb 253:16 0 100G 0 disk /etc/hosts
주 장치 번호(Major Number)로 장치 제외하기
-e로 축약되는 --exclude 옵션은 생략할 주 장치 번호들을 쉼표로 구분하여 입력받습니다. 예를 들어, 루프(loop) 장치는 주 번호 7을 사용하므로 다음 명령어는 이를 제외합니다.
lsblk --exclude 7
이 필터는 최상위 장치에 적용됩니다. 하위의 종속 파티션은 여전히 트리에 나타날 수 있습니다.
장치 경로 표시하기
--paths 옵션은 장치 이름만 표시하는 대신 전체 장치 경로를 표시합니다. 스크립트나 명령어에서 장치를 참조해야 할 때 유용합니다.
다음 명령어를 실행합니다.
lsblk --paths
출력에 전체 장치 경로가 포함됩니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/loop0 7:0 0 55.5M 1 loop /snap/core18/2128
/dev/loop1 7:1 0 55.4M 1 loop /snap/core18/2284
/dev/loop2 7:2 0 43.6M 1 loop /snap/snapd/15534
/dev/loop3 7:3 0 61.9M 1 loop /snap/gtk-common-themes/1535
/dev/loop4 7:4 0 31.1M 1 loop /snap/snapd/16292
/dev/sda 8:0 0 50G 0 disk
├─/dev/sda1 8:1 0 49G 0 part /
└─/dev/sda2 8:2 0 976M 0 part [SWAP]
JSON 형식으로 출력하기
--json 옵션은 정보를 JSON 형식으로 출력합니다. 프로그램적으로 처리하거나 다른 도구와 연동할 때 유용합니다.
다음 명령어를 실행합니다.
lsblk --json
출력이 JSON 형식으로 나타납니다.
{
"blockdevices": [
{
"name": "loop0",
"maj:min": "7:0",
"rm": false,
"size": "55.5M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/core18/2128"
},
{
"name": "loop1",
"maj:min": "7:1",
"rm": false,
"size": "55.4M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/core18/2284"
},
{
"name": "loop2",
"maj:min": "7:2",
"rm": false,
"size": "43.6M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/snapd/15534"
},
{
"name": "loop3",
"maj:min": "7:3",
"rm": false,
"size": "61.9M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/gtk-common-themes/1535"
},
{
"name": "loop4",
"maj:min": "7:4",
"rm": false,
"size": "31.1M",
"ro": true,
"type": "loop",
"mountpoint": "/snap/snapd/16292"
},
{
"name": "sda",
"maj:min": "8:0",
"rm": false,
"size": "50G",
"ro": false,
"type": "disk",
"children": [
{
"name": "sda1",
"maj:min": "8:1",
"rm": false,
"size": "49G",
"ro": false,
"type": "part",
"mountpoint": "/"
},
{
"name": "sda2",
"maj:min": "8:2",
"rm": false,
"size": "976M",
"ro": false,
"type": "part",
"mountpoint": "[SWAP]"
}
]
}
]
}
옵션을 조합하여 정밀하게 제어하기
여러 옵션을 조합하여 정확히 원하는 정보를 얻을 수 있습니다. 예를 들어, JSON 형식으로 전체 경로를 표시하면서 종속 장치와 루프 장치를 제외하려면 다음과 같이 입력합니다.
lsblk --nodeps --exclude 7 --paths --json
출력 결과는 전체 경로가 포함된, 필터링된 최상위 장치들의 JSON 표현이 됩니다.
{
"blockdevices": [
{
"name": "/dev/vda",
"maj:min": "253:0",
"rm": false,
"size": "40G",
"ro": false,
"type": "disk"
}
]
}
이러한 필터링 옵션 덕분에 lsblk 명령어는 매우 유연하며 시스템의 블록 장치에 대한 정확한 정보를 얻을 수 있도록 도와줍니다.
실무 시나리오를 위한 lsblk 고급 활용법
이번 단계에서는 시스템 관리 및 트러블슈팅 작업에서 lsblk 명령어가 유용하게 쓰이는 실무 시나리오를 살펴봅니다.
디스크 사용량 및 여유 공간 확인하기
디스크 사용량과 여유 공간을 확인하려면 lsblk에 -b 옵션(크기를 바이트 단위로 표시)을 결합하고 특정 열을 선택하면 됩니다.
lsblk -b -o NAME,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT
출력 결과에 디스크 사용량 정보가 표시됩니다.
NAME SIZE FSAVAIL FSUSE% MOUNTPOINT
loop0 58195968 0 - /snap/core18/2128
loop1 58130432 0 - /snap/core18/2284
loop2 45719552 0 - /snap/snapd/15534
loop3 64897024 0 - /snap/gtk-common-themes/1535
loop4 32604160 0 - /snap/snapd/16292
sda 53687091200 - -
├─sda1 52613349376 39128932352 26% /
└─sda2 1023410176 0 - [SWAP]
각 열의 의미는 다음과 같습니다.
SIZE: 바이트 단위의 총 크기FSAVAIL: 파일 시스템의 사용 가능한 여유 공간FSUSE%: 파일 시스템 사용률(백분율)MOUNTPOINT: 장치가 마운트된 위치
USB 드라이브 식별하기
USB 드라이브를 연결했을 때 lsblk를 사용하면 제거 가능한 장치(removable device)를 찾아 빠르게 식별할 수 있습니다.
lsblk -o NAME,SIZE,TYPE,RM,MOUNTPOINT
출력에서 RM (제거 가능 여부) 값이 1인 장치를 찾습니다.
NAME SIZE TYPE RM MOUNTPOINT
loop0 55.5M loop 0 /snap/core18/2128
loop1 55.4M loop 0 /snap/core18/2284
loop2 43.6M loop 0 /snap/snapd/15534
loop3 61.9M loop 0 /snap/gtk-common-themes/1535
loop4 31.1M loop 0 /snap/snapd/16292
sda 50G disk 0
├─sda1 49G part 0 /
└─sda2 976M part 0 [SWAP]
만약 USB 드라이브가 연결되어 있다면, 일반적으로 RM 값이 1인 추가 디스크(예: sdb)로 나타납니다.
장치 시리얼 번호 찾기
하드웨어 인벤토리 조사나 트러블슈팅을 위해 장치 시리얼 번호를 찾아야 할 때가 있습니다. lsblk 명령어로 이 정보를 표시할 수 있습니다.
lsblk -o NAME,SIZE,TYPE,SERIAL
출력에 해당 정보를 지원하는 장치의 시리얼 번호가 포함됩니다.
NAME SIZE TYPE SERIAL
loop0 55.5M loop
loop1 55.4M loop
loop2 43.6M loop
loop3 61.9M loop
loop4 31.1M loop
sda 50G disk ABCD1234
├─sda1 49G part
└─sda2 976M part
모든 장치가 시리얼 번호를 보고하는 것은 아니며, 루프 장치와 같은 가상 장치는 일반적으로 시리얼 번호가 없습니다.
디스크 성능 속성 분석하기
디스크 성능 속성을 보려면 --topology 또는 -t 옵션을 사용하면 됩니다.
lsblk --topology
출력에는 정렬(alignment) 및 최적 I/O 크기 같은 토폴로지 정보가 포함됩니다.
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
loop0 0 512 0 512 512 1 mq-deadline 256 128 0B
loop1 0 512 0 512 512 1 mq-deadline 256 128 0B
loop2 0 512 0 512 512 1 mq-deadline 256 128 0B
loop3 0 512 0 512 512 1 mq-deadline 256 128 0B
loop4 0 512 0 512 512 1 mq-deadline 256 128 0B
sda 0 512 0 512 512 1 mq-deadline 256 128 0B
├─sda1 0 512 0 512 512 1 mq-deadline 256 128 0B
└─sda2 0 512 0 512 512 1 mq-deadline 256 128 0B
이 정보는 성능 튜닝 및 I/O 관련 문제 트러블슈팅에 유용할 수 있습니다.
이러한 실용적인 예제들은 일상적인 시스템 관리 작업에서 lsblk 명령어가 얼마나 다재다능한지 보여줍니다. 이러한 기법들을 숙지하면 Linux 시스템의 스토리지 장치에 대한 중요한 정보를 신속하게 수집할 수 있습니다.
요약
이번 실습에서는 시스템의 블록 장치에 대한 정보를 나열하고 표시하는 강력한 도구인 Linux lsblk 명령어를 살펴보았습니다. 이 명령어와 관련된 몇 가지 중요한 측면을 다루었습니다.
- 모든 블록 장치를 트리 구조로 표시하기 위한
lsblk기본 사용법 - 파일 시스템 세부 정보, 소유자/권한, 사용자 지정 열 선택을 포함한 추가 정보 표시 방법
- 특정 장치 유형이나 출력 형식에 집중할 수 있는 필터링 기법
- 시스템 관리 작업을 위한 고급 활용 시나리오
lsblk 명령어는 스토리지 장치를 관리해야 하는 Linux 시스템 관리자와 사용자에게 필수적인 도구입니다. 유연한 옵션 덕분에 시스템의 디스크, 파티션 및 기타 블록 장치에 대해 필요한 정확한 정보를 빠르게 얻을 수 있습니다.
lsblk 명령어를 마스터하면 다음과 같은 작업을 더 효과적으로 수행할 수 있습니다.
- 스토리지 장치 식별 및 관리
- 디스크 사용량 및 여유 공간 모니터링
- 스토리지 관련 문제 트러블슈팅
- 시스템의 스토리지 구성 문서화
이러한 기술들은 스토리지 관리와 관련된 보다 고급 수준의 Linux 시스템 관리 작업을 수행하는 데 중요한 기반이 됩니다.



