본문 바로가기
OS 운영체제/LINUX

/etc/fstab (mount 설정 파일)

by yororing 2024. 5. 2.

00 개요

  • 리눅스에는 여러 디렉토리가 있다 (참조: 2024.03.20 - [LINUX/디렉토리] - Linux 디렉토리 구조 )
  • 그 중 구성 (Configuration) 파일들이 모여있는 etc 폴더 안에는 fstab이라는 파일이 있는데 이 파일은 mount 설정 파일로서 여러 파일 시스템에 대한 정적 정보를 담고 있다

01 fstab 파일

0. 용어

1) mount

  • 컴퓨터 과학에서 mount란 저장 장치에 접근할 수 있는 경로를 디렉토리 구조에 편입시키는 작업을 의미
  • 쉽게 말해 어떠한 것을 Available 한 상태로 준비하는 것 

2) NFS

  • 'Network File System'의 약자
  • 분산된 파일 시스템 프로토콜 (통신규약)
  • 클라이언트 컴퓨터의 사용자가 로컬 저장소와 유사하게 컴퓨터 네트워크 상의 파일에 액세스할 수 있도록 허용하는 프로토콜

1. fstab 파일이란?

  • Mount 설정 파일
  • 파일 시스템에 대한 정적 정보(static information about the filesystems)를 담고 있음
  • 각 파일 시스템은 별도의 줄에 설명되며, 각 줄의 필드는 탭 또는 공백으로 구분
  • '#'으로 주석 처리, 공백 줄은 무시됨
  • fstab의 레코드 순서 중요 - fsck(8), mount(8), umount(8)는 fstab을 순차적으로 반복하여 작업을 수행하기 때문

2. fstab  내용

# /etc/fstab
# Created by anaconda on Thu Apr 18 10:35:55 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root                        /        xfs     defaults    0 0
UUID=0224acdc-d77c-46db-9a36-dacdb094ea19    /boot    xfs     defaults    0 0
/dev/mapper/rhel-swap                        swap     swap    defaults    0 0
10.0.0.26:/opt/LSF-10.1_RHEL7.9              /opt/LSF-10.1_RHEL7.9 nfs auto 0 0
  • 각 줄은 6개의 필드로 구성됨
  • 각 필드는 탭('    ') 또는 공백(' ')으로 구분
  • 다음과 같은 정보를 담음

1) 첫번째 필드: fs_spec 

  • : the block special device or mount될 원격 파일시스템 (remote filesystem to be mounted)
    • For ordinary mounts it will hold (a link to) a block  special  device  node  (as  created  by mknod(8)) for the device to be mounted, like `/dev/cdrom' or `/dev/sdb7'
    • For NFS (Network File System) mounts one will have <host>:<dir>, e.g., `knuth.aeb.nl:/'
    • For procfs, use `proc'
  • Instead of giving the device explicitly, one may  indicate  the  filesystem  that  is  to  be mounted by its UUID or LABEL (cf.  e2label(8) or xfs_admin(8)), writing LABEL=<label> or UUID=<uuid>, e.g., 'LABEL=Boot' or 'UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'
  • It's also possible to use PARTUUID= and PARTLABEL=. These partitions identifiers are supported for GUID Partition Table (GPT) and MAC partition table only
  • See blkid(8) or lsblk(8) for more details about devices identifiers
  • Note  that  mount(8)  uses  UUIDs as strings. The string representation of the UUID should be based on lower case characters

2) 두번째 필드: fs_file

  • : mount 될 파일시스템의 목적 경로 (mount point for the filesystem)
  • For swap partitions, this field should be specified as 'none'
  • If the name of the mount point contains spaces these can be escaped as '\040'

3) 세번째 필드: fs_vfstype

  • : 파일시스템의 type
  • Linux supports lots  of  filesystem  types:
    • adfs,  affs,  autofs,  coda,  coherent, cramfs, devpts, efs, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs,  proc,  qnx4,  reiserfs,  romfs,  smbfs,  sysv, tmpfs,  udf,  ufs,  umsdos,  vfat,  xenix,  xfs,  and  possibly others (For more details, see mount(8))
  • For the filesystems currently supported by the running kernel, see /proc/filesystems
  • An entry swap denotes a file or partition to be used for swapping, cf. swapon(8). An entry none is useful for bind or move mounts.
  • mount(8)  and  umount(8)  support  filesystem subtypes
    • The subtype is defined by '.subtype' suffix (e.g., 'fuse.sshfs')
    • recommended to use subtype notation rather than add any prefix to the first fstab field (e.g., 'sshfs#example.com' is deprecated)

4) 네번째 필드: fs_mntops

  • 파일시스템과 관련된 mount options
  • 형식: a comma separated list of options
  • contains at least the type of mount plus any additional options appropriate to the filesystem type
  • For documentation on the available mount options, see mount(8)
  • For documentation on the available swap options, see swapon(8)
  • 기본 옵션:
    • defaults: use default options: rw, suid, dev, exec, auto, nouser, and async
    • noauto: do not mount when "mount -a" is given (e.g., at boot time)
    • user: allow a user to mount
    • owner: allow device owner to mount
    • comment: or x-<name> for use by fstab-maintaining programs
    • nofail: do not report errors for this device if it does not exist

5) 다섯번째 필드: fs_freq

  • : used for these filesystems by the dump(8) command to determine which filesystems need to be dumped
  • If the fifth field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be dumped
  • dump
    • examines files on a file system and  determines  which files need to be backed up. These files are copied to the given disk, tape or other storage medium for safe keeping.
    • 덤프는 컴퓨터 주기억장치나 레지스터, 데이터, 프로그램의 전체 또는 일부 자료에 기억시킨 내용을 보조기억장치 등 기록 매체에 복사 또는 전이하는 조작을 의미
    • easy definition: 기억장치의 내용을 전부/일부를 인쇄하여 출력하는 것으로 출력을 꼭 종이로 하는 것이 아니라 주기억장치에서 보조기억장치에 복사하는 것을 의미
    • 주로 복잡한 프로그램이나 S/W 사업할 때 사용됨

6) 여번째 필드: fs_passno

  • : used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time
  • The root filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2
  • Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware
  • If the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked

참조

  1.  man fstab
  2. (mount) https://ko.wikipedia.org/wiki/마운트#:~:text=마운트(mount)는%20컴퓨터%20과학,를%20사용하는%20것을%20말한다.
  3. (mount) https://blog.naver.com/dbwodlf3/220980418851
  4. (NFS) https://en.wikipedia.org/wiki/Network_File_System
  5. (dump) https://man.freebsd.org/cgi/man.cgi?query=dump&sektion=8&apropos=0&manpath=FreeBSD+8.0-RELEASE
  6. (dump) https://ohdiki1314.tistory.com/67
  7.