fstab(파일 시스템 테이블의 약자)은 유닉스 및 유닉스 계열 컴퓨터 시스템의 /etc 디렉터리에서 일반적으로 발견되는 시스템 파일이다. /etc/fstab 파일은 util-linux 패키지의 유틸리티(예: mount 및 findmnt)에서 사용되지만, 이에 국한되지 않고 systemd에서 systemd-fstab-generator를 통해 부팅 시 자동 마운트를 위해 처리되기도 한다. fstab 파일은 일반적으로 사용 가능한 모든 디스크 파티션과 기타 디스크 기반이 아닐 수도 있는 파일 시스템 및 데이터 소스 유형을 나열하고, 이들이 어떻게 초기화되거나 더 큰 파일 시스템 구조에 통합될지를 나타낸다.
fstab 파일은 mount 명령에 의해 읽히는데, 이 명령은 부팅 시 자동으로 실행되어 전체 파일 시스템 구조를 결정하고, 이후 사용자가 mount 명령을 실행하여 해당 구조를 수정할 때 다시 읽힌다. fstab 파일을 적절하게 생성하고 유지하는 것은 시스템 관리자의 의무이다.
fstab은 기본적인 시스템 구성에 사용되지만, 다른 용도로는 자동 마운트 메커니즘으로 대체되었다.
이 파일은 일부 유닉스 버전에서 다른 이름을 갖는다. 예를 들어, 솔라리스 시스템에서는 /etc/vfstab에 있다.
fstab 파일은 디스크 파티션 및 기타 파일 시스템과 작동하는 프로그램에 의해 읽히며 자동으로 유지 관리되지 않는다. 대신 시스템 관리자 또는 때로는 운영 체제 설치 프로그램에 의해 작성된다. 그러나 일부 관리 도구는 fstab을 자동으로 구축하고 편집하거나, 그래픽 편집기 역할을 할 수 있다.
현대 리눅스 시스템은 fstab에 의존하는 대신 udev를 자동 마운터로 사용하여 장치(핫 스와핑과 같은 MP3 플레이어나 디지털 카메라)의 핫 스와핑을 처리한다. pmount와 같은 프로그램은 일반 사용자가 해당 fstab 항목 없이 파일 시스템을 마운트 및 언마운트할 수 있도록 허용한다. 전통적인 유닉스는 항상 특권 사용자(루트 사용자 및 wheel 그룹의 사용자)가 해당 fstab 항목 없이 장치를 마운트하거나 언마운트할 수 있도록 허용했다.
다음은 일반적인 리눅스 시스템의 fstab 파일 예시이다.
# device-spec mount-point fs-type options dump pass
LABEL=/ / ext4 defaults 1 1
/dev/sda6 none swap defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
# Removable media
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,ro 0 0
# NTFS Windows 7 partition
/dev/sda1 /mnt/Windows ntfs-3g quiet,defaults,locale=en_US.utf8,umask=0,noexec 0 0
# Partition shared by Windows and Linux
/dev/sda7 /mnt/shared vfat umask=000 0 0
# Mounting tmpfs
tmpfs /mnt/tmpfschk tmpfs size=100m 0 0
# Mounting cifs
//cifs_name/store /store/pingu cifs credentials=/root/smbpass.txt 0 0
# Mounting NFS
nfs_name:/store /store nfs rw 0 0
fstab에 있는 레코드의 순서는 fsck(8), mount(8), umount(8)가 fstab을 순차적으로 반복하고 정의된 순서로 마운트하기 때문에 중요하다.
빈 줄과 "#"으로 시작하는 주석 줄은 무시된다.
각 행 내의 공백 또는 탭으로 구분된 필드는 특정 순서로 나타나야 한다:
none으로 설정된다.defaults는 파일 시스템 유형에 따라 미리 결정된 옵션 집합을 나타낸다.마지막 두 필드에 값이 없으면 0으로 해석된다. 필요한 경우 첫 번째, 두 번째 및 네 번째 필드의 공백 문자는 40으로 표시된다.
auto / noautoauto 옵션을 사용하면 장치는 부팅 시 또는 mount -a 명령이 실행될 때 자동으로 마운트된다. auto는 기본 옵션이다. 장치가 자동으로 마운트되지 않으려면 /etc/fstab에서 noauto 옵션을 사용한다. noauto를 사용하면 장치는 명시적으로만 마운트할 수 있다.dev / nodevexec / noexecexec는 파티션에 있는 바이너리가 실행되도록 허용하고, noexec는 그 반대이다. noexec는 /var처럼 바이너리가 없는 파티션에 유용하거나, 사용자가 시스템에서 실행하고 싶지 않은 바이너리가 포함된 파티션, 또는 윈도우 파티션의 경우처럼 시스템에서 실행될 수 없는 바이너리가 포함된 파티션에 유용할 수 있다.rw / rorw로 정의하면 플로피 디스크나 NTFS 파티션과 같이 기본적으로 읽기 전용으로 설정되는 파일 시스템의 일부 문제를 완화할 수 있다.sync / asyncsync는 동기적으로 수행됨을 의미한다. fstab 예시를 보면 플로피 디스크에 사용된 옵션이다. 이는 예를 들어 파일이 플로피 디스크에 복사될 때, 복사 명령이 실행되는 동시에 변경 사항이 물리적으로 플로피 디스크에 기록됨을 의미한다.suid / nosuiduser / users / nouseruser는 모든 사용자가 파일 시스템을 마운트할 수 있도록 허용한다. 이는 명시적으로 재정의되지 않는 한 noexec, nosuid, nodev를 자동으로 의미한다. nouser가 지정되면 루트만 파일 시스템을 마운트할 수 있다. users가 지정되면 users 그룹의 모든 사용자가 볼륨을 언마운트할 수 있다.defaultsrw,suid,dev,exec,auto,nouser,async와 동일하다. 최신 Red Hat 기반 시스템은 루트 파일 시스템에서 ACL 지원을 기본으로 설정하지만, 사용자가 생성한 ext3 파일 시스템에서는 설정하지 않는다. XFS와 같은 일부 파일 시스템은 기본적으로 ACL을 활성화한다. 기본 파일 시스템 마운트 속성은 /etc/fstab에서 재정의할 수 있다.owner (리눅스 전용)nofailatime / noatime / relatime / strictatime (리눅스 전용)mount가 지원하는 특정 파일 시스템에 대한 많은 옵션이 있다. 아래에는 일반적으로 사용되는 일부가 나열되어 있다. 전체 목록은 mount 설명서에서 찾을 수 있다. 이들은 리눅스용이며, 전통적인 유닉스 계열 시스템은 일반적으로 유사한 기능을 제공했지만 약간 다른 구문이나 형식을 가졌다.
check=[none, normal, strict]debugsb=nn은 파일 시스템의 슈퍼블록으로 사용되어야 하는 블록이다.check=[r(elaxed), n(ormal), s(trict)]mount(8)을 참조하라.conv=[b(inary), t(ext), a(uto)]mount(8)을 참조하라.windows_nameswindows_names는 볼륨에 허용되는 문자 집합을 Windows에서 허용하는 문자만으로 제한한다. FAT/NTFS가 가장 일반적인 사용 사례이지만, 이 기능은 특정 파일 시스템 유형에만 국한되지 않는다.uid=n, gid=numask=nnn, dmask=nnn, fmask=nnnfstab 파일에 대한 더 자세한 정보는 리눅스 fstab의 맨 페이지에서 찾을 수 있으며, 다른 시스템의 경우 아래를 참조하라.
addr=ipip는 유효한 IP 주소이다.