모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

18강 / 전체 18강

파일 시스템의 구성과 관리 ② — mkfs·mount와 /etc/fstab

14분 읽기 조회 0

[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/sdb1ext 계열 전용 도구
mkfs.xfs /dev/sdb1XFS 생성
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 nosuidSetUID·SetGID 무시(16강 참조)
-o nodev장치 파일 인식 안 함
-o loopISO 이미지 등 파일을 장치처럼 마운트
-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 등(쉼표로 나열)
5dump백업 대상 여부 — 0=안 함, 1=함
6pass(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강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...