실용적인 예시와 함께 배우는 Linux lsblk 명령어

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 의 lsblk 명령어를 살펴보고, 시스템에서 사용 가능한 모든 블록 장치에 대한 정보를 표시합니다. 블록 장치에는 하드 드라이브, SSD, USB 드라이브 및 기타 저장 매체가 포함됩니다. lsblk 명령어는 이 정보를 명확하고 트리 형태의 형식으로 표시하여 서로 다른 저장 장치와 해당 파티션 간의 관계를 쉽게 이해할 수 있도록 합니다.

저장 장치에 대한 이해는 Linux 시스템을 사용하는 모든 사람에게 필수적입니다. 사용 가능한 저장 공간을 식별하고, 파티션 크기를 확인하거나, 마운트 지점을 확인해야 할 때, lsblk 명령어는 이 정보를 빠르고 효율적으로 수집하는 방법을 제공합니다.

이 랩을 마치면 다양한 옵션을 사용하여 Linux 시스템의 저장 장치에 대한 자세한 정보를 얻기 위해 lsblk 명령어를 사용할 수 있게 됩니다.

Linux 명령어 치트 시트

lsblk 명령어의 기본 사용법

lsblk 명령어는 "list block devices"의 약자로, Linux 시스템에서 사용 가능한 모든 블록 장치에 대한 정보를 표시하는 데 사용됩니다. 블록 장치는 하드 드라이브, SSD 및 USB 드라이브와 같은 저장 장치입니다.

터미널에서 기본 lsblk 명령어를 실행하는 것으로 시작해 보겠습니다.

  1. 터미널이 아직 열려 있지 않다면 엽니다.

  2. 다음 명령을 입력하고 Enter 키를 누릅니다.

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]

이 출력은 시스템의 모든 블록 장치를 표시하며, 다음 열이 있습니다.

  • NAME: 장치 이름
  • MAJ:MIN: 주 및 부 장치 번호
  • RM: 이동식 플래그 (1 은 이동식, 0 은 이동식이 아님)
  • SIZE: 장치 크기
  • RO: 읽기 전용 플래그 (1 은 읽기 전용, 0 은 읽기/쓰기)
  • TYPE: 장치 유형 (disk, partition, loop 등)
  • MOUNTPOINT: 장치가 마운트된 위치 (해당하는 경우)

위의 예에서 다음을 볼 수 있습니다.

  • snap 패키지에서 사용되는 여러 loop 장치
  • 주 저장 장치 sda (50GB 디스크)
  • sda의 두 개의 파티션: sda1 (루트 /에 마운트됨) 및 sda2 (스왑 공간으로 사용됨)

출력의 트리 구조는 어떤 파티션이 어떤 디스크에 속하는지 시각적으로 쉽게 파악할 수 있게 해줍니다. 예를 들어, sda1sda2 모두 sda 디스크의 파티션임을 알 수 있습니다.

이제 lsblk 명령의 기본 출력을 이해했으므로, 다음 단계에서 몇 가지 유용한 옵션을 살펴보겠습니다.

lsblk 로 추가 정보 표시하기

이 단계에서는 lsblk 명령어를 다양한 옵션과 함께 사용하여 블록 장치에 대한 더 자세한 정보를 표시하는 방법을 배우겠습니다.

-f 옵션을 사용하여 파일 시스템 정보 표시하기

-f 옵션은 파일 시스템 유형, 레이블, 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 옵션을 사용하면 표시할 열을 지정할 수 있습니다. 이는 특정 정보만 필요하고 더 깔끔하고 집중된 출력을 원하는 경우에 유용합니다.

이름, 크기 및 마운트 지점 열만 표시해 보겠습니다.

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 명령의 출력을 필터링하여 특정 유형의 블록 장치에 집중하거나 다른 형식으로 정보를 표시하는 방법을 배우겠습니다.

장치 유형별 필터링

lsblk 명령을 사용하면 --type 또는 -t 옵션을 사용하여 장치를 유형별로 필터링할 수 있습니다. 일반적인 장치 유형은 다음과 같습니다.

  • disk: 물리적 디스크
  • part: 파티션
  • loop: 루프 장치
  • lvm: 논리 볼륨 (Logical Volume)

디스크 장치만 표시하려면 다음 명령을 실행합니다.

lsblk --type disk

출력은 파티션 없이 주 디스크만 표시합니다.

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0   50G  0 disk

마찬가지로, 파티션 장치만 표시하려면 다음을 실행합니다.

lsblk --type part

출력은 파티션만 표시합니다.

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda1   8:1    0   49G  0 part /
sda2   8:2    0  976M  0 part [SWAP]

장치 경로 표시하기

--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 --type disk --paths --json

출력은 전체 경로가 있는 디스크 장치만 JSON 형식으로 나타냅니다.

{
  "blockdevices": [
    {
      "name": "/dev/sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "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를 사용하여 이동식 장치를 찾아 빠르게 식별할 수 있습니다.

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

출력에는 정렬 및 최적 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 시스템 관리 작업의 중요한 기반을 형성합니다.

Linux Commands Cheat Sheet