
리눅스에서는 가끔 명령줄에서 디스크나 파티션을 직접 다뤄야 할 때가 있습니다. 대부분의 경우 실제로 조작하려는 대상은 파일시스템이지만, 그 작업은 파일시스템이 저장된 파티션을 지정함으로써 수행하게 됩니다. 이때 명령줄에서는 장치 이름(예: "/dev/sda3")으로 해당 파티션을 참조합니다.
그런데 시스템에 디스크, 파티션, 광학 드라이브, USB 드라이브가 많이 연결되어 있다면, 각 장치에 어떤 이름이 할당되었는지 파악하기가 쉽지 않습니다.
lsblk 명령어란 무엇인가?
lsblk는 저장 장치에 대한 정보를 화면에 출력해 주는 유틸리티입니다. 주로 이후에 실행할 명령어에 전달할 올바른 장치 이름을 찾는 용도로 사용됩니다.
lsblk

대부분의 경우 별도의 옵션 없이 lsblk만 입력해도 원하는 디스크나 파티션을 식별하는 데 충분합니다. 예를 들어 위 스크린샷에서 "sda4"가 Windows 파티션이라는 것을 알 수 있는데, 이는 크기가 약 200GB라는 점을 기억하고 있기 때문입니다. 하지만 크기가 같은 파티션이 두 개 이상 있다면 상황은 훨씬 혼란스러워집니다. 또는 특정 디스크나 파티션의 용량을 모르거나 기억나지 않는 경우도 있겠죠.
리눅스에서 장치 이름을 잘못 구분하면 매우 위험합니다. 잘못된 명령 하나로 소중한 데이터를 삭제하거나 손상시킬 수 있기 때문입니다.
유용한 lsblk 옵션들
기본적으로 lsblk는 앞서 본 스크린샷처럼 몇 가지 속성만 표시합니다. 하지만 명령어에 옵션을 추가하면 더 많은 장치 속성을 함께 출력할 수 있습니다. 이를 활용하면 찾고자 하는 디스크나 파티션을 훨씬 쉽게 식별할 수 있습니다.
SSD인지 HDD인지 확인하기
lsblk가 어떤 추가 열(column)을 표시할 수 있는지 보려면 다음 명령어를 입력합니다.
lsblk --help
여기서는 ROTA와 DISC-GRAN 열을 사용해 보겠습니다. ROTA는 해당 블록 장치가 회전식(rotational) 저장 장치에 속하는지 알려줍니다. 하드디스크는 회전식이므로 이 열에 "1"(참을 의미하는 논리값)이 표시됩니다. DISC-GRAN은 discard 세분화 단위를 보여주는데, SSD는 사용하지 않는 데이터 블록을 해제하는 discard 기능을 지원하지만, 하드디스크는 이 기능이 필요 없어 지원하지 않으므로 "0B"(0바이트)로 표시됩니다.
lsblk -o +ROTA,DISC-GRAN

디스크/파티션에 저장된 파일시스템 확인하기
파티션 목록만 보고도 크기를 근거로 각 파티션의 용도를 짐작할 수 있는 경우가 있습니다. 하지만 그것만으로 부족할 때는 파일시스템 정보까지 함께 출력하면 됩니다. 이 방법이 훨씬 직관적인 이유는 다음과 같습니다.
- Windows는 NTFS 파일시스템을 사용합니다
- 리눅스는 일반적으로 ext4를 사용합니다
- USB 장치는 FAT, FAT32(vfat) 또는 NTFS를 사용합니다
- EFI 부팅 파티션은 크기가 매우 작고 vfat 파일시스템으로 표시됩니다
여기에 LABEL 열도 추가해 보세요. 파티션 생성/포맷 시 레이블이 지정되어 있다면 식별에 큰 도움이 됩니다.
lsblk -o +FSTYPE,LABEL
이동식 장치/USB 메모리 확인하기
lsblk -o +RM
위 명령어는 해당 장치가 이동식인지 여부를 알려주는 추가 열을 표시합니다. 값이 "1"이면 참(true)을 의미하며, USB 메모리나 기타 이동식 미디어임을 나타냅니다.
HDD/SSD 모델명 확인하기
펌웨어 업그레이드나 드라이버 다운로드를 위해 저장 장치 모델의 정확한 코드를 확인해야 할 때 유용합니다.
lsblk -d -o +MODEL
파일시스템 UUID(범용 고유 식별자) 확인하기
예전 리눅스 배포판들은 "/etc/fstab"에 장치 이름을 직접 지정해 파일시스템을 마운트했습니다. 그러나 새 저장 장치를 추가하면 "/dev/sda2"가 "/dev/sdb2"로 바뀌는 등 신뢰성 문제가 있었습니다. 요즘은 컴퓨터에 무엇을 추가하거나 제거하더라도 변하지 않는 UUID를 대신 사용합니다. 어떤 이유로든 UUID가 필요하다면 다음 명령어로 확인할 수 있습니다.
lsblk -o +UUID
필요한 다른 lsblk 열 출력하기
튜토리얼 초반에 lsblk --help를 사용해 lsblk가 표시할 수 있는 추가 열들을 살펴봤습니다. 여기서 소개한 예제만으로는 부족하다면 도움말을 다시 참고해 필요한 옵션들을 조합하세요. 방법은 간단합니다. lsblk -o + 뒤에 원하는 열 이름을 나열하면 되고, 열 이름은 쉼표(",")로 구분합니다. 예를 들면 다음과 같습니다.
lsblk -o +SCHED,RM,FSTYPE
마무리
작업할 장치 이름을 확인했다면, 이후 실행할 명령어에는 반드시 전체 장치 경로를 사용해야 한다는 점을 잊지 마세요. 예를 들어 lsblk 결과가 "sda4"였다면, 다음 명령어에서는 "/dev/sda4"로 입력해야 합니다. 즉, mkfs -t ext4 /dev/sda4 같은 명령어에서 "sda4" 대신 "/dev/sda4"를 입력하는 것입니다.