Linux /etc/fstab 파일시스템 마운트 설정
시스템 부팅 시 자동으로 파일시스템을 마운트하기 위한 /etc/fstab 설정 템플릿입니다. ext4 루트 파티션, 스왑, NFS, CIFS/SMB, tmpfs 등 다양한 마운트 유형과 UUID 기반 설정을 포함합니다.
# /etc/fstab — 파일시스템 마운트 설정 파일
# 수정 후 검증: sudo mount -a (오류 없이 실행되면 정상)
# UUID 확인 명령어: lsblk -f 또는 blkid
#
# ┌─────────────────────────────────────────────────────────────────────┐
# │ 컬럼 구조 (총 6개 필드, 공백/탭으로 구분) │
# │ <장치/UUID> <마운트포인트> <파일시스템> <옵션> <dump> <pass> │
# │ │
# │ dump : 0=백업 제외, 1=dump 유틸리티로 백업 대상 │
# │ pass : 0=fsck 건너뜀, 1=루트(최우선), 2=기타 파티션 순차 검사 │
# └─────────────────────────────────────────────────────────────────────┘
# ──────────────────────────────────────────────────
# 루트 파일시스템 (ext4)
# UUID를 사용해야 디바이스명(/dev/sda1) 변경에 영향받지 않음
# errors=remount-ro: 오류 발생 시 읽기 전용으로 재마운트 (데이터 보호)
# ──────────────────────────────────────────────────
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 / ext4 defaults,errors=remount-ro 0 1
# ──────────────────────────────────────────────────
# /boot 파티션 (별도 파티션으로 분리한 경우)
# noatime: 파일 접근 시간 기록 안 함 → 쓰기 I/O 감소, SSD 수명 향상
# ──────────────────────────────────────────────────
UUID=b2c3d4e5-f6a7-8901-bcde-f12345678901 /boot ext4 defaults,noatime 0 2
# ──────────────────────────────────────────────────
# EFI 시스템 파티션 (UEFI 부팅 환경)
# vfat 파일시스템, 부트로더(grub/systemd-boot) 파일 저장
# ──────────────────────────────────────────────────
UUID=C3D4-E5F6 /boot/efi vfat umask=0077 0 1
# ──────────────────────────────────────────────────
# 스왑 파티션
# pri=10: 스왑 우선순위 (값이 높을수록 먼저 사용, 여러 스왑 장치 시 유용)
# ──────────────────────────────────────────────────
UUID=c3d4e5f6-a7b8-9012-cdef-123456789012 none swap sw,pri=10 0 0
# 스왑 파일 방식 (파티션 대신 파일로 스왑 사용)
# /swapfile none swap sw 0 0
# ──────────────────────────────────────────────────
# 데이터 파티션 (대용량 데이터 저장용, ext4)
# noatime,nodiratime: 접근 시간 기록 비활성화 (성능 최적화)
# commit=60: 60초마다 저널 커밋 (기본값 5초, 쓰기 부하 감소)
# ──────────────────────────────────────────────────
UUID=d4e5f6a7-b8c9-0123-defa-234567890123 /data ext4 defaults,noatime,nodiratime,commit=60 0 2
# ──────────────────────────────────────────────────
# NFS 마운트 (네트워크 파일시스템)
# nfs4: NFSv4 사용 (보안/성능 개선)
# rsize/wsize: 읽기/쓰기 블록 크기 (네트워크 MTU에 맞게 조정)
# hard: 서버 무응답 시 무한 재시도 (soft는 오류 반환)
# timeo=900: NFS 타임아웃 (1/10초 단위, 900 = 90초)
# retrans=5: 타임아웃 시 재시도 횟수
# _netdev: 네트워크 사용 가능 후 마운트 (부팅 순서 보장)
# ──────────────────────────────────────────────────
192.168.1.100:/exports/shared /mnt/nfs-share nfs4 rsize=131072,wsize=131072,hard,timeo=900,retrans=5,_netdev,noatime 0 0
# ──────────────────────────────────────────────────
# CIFS/SMB 마운트 (Windows 공유 폴더 또는 Samba)
# credentials: 인증 정보를 별도 파일에 저장 (보안상 권장)
# /etc/samba/credentials 파일 내용 예:
# username=myuser
# password=mypassword
# domain=WORKGROUP
# uid/gid: 마운트 후 소유자 지정 (CIFS는 POSIX 권한 미지원)
# file_mode/dir_mode: 파일 및 디렉토리 기본 권한
# vers=3.0: SMB 버전 지정 (2.1, 3.0, 3.1.1)
# ──────────────────────────────────────────────────
//192.168.1.200/share /mnt/smb-share cifs credentials=/etc/samba/credentials,uid=1000,gid=1000,file_mode=0644,dir_mode=0755,vers=3.0,_netdev 0 0
# ──────────────────────────────────────────────────
# tmpfs (RAM 기반 임시 파일시스템)
# 재부팅 시 내용이 사라짐, 고속 임시 저장에 사용
# size=2G: 최대 2GB RAM 사용 (물리 RAM의 50% 이하 권장)
# mode=1777: /tmp와 동일한 sticky bit 권한
# ──────────────────────────────────────────────────
tmpfs /tmp tmpfs defaults,size=2G,mode=1777,nosuid,nodev 0 0
# 애플리케이션 캐시용 tmpfs (서비스 재시작 시 캐시 초기화 허용)
tmpfs /var/cache/app tmpfs defaults,size=512M,uid=1000,gid=1000,mode=0700 0 0
# ──────────────────────────────────────────────────
# 바인드 마운트 (특정 디렉토리를 다른 위치에 마운트)
# bind: 디렉토리를 다른 경로에 동일하게 노출
# ──────────────────────────────────────────────────
/opt/my-app/uploads /var/www/html/uploads none bind,ro 0 0