[2과목 1장 02절] mkfs로 파일 시스템을 만들고 mount·umount로 연결하는 방법, /etc/fstab 6개 필드의 의미를 다룹니다.
🎯 이 강의 학습 목표
이 강은 2과목 1장 02절 파일 시스템의 구성과 관리의 두 번째입니다. 이 강을 마치면 mkfs로 파티션에 파일 시스템을 만들고, mount·umount로 붙이고 뗄 수 있으며, /etc/fstab의 6개 필드를 해석하고, 언마운트가 안 될 때 원인을 찾을 수 있게 됩니다.
/etc/fstab은 시험에서 필드 순서와 의미를 묻는 형태로 반복 출제됩니다. 동시에 잘못 쓰면 시스템이 부팅되지 않는 파일이라 실무에서도 가장 조심해야 합니다. 이 강에서는 필드 하나하나가 왜 필요한지까지 설명합니다.
💡 mkfs — 파일 시스템 만들기
7강에서 나눈 파티션은 빈 공간일 뿐입니다. 여기에 8강에서 배운 파일 시스템 구조(슈퍼 블록·inode 블록·데이터 블록)를 새겨 넣는 작업이 포맷이고, 명령이 mkfs입니다.
| 명령 | 용도 |
|---|---|
mkfs -t ext4 /dev/sdb1 | 종류를 -t로 지정 |
mkfs.ext4 /dev/sdb1 | 종류별 전용 명령(가장 흔한 형태) |
mke2fs -t ext4 /dev/sdb1 | ext 계열 전용 도구 |
mkfs.xfs /dev/sdb1 | XFS 생성 |
mkswap /dev/sdb2 | 스왑 영역 생성 |
스왑은 일반 파일 시스템이 아니라 전용 영역이므로 명령도 따로입니다. 만든 뒤에는 swapon /dev/sdb2로 활성화하고 swapoff로 해제합니다. 7강에서 swapon --show로 확인했던 그 영역입니다.
주요 옵션으로 -b(블록 크기), -L(레이블 지정), -c(배드 블록 검사)가 있습니다. mkfs는 기존 데이터를 모두 지웁니다. 대상 장치명을 잘못 적으면 되돌릴 수 없으므로, 실행 전에 반드시 lsblk로 확인하십시오.
💡 mount와 umount
12강에서 본 것처럼 리눅스는 드라이브 문자가 없습니다. 파일 시스템을 쓰려면 디렉터리 트리의 어느 지점에 붙여야 하고, 그 작업이 마운트(mount)이며 붙이는 지점이 마운트 포인트입니다.
mount [-t 종류] [-o 옵션] 장치 마운트포인트
umount 장치_또는_마운트포인트
주요 옵션을 정리합니다.
| 옵션 | 의미 |
|---|---|
-t | 파일 시스템 종류 지정(생략하면 자동 감지) |
-o ro / rw | 읽기 전용 / 읽기·쓰기 |
-o remount | 마운트를 해제하지 않고 옵션만 다시 적용 |
-o noexec | 실행 파일 실행 금지 |
-o nosuid | SetUID·SetGID 무시(16강 참조) |
-o nodev | 장치 파일 인식 안 함 |
-o loop | ISO 이미지 등 파일을 장치처럼 마운트 |
-a | /etc/fstab에 적힌 것 전부 마운트 |
noexec·nosuid·nodev 세 가지는 보안 옵션입니다. /tmp처럼 누구나 쓸 수 있는 영역에 걸어 두면, 공격자가 거기에 올린 프로그램을 실행하거나 SetUID를 악용하는 것을 막을 수 있습니다.
언마운트가 실패하는 상황이 시험에도 실무에도 자주 나옵니다.
$ umount /mnt/cdrom
umount: /mnt/cdrom: target is busy.
원인은 누군가 그 파일 시스템을 쓰고 있기 때문입니다. 가장 흔한 경우는 본인의 현재 디렉터리가 거기에 있는 것입니다. cd /로 빠져나오면 해결됩니다. 다른 프로세스가 원인이면 아래 명령으로 범인을 찾습니다.
lsof /mnt/cdrom # 해당 경로를 쓰는 프로세스 목록
fuser -cu /mnt/cdrom # 사용 중인 프로세스와 사용자
fuser -ck /mnt/cdrom # 해당 프로세스를 강제 종료 (주의)
umount -l(lazy)로 "쓰는 프로세스가 끝나면 떼기"도 가능하지만, 원인을 확인하지 않고 강제로 떼면 데이터가 손상될 수 있습니다.
💡 /etc/fstab — 6개 필드
마운트 명령은 재부팅하면 사라집니다. 부팅할 때마다 자동으로 마운트하려면 /etc/fstab에 적어 두어야 합니다. 각 줄은 공백으로 구분된 6개 필드입니다.
| 순서 | 필드 | 설명 |
|---|---|---|
| 1 | 장치 | /dev/sda1 또는 UUID=...·LABEL=... |
| 2 | 마운트 포인트 | /, /home 등. 스왑은 none 또는 swap |
| 3 | 파일 시스템 종류 | ext4, xfs, swap, nfs, auto |
| 4 | 마운트 옵션 | defaults, ro, noexec, noauto 등(쉼표로 나열) |
| 5 | dump | 백업 대상 여부 — 0=안 함, 1=함 |
| 6 | pass(fsck 순서) | 부팅 시 검사 순서 — 0=검사 안 함, 1=루트, 2=나머지 |
5번과 6번 필드가 시험의 핵심입니다. 둘 다 숫자라서 혼동되는데, 5번은 백업(dump), 6번은 검사(fsck) 순서입니다. 6번에서 루트 파일 시스템만 1을 갖고, 나머지 로컬 파일 시스템은 2, 스왑이나 네트워크 파일 시스템은 0입니다. 같은 숫자를 여러 파일 시스템에 주면 동시에 검사하고, 1→2 순서로 진행합니다.
4번 필드의 defaults는 rw,suid,dev,exec,auto,nouser,async를 한 번에 지정하는 축약형입니다. noauto는 부팅 시 자동 마운트를 하지 않고 나중에 수동으로 마운트하겠다는 뜻입니다.
1번 필드에 UUID=를 쓰는 이유가 중요합니다. /dev/sda1 같은 이름은 디스크를 추가하거나 순서가 바뀌면 달라질 수 있습니다. 어제의 sdb가 오늘 sdc가 되면 엉뚱한 파일 시스템이 마운트되거나 부팅이 실패합니다. UUID는 파일 시스템을 만들 때 부여되는 고유 식별자라 순서와 무관하므로 훨씬 안전합니다. UUID는 blkid 명령으로 확인합니다.
아래는 일반적인 /etc/fstab의 형식 예시입니다. (참고: 실습에 쓰는 WSL 환경은 fstab이 비어 있어 아래는 실행 결과가 아니라 표준 형식을 보여 주는 예시입니다.)
# 장치 마운트포인트 종류 옵션 dump pass
UUID=8f3a1c22-4b7e-4e21-9a55-1d2c3e4f5a6b / ext4 defaults 0 1
UUID=1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d /home ext4 defaults 0 2
UUID=9f8e7d6c-5b4a-3c2d-1e0f-9a8b7c6d5e4f none swap sw 0 0
/dev/sr0 /mnt/cdrom iso9660 ro,noauto,user 0 0
각 줄을 읽어 보겠습니다. 첫 줄의 루트는 pass가 1이라 가장 먼저 검사됩니다. 둘째 줄의 /home은 2로 그다음입니다. 셋째 줄의 스왑은 마운트 포인트가 none이고 dump·pass가 모두 0입니다. 넷째 줄의 CD-ROM은 noauto라 부팅 시 자동 마운트하지 않고, user 옵션 덕분에 일반 사용자도 마운트할 수 있습니다.
fstab을 수정한 뒤에는 재부팅 전에 반드시 검증하십시오. mount -a를 실행해 오류 없이 통과하는지 확인하는 것이 표준 절차입니다. 이 단계를 건너뛰고 재부팅했다가 부팅이 멈추는 사고가 가장 흔합니다.
💻 실습으로 확인하기
아래는 실제 실행 결과입니다.
$ mount | grep "^/dev"
/dev/sdd on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
/dev/sdd on /mnt/wslg/distro type ext4 (ro,relatime,discard,errors=remount-ro,data=ordered)
인자 없이 mount를 실행하면 현재 마운트된 목록이 나옵니다. 형식은 장치 on 마운트포인트 type 종류 (옵션)입니다. 두 줄 모두 장치가 /dev/sdd로 같은데 마운트 포인트가 다릅니다. 하나의 장치를 여러 지점에 마운트할 수 있다는 것을 보여 줍니다.
옵션도 읽어 보십시오. 첫 줄은 rw(읽기·쓰기)인데 둘째 줄은 ro(읽기 전용)입니다. 같은 장치를 서로 다른 옵션으로 마운트한 것입니다. errors=remount-ro는 "오류가 나면 읽기 전용으로 다시 마운트하라"는 뜻으로, 손상 확산을 막는 안전장치입니다. data=ordered는 8강에서 배운 저널링 기본 모드입니다.
$ findmnt -t ext4
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sdd ext4 rw,relatime,discard,errors=remount-ro,data=ordered
└─/mnt/wslg/distro /dev/sdd ext4 ro,relatime,discard,errors=remount-ro,data=ordered
findmnt는 같은 정보를 트리 형태로 보여 줍니다. └─ 기호로 /mnt/wslg/distro가 / 아래에 붙어 있음이 시각적으로 드러납니다. -t로 종류를 걸러 볼 수 있어 mount | grep보다 읽기 쉽습니다.
마운트 정보는 /proc/mounts에서도 볼 수 있습니다. 과거에는 /etc/mtab이 그 역할을 했으나, 지금은 대부분 /proc/mounts를 가리키는 심볼릭 링크입니다.
실제 마운트 실습은 root 권한이 필요하므로 가상머신에서 아래 순서로 진행하십시오.
# 가상머신 등 실습 환경에서만 실행할 것
lsblk # ① 대상 장치 확인 (가장 중요)
sudo mkfs.ext4 /dev/sdb1 # ② 파일 시스템 생성 (기존 데이터 삭제됨)
sudo mkdir -p /mnt/data # ③ 마운트 포인트 준비
sudo mount /dev/sdb1 /mnt/data # ④ 마운트
df -hT /mnt/data # ⑤ 확인
sudo blkid /dev/sdb1 # ⑥ UUID 확인 → fstab에 기록
sudo umount /mnt/data # ⑦ 해제
①번을 건너뛰지 마십시오. mkfs의 대상을 잘못 지정하면 멀쩡한 파일 시스템이 통째로 사라집니다. ⑥에서 얻은 UUID를 /etc/fstab에 적은 뒤에는 sudo mount -a로 검증하고 재부팅하는 것이 안전한 순서입니다.
⚠️ 시험에 나오는 함정
| 함정 | 정확한 사실 |
|---|---|
| fstab 5번 필드는 fsck 순서다 | 5번=dump(백업), 6번=fsck 순서 |
| fstab 6번 필드는 모두 1로 둔다 | 루트만 1, 나머지 로컬 2, 스왑·NFS는 0 |
스왑의 마운트 포인트는 /swap이다 | none(또는 swap) |
mount로 붙이면 재부팅해도 유지된다 | 사라진다. /etc/fstab에 적어야 함 |
| 언마운트 실패는 장치 고장이다 | 대개 해당 경로를 사용 중(현재 디렉터리 포함) |
| fstab에는 장치명만 쓸 수 있다 | UUID·LABEL 권장(장치명은 순서가 바뀔 수 있음) |
| 파일 시스템 옵션은 마운트를 풀어야 바꾼다 | -o remount로 해제 없이 변경 가능 |
| ISO 파일은 마운트할 수 없다 | -o loop로 가능 |
📝 핵심 요약 — 암기표
| 항목 | 핵심 |
|---|---|
| 파일 시스템 생성 | mkfs -t ext4 · mkfs.ext4 · mke2fs / 스왑은 mkswap + swapon |
| 마운트 | mount [-t 종류] [-o 옵션] 장치 포인트 · -a는 fstab 전체 |
| 보안 옵션 | noexec · nosuid · nodev |
| 특수 옵션 | remount(해제 없이 변경) · loop(ISO 파일) |
| fstab 6필드 | 장치 · 마운트포인트 · 종류 · 옵션 · dump · pass(fsck 순서) |
| pass 값 | 루트=1 · 나머지 로컬=2 · 스왑/NFS=0 |
| 스왑 항목 | 마운트 포인트 none, 종류 swap, dump·pass 0 0 |
| 장치 지정 | UUID= 권장 — 확인은 blkid |
| 언마운트 실패 | target is busy → lsof·fuser -cu로 원인 확인 |
| 확인 명령 | mount · findmnt · df -hT · /proc/mounts |
| fstab 수정 후 | 재부팅 전 mount -a로 검증 |
다음 19강에서는 용량을 점검하는 df·du, 손상을 복구하는 fsck, 그리고 쿼터·LVM·RAID를 다룹니다. RAID 레벨별 최소 디스크 수와 용량 계산은 시험에 직접 나옵니다.
📋 실전 문제
1. /etc/fstab의 필드 순서로 알맞은 것은?
① 장치 - 종류 - 마운트포인트 - 옵션 - dump - pass
② 장치 - 마운트포인트 - 종류 - 옵션 - dump - pass
③ 마운트포인트 - 장치 - 옵션 - 종류 - pass - dump
④ 장치 - 마운트포인트 - 옵션 - 종류 - pass - dump
2. /etc/fstab의 여섯 번째 필드가 의미하는 것은?
① 백업(dump) 대상 여부
② 부팅 시 fsck 검사 순서
③ 마운트 우선순위
④ 파일 시스템 크기 제한
3. 루트 파일 시스템(/)의 /etc/fstab 여섯 번째 필드 값으로 알맞은 것은?
① 0 ② 1 ③ 2 ④ 3
4. 다음 명령의 실행 결과에 대한 설명으로 가장 적절한 것은?
[root@ihd ~]# umount /mnt/cdrom
umount: /mnt/cdrom: target is busy.
① 장치가 물리적으로 고장 났다.
② 마운트되어 있는 장치가 사용 중이어서 언마운트되지 않고 있다.
③ 파일 시스템 종류를 지정하지 않아 실패했다.
④ root 권한이 없어 실패했다.
5. ISO 이미지 파일을 장치처럼 마운트할 때 사용하는 옵션은?
① -o ro ② -o loop ③ -o remount ④ -o noauto
6. /etc/fstab에서 장치명(/dev/sdb1) 대신 UUID를 사용하는 이유로 가장 적절한 것은?
① UUID가 입력하기 더 짧기 때문
② 디스크 추가·순서 변경 시에도 식별자가 바뀌지 않기 때문
③ UUID를 쓰면 마운트 속도가 빨라지기 때문
④ 장치명은 root만 사용할 수 있기 때문
7. 스왑 파티션을 /etc/fstab에 등록할 때 마운트 포인트 자리에 들어갈 값으로 알맞은 것은?
① /swap ② none ③ /mnt/swap ④ auto
8. 마운트를 해제하지 않고 읽기 전용에서 읽기·쓰기로 옵션을 변경하려 할 때 사용하는 명령은?
① mount -o remount,rw /data
② umount /data && mount /data만 가능하다
③ mount -a
④ mount -o loop,rw /data
✅ 정답과 해설
1. 정답 ②
장치 → 마운트 포인트 → 파일 시스템 종류 → 옵션 → dump → pass 순서입니다. 특히 마운트 포인트가 종류보다 앞이라는 점, 마지막 두 숫자가 dump → pass 순이라는 점이 자주 뒤바뀌어 출제됩니다.
2. 정답 ②
여섯 번째 필드는 부팅 시 fsck 검사 순서입니다. ①의 dump는 다섯 번째 필드입니다. 두 숫자 필드의 역할을 맞바꾼 것이 가장 흔한 오답 패턴입니다.
3. 정답 ②
루트 파일 시스템만 1을 가지며 가장 먼저 검사됩니다. 나머지 로컬 파일 시스템은 2, 스왑이나 네트워크 파일 시스템은 0(검사 안 함)입니다.
4. 정답 ②
target is busy는 해당 파일 시스템을 사용 중인 프로세스가 있다는 뜻입니다. 가장 흔한 원인은 자신의 현재 디렉터리가 그 안에 있는 것이며, cd /로 빠져나오면 해결됩니다. 다른 프로세스가 원인이면 lsof나 fuser -cu로 찾습니다.
5. 정답 ②
-o loop는 파일을 블록 장치처럼 다루는 루프 장치를 통해 마운트합니다. ①의 ro는 읽기 전용, ③의 remount는 옵션 재적용, ④의 noauto는 부팅 시 자동 마운트 제외입니다.
6. 정답 ②
/dev/sdb1 같은 장치명은 디스크를 추가하거나 인식 순서가 바뀌면 달라질 수 있습니다. 그러면 엉뚱한 파일 시스템이 마운트되거나 부팅이 실패합니다. UUID는 파일 시스템 생성 시 부여되는 고유 식별자라 순서와 무관합니다. blkid로 확인합니다.
7. 정답 ②
스왑은 디렉터리에 붙는 것이 아니라 가상 메모리 영역이므로 마운트 포인트가 없습니다. 그래서 none(또는 swap)을 적고, dump와 pass는 모두 0으로 둡니다.
8. 정답 ①
-o remount는 마운트를 해제하지 않고 옵션만 다시 적용합니다. 루트 파일 시스템처럼 언마운트할 수 없는 대상의 옵션을 바꿀 때 특히 유용합니다. ②는 remount가 있으므로 "만 가능하다"가 틀렸고, ③의 mount -a는 fstab 전체를 마운트하는 명령입니다.
📚 참고 자료
관련 주제
- mkfs
- mount
- umount
- /etc/fstab
- UUID
- blkid
- findmnt
- 마운트 옵션
- 자격증
- 자격증 강의
- 리눅스마스터 2급 완전정복
- 무료강의
- 무료 온라인 강의
- NUGUNA
- 누구나
📚 시리즈 전체 공유
리눅스마스터 2급 완전정복
이 강의가 속한 시리즈는 총 18강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.
댓글
불러오는 중...
