
리눅스 장치 설정은 하드웨어 발견 → 커널 드라이버 연결 → sysfs 정보 공개 → udev가 /dev 이름·권한·링크 구성 → 사용자가 파일시스템이나 응용 프로그램에서 사용하는 흐름으로 이해하면 됩니다. 시험에서는 장치 이름만 외우기보다 각 계층이 무엇을 담당하는지 구분하는 것이 먼저입니다.
/dev는 장치에 접근하는 장치 노드, /sys는 커널 장치 모델의 속성, udev는 장치 이벤트를 받아 이름과 권한·심볼릭 링크를 관리합니다. 저장장치는 lsblk로 구조와 파일시스템을 확인하고, 드라이버는 lsmod와 modinfo로 조회한 뒤 변경 여부를 판단하세요.
12개 전체 학습 순서는 2026 리눅스마스터 2급 전체 학습지도에서 확인할 수 있습니다.
장치가 보이기까지의 핵심 구조
| 구성요소 | 핵심 역할 | 대표 확인 위치·명령 | 주의점 |
|---|---|---|---|
| 커널·드라이버 | 하드웨어를 제어하고 장치 기능을 운영체제에 제공 | dmesg, lsmod, modinfo |
모듈 이름과 장치 파일 이름은 같지 않을 수 있음 |
| sysfs | 커널 장치·드라이버·버스 관계와 속성을 계층으로 공개 | /sys/class, /sys/block, /sys/bus |
일반 설정 파일 저장소가 아님 |
| udev | 커널 장치 이벤트를 처리해 이름·권한·추가 링크 구성 | udevadm info, /dev/disk/by-id |
발견 순서 기반 이름보다 영속 링크가 안정적일 수 있음 |
| /dev | 사용자 공간 프로그램이 장치에 접근하는 특수 파일 제공 | /dev/sda, /dev/nvme0n1, /dev/tty* |
평범한 데이터 파일과 동일한 대상이 아님 |
Linux 커널 문서는 /dev 노드와 장치 번호의 공식 목록을 제공하며, 오늘날에는 동적 번호 할당과 sysfs·udev를 함께 사용한다고 설명합니다. 즉 장치 노드를 무조건 수동으로 만드는 방식보다 커널이 알린 장치 정보를 udev가 정책에 따라 정리하는 구조를 먼저 이해해야 합니다.
1. 블록 장치와 문자 장치
| 구분 | 접근 방식 | 대표 예 | 학습 포인트 |
|---|---|---|---|
| 블록 장치 | 블록 단위 임의 접근, 파일시스템을 올릴 수 있음 | HDD·SSD·NVMe·가상 디스크 | 디스크 전체와 파티션 이름을 구분 |
| 문자 장치 | 문자·바이트 흐름 중심의 순차 입출력 | 터미널, 직렬 포트, /dev/null |
저장장치처럼 파티션·마운트하지 않음 |
장치 파일의 major 번호는 어떤 드라이버 계열이 요청을 처리하는지, minor 번호는 그 드라이버가 다루는 개별 장치나 기능을 구분하는 데 사용됩니다. 시험에서는 숫자 전체를 외우기보다 ls -l /dev/null처럼 장치 파일 표시의 첫 글자와 major·minor 위치를 읽을 수 있으면 됩니다.
# 장치 파일 유형과 major/minor 번호 확인
ls -l /dev/null /dev/zero
# 블록 장치의 계층·크기·파일시스템·마운트 위치 확인
lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS,MODEL
2. 저장장치 이름 읽기
| 이름 예 | 뜻 | 파티션 예 |
|---|---|---|
/dev/sda |
SCSI 계열 인터페이스로 보이는 첫 번째 디스크 | /dev/sda1 |
/dev/nvme0n1 |
첫 번째 NVMe 컨트롤러의 첫 번째 네임스페이스 | /dev/nvme0n1p1 |
/dev/mmcblk0 |
첫 번째 MMC·SD 계열 블록 장치 | /dev/mmcblk0p1 |
/dev/loop0 |
파일을 블록 장치처럼 연결하는 루프 장치 | 구성에 따라 파티션 없음 |
여기서 중요한 점은 장치 이름이 항상 물리적 연결 순서를 영구 보장하지는 않는다는 것입니다. 백업이나 자동 마운트처럼 장치를 안정적으로 식별해야 할 때는 UUID, 파일시스템 LABEL, /dev/disk/by-id 같은 영속 식별자를 함께 확인합니다.
# 실제 장치 이름과 UUID·LABEL 확인
lsblk -f
# 현재 마운트 관계를 트리로 확인
findmnt
# udev가 만든 영속 링크 일부 확인
ls -l /dev/disk/by-id/ | sed -n '1,12p'
3. sysfs와 udev의 관계
sysfs는 커널 객체와 장치 속성을 파일 계층으로 내보냅니다. udev는 장치가 추가·제거·변경될 때 커널의 uevent를 받고 규칙과 속성을 대조해 장치 노드 권한, 심볼릭 링크, 네트워크 인터페이스 이름 등을 구성합니다.
- 하드웨어가 연결되거나 부팅 과정에서 발견됩니다.
- 커널이 적절한 드라이버와 장치를 연결하고 sysfs에 정보를 제공합니다.
- udev가 이벤트와 속성을 읽어
/dev노드와 추가 링크를 관리합니다. - 사용자는 장치 노드·파일시스템·응용 프로그램을 통해 장치를 사용합니다.
# 현재 시스템의 블록 장치 중 하나를 먼저 찾습니다.
lsblk
# 아래 /dev/sda는 반드시 자신의 실제 장치 이름으로 바꿉니다.
udevadm info --query=property --name=/dev/sda
# sysfs의 블록 장치 계층 확인
ls -l /sys/class/block/
조회 명령은 안전하지만 장치 이름을 추측하면 안 됩니다. 특히 mkfs, 파티션 편집, 원시 장치 대상 dd는 데이터를 즉시 훼손할 수 있어 이 글의 실습에서 제외합니다.
4. 커널 모듈과 장치 드라이버 확인
드라이버는 커널에 내장되거나 로드 가능한 모듈로 제공될 수 있습니다. lsmod는 현재 로드된 모듈을, modinfo는 모듈 파일의 설명·의존성·매개변수를 보여 줍니다. modprobe는 의존성을 고려해 모듈을 추가·제거하는 도구이지만, 학습 단계에서는 먼저 조회부터 합니다.
# 로드된 모듈 일부 확인
lsmod | sed -n '1,15p'
# 실제 목록에서 고른 모듈의 정보 확인: 예시는 loop 모듈
modinfo loop 2>/dev/null | sed -n '1,15p'
# 최근 커널 경고·오류 확인(권한 정책에 따라 제한될 수 있음)
dmesg --level=err,warn | tail -n 20
모듈이 lsmod에 없다고 기능이 없는 것은 아닙니다. 해당 드라이버가 커널에 내장됐을 수 있습니다. 반대로 모듈이 로드됐다는 사실만으로 실제 장치가 연결됐다고 단정할 수도 없습니다.
5. 장치 문제를 확인하는 순서
- 물리·가상 연결 확인: 전원, 케이블, 가상머신 장치 연결 상태를 봅니다.
- 커널 인식 확인:
dmesg,/sys, 버스별 조회 도구로 발견 여부를 봅니다. - 드라이버 확인: 연결된 드라이버와 모듈 정보를 확인합니다.
- 장치 노드 확인:
/dev와 udev 속성·영속 링크를 확인합니다. - 사용 계층 확인: 블록 장치라면 파일시스템과 마운트, 프린터·사운드라면 해당 사용자 공간 서비스를 확인합니다.
자주 틀리는 5가지
- “/dev에는 장치 데이터가 저장된다” → 장치 노드는 커널 드라이버로 요청을 전달하는 인터페이스입니다.
- “/sys와 /proc은 일반 설정 파일 디렉터리다” → 둘 다 커널 정보를 보여 주는 가상 파일시스템이며 목적과 구조가 다릅니다.
- “sda는 언제나 내장 첫 번째 SSD다” → 발견 순서와 버스·가상화 환경에 따라 이름이 달라질 수 있습니다.
- “모듈이 없으면 드라이버도 없다” → 커널에 정적으로 내장된 드라이버는
lsmod에 나타나지 않을 수 있습니다. - “장치가 보이면 바로 포맷해야 한다” → 먼저 장치·파일시스템·마운트 상태를 읽기 전용 명령으로 확인해야 합니다.
셀프체크 5문항
/dev,/sys, udev의 역할을 각각 한 문장으로 쓰세요.- 블록 장치와 문자 장치의 접근 방식 차이는 무엇인가요?
/dev/nvme0n1p2에서 디스크 부분과 파티션 번호를 구분하세요.- 장치를 영구적으로 식별할 때 단순한
/dev/sdX이름만 믿으면 안 되는 이유는? lsmod에 드라이버 이름이 없을 때 기능 부재를 단정할 수 없는 이유는?
정답 확인
/dev는 장치 접근 노드,/sys는 커널 장치 속성 계층, udev는 이벤트 기반 장치 이름·권한·링크 관리자입니다.- 블록 장치는 블록 단위 임의 접근, 문자 장치는 바이트 흐름 중심의 순차 접근을 제공합니다.
nvme0n1이 네임스페이스 장치이고p2가 두 번째 파티션입니다.- 발견 순서와 환경에 따라 이름이 바뀔 수 있으므로 UUID·LABEL·by-id 링크가 더 안정적일 수 있습니다.
- 드라이버가 로드형 모듈이 아니라 커널에 정적으로 포함됐을 수 있기 때문입니다.
전체 연재로 돌아가려면 리눅스마스터 2급 전체 학습지도를 확인하세요.
공식 자료
- KAIT 리눅스마스터 2급 출제기준: 장치 설정
- Linux Kernel: 공식 장치 번호와 /dev 노드 목록
- Linux Kernel: sysfs 문서
- udev(7): 동적 장치 관리
- udevadm(8): 장치 정보 조회 도구
- lsblk(8): 블록 장치 목록
- lsmod(8): 로드된 커널 모듈
- modprobe(8): 커널 모듈과 의존성
이 글은 2026년 7월 11일 기준 KAIT 공식 범위와 Linux 커널·udev·man7의 1차 문서를 확인해 작성했습니다. 배포판과 커널 버전에 따라 장치 이름·도구 출력·권한이 달라질 수 있으므로 실제 시스템에서는 먼저 조회 명령으로 현재 상태를 확인하세요. 예제와 문제는 기출문제가 아닌 자체 제작 학습자료입니다.
'학위공부 > IT 자격증' 카테고리의 다른 글
| 2026 리눅스마스터 2급 ⑪ 인터넷 활용|네트워크·포트·서비스 설정 (0) | 2026.07.12 |
|---|---|
| 2026 리눅스마스터 2급 ⑩ X 윈도|구조·데스크톱 환경·DISPLAY 정리 (0) | 2026.07.12 |
| 2026 리눅스마스터 2급 ⑧ 소프트웨어 설치|RPM·DNF·APT·dpkg 차이 (0) | 2026.07.11 |
| 2026 리눅스마스터 2급 ⑦ 에디터|vi·Vim 모드와 검색·치환·저장 명령 (0) | 2026.07.11 |
| 2026 리눅스마스터 2급 ⑥ 프로세스 관리|ps·top·kill·jobs·nice 핵심정리 (0) | 2026.07.11 |