본문 바로가기
일반IT/리눅스

📂 리눅스 부팅의 절대 지도: /etc/fstab 완벽 해부와 트러블슈팅

by gasbugs 2025. 12. 20.

안녕하세요! 서버 엔지니어와 리눅스 사용자 여러분.

리눅스 시스템이 부팅될 때 가장 먼저 참조하는 '보물 지도'가 있다는 사실, 알고 계셨나요? 바로 /etc/fstab 파일입니다. 이 파일에 점 하나만 잘못 찍혀도 서버는 부팅되지 않고 '응급 모드(Emergency Mode)'라는 무서운 화면을 띄우게 됩니다.

오늘은 실제 현업에서 사용되는(그리고 약간의 오류가 숨어있는!) /etc/fstab 파일 예시를 뜯어보며, 파일 시스템 마운트의 원리부터 실무 팁, 그리고 치명적인 실수 예방까지 완벽하게 정리해 드리겠습니다. 약 10분만 투자해서 이 파일을 정복해 보세요!

 


1. 🔍 /etc/fstab이란 무엇인가요?

File System Table의 약자인 이 파일은, 리눅스 커널에게 "어떤 저장 장치를, 어디에, 어떤 방법으로 연결(Mount)할지" 알려주는 설정 파일입니다.

우리가 윈도우에서 USB를 꽂으면 자동으로 D: 드라이브가 잡히는 것과 달리, 리눅스는 이 파일에 명시된 규칙에 따라 부팅 시점에 하드디스크를 디렉터리에 연결합니다.

기본 문법 (6개의 필드)

이 파일은 공백(Space)이나 탭(Tab)으로 구분된 6개의 필드로 구성됩니다.

순서 필드명 의미 예시
1 Device 마운트할 장치 (UUID 또는 경로) /dev/sda1
2 Mount Point 연결될 디렉터리 위치 /, /home
3 FS Type 파일 시스템 종류 ext4, xfs
4 Options 마운트 옵션 defaults
5 Dump 백업(Dump) 유무 (0 or 1) 0 (안함)
6 Pass 부팅 시 무결성 검사 순서 1 (1순위)

2. 📝 실제 코드 라인별 심층 분석

자, 이제 독자님이 가져오신 실제 코드를 한 줄씩 현미경으로 들여다보겠습니다. 여기에는 모범 사례위험한 설정이 공존하고 있습니다.

✅ Line 1: 루트 파티션 (모범 사례)

/dev/disk/by-uuid/8ee8caa8-cef0...  /  ext4  defaults  0  1
  • 장치명 (UUID): /dev/sda1과 같은 물리적 장치명 대신 UUID(Universally Unique Identifier)를 사용했습니다.
    • 왜 이게 좋을까요? 하드디스크 케이블 위치를 바꾸거나 USB를 추가하면 /dev/sdb가 /dev/sda로 바뀌어 부팅이 안 될 수 있습니다. 하지만 UUID는 디스크 고유의 주민등록번호라 절대 변하지 않습니다. 가장 권장되는 설정입니다.
  • 마운트 포인트: / (시스템의 뿌리가 되는 최상위 디렉터리)
  • 타입: ext4 (리눅스의 표준 파일 시스템)
  • Pass: 1 (루트 파티션이므로 가장 먼저 디스크 검사를 수행합니다.)

✅ Line 2: 스왑 파일 (최신 트렌드)

/swap.img  none  swap  sw  0  0
  • 장치명: /swap.img
    • 과거에는 스왑(가상 메모리)을 위해 별도의 파티션을 쪼개서 썼습니다. 하지만 최근(클라우드, 가상화 환경)에는 이렇게 파일 형태로 스왑을 관리합니다. 용량이 부족하면 파일 크기만 늘리면 되니 훨씬 유연하죠.
  • 마운트 포인트: none (스왑은 특정 폴더에 연결되는 게 아니라 커널이 메모리처럼 쓰기 때문에 위치가 없습니다.)
  • 타입: swap
  • 옵션: sw (스왑으로 활성화한다는 뜻입니다.)

 

⚙️ Line 3: Vagrant 섹션 (자동화의 흔적)

#VAGRANT-BEGIN
...
#VAGRANT-END
  • 이 서버는 Vagrant라는 도구로 생성된 가상머신입니다.
  • 이 주석 사이의 내용은 사람이 수정하면 안 됩니다. Vagrant가 호스트 컴퓨터(내 PC)와 폴더를 공유하기 위해 설정을 자동으로 넣었다 뺐다 하는 영역이기 때문입니다.

3. 🛠️ 실전! fstab 수정 시 반드시 지켜야 할 3계명

fstab은 시스템의 심장과 연결된 혈관과 같습니다. 잘못 건드리면 치명적입니다. 안전하게 수정하는 방법을 알려드립니다.

1️⃣ 수정 전 백업은 필수

항상 원본 파일을 복사해 두세요.

sudo cp /etc/fstab /etc/fstab.bak

2️⃣ UUID를 확인하는 방법

/dev/vdb1 대신 안전한 UUID를 쓰고 싶다면 blkid 명령어를 사용하세요.

$ sudo blkid
/dev/sda1: UUID="8ee8caa8-..." TYPE="ext4"
/dev/vdb1: UUID="1234abcd-..." TYPE="ext4"  <-- 이 값을 복사해서 쓰세요!

3️⃣ 재부팅 전 '가상 마운트' 테스트 (가장 중요 ⭐)

fstab을 수정하고 무작정 재부팅 하지 마세요! 아래 명령어로 문법이 맞는지 미리 확인해야 합니다.

sudo mount -a
  • 이 명령어를 쳤는데 아무 메시지 없이 조용하다? 👉 성공 (문법 오류 없음)
  • 에러 메시지가 뜬다? 👉 실패 (fstab을 다시 열어서 오타를 수정하세요)
    • 만약 아까 분석한 /dev/vdb1 라인을 그대로 두고 이 명령을 쳤다면, 즉시 에러가 발생했을 겁니다.

4. 🚀 마무리하며

오늘 우리가 살펴본 파일은 단순한 텍스트 몇 줄이 아니었습니다.

  1. UUID를 통한 안정적인 시스템 구성
  2. Swap File을 이용한 유연한 메모리 관리

여러분의 서버 /etc/fstab은 안녕한가요? 지금 바로 터미널을 열고 확인해 보세요!

여러분의 안전하고 견고한 서버 운영을 응원합니다. 🛡️