[linux] /etc/fstab

LINUX/기본 2010.01.20 13:55

/etc/fstab은 파일시스템들을 목적에 맞게 사용할 수 있도록 여러가지 정보들을 저장하고 부팅시에 자동으로 적용될 수 있도록 합니다.  이 파일의 정보가 조금이라도 잘못되면 부팅과정의 파일시스템마운트단계에서 멈추어 버립니다.

 

이 파일에 설정되는 정보들은 파일시스템의 장치명들과 마운트포인트(마운트될 위치, 디렉토리)와 파일시스템의 여러가지 옵션들 입니다.

 

이 파일에 설정되는 파일시스템의 정보들은 다음과 같은 것들이 있습니다.

      

       - 해당파일시스템의 장치명(device name)

       - 파일시스템이 마운트될 마운트포인트(디렉토리명)

       - 파일시스템 타입(ext2, ext3, iso9660, swap)

       - 파일시스템을 Read Only로 마운트할 것인가?

       - 파일시스템을 Read, Write로 마운트할 것인가?

       - Quota정책을 적용할 것인가?

       - 일반사용자도 마운트할 수 있도록 허용할 것인가?

       - 부팅시 자동으로 마운트를 할 것인가?

       - SetUID, SetGID 설정을 허용할 것인가?

       - fsck로 파일시스템검사시 검사하는 순서설정

 

위와 같은 정보들이 /etc/fstab에 저장되어 있습니다.

 

그럼, 먼저 /etc/fstab파일의 실제 예를 보도록 하겠습니다.

 

아래는 필자가 사용하고 있는 리눅스서버의 /etc/fstab파일의 두가지 예이며 동일한 파일을 두가지 방법으로 표시한 것입니다.

 

/etc/fstab파일 예 #1 : 파일시스템장치명을 레이블명으로 표시함

 

아래의 파일은 /etc/fstab파일의 내용으로서 파일시스템장치명부분을 레이블명으로 표시한 것입니다.


 

 

/etc/fstab파일 예 #2 : 파일시스템장치명을 장치명으로 표시함

 

그리고 다음 /etc/fstab파일은 위와 동일한 것으로서 파일시스템장치명부분을 장치명으로 표시한 것입니다.




, LABEL=/라고 되어 있는 부분이 /dev/hda5로 표시되어도 무관합니다. 파일시스템 레이블(LABEL) “/” /dev/hda5이기 때문입니다. 그리고 /dev/hda1의 파일시스템 레이블(LABEL) boot이기 때문에 위의 두가지 설정은 동일한 설정으로서 앞의 파일에서는 파일시스템장치명을 레이블명(LABEL, 파일시스템이름)으로 표시한 것일 뿐입니다. 

 

레이블명으로 되어 있는 첫번째 파일의 예는 대부분 리눅스를 설치한 후에 기본설정으로 되어 있는 것이며, 장치명으로 되어 있는 두번째 파일의 예는 첫번째파일을 수정하여 표시한 것입니다.  레이블명으로 되어있는 것 보다는 명확한 파일시스템장치명으로 표시하는 것이 서버관리에 효율적이다라는 것을 알기 때문에 필자는 이렇게 사용하고 있습니다.

 

 

/etc/fstab파일의 구조

 

, 그럼 이 파일의 구조에 대해서 설명하도록 하겠습니다. 

 

먼저, fstab파일의 각행은 모두 6개의 항목으로 구분되어 있으며 6개의 항목은 다음과 같습니다.

 

[파일시스템장치명] [마운트포인트] [파일시스템종류] [옵션] [dump관련설정] [파일점검옵션]

 

위의 형식은 리눅스의 /etc/fstab파일을 나타내는 기본 구조입니다.  /etc/fstab파일을 이해하려면 무엇보다도 위의 각 항목들의 정확한 의미를 이해하는 것이 가장 중요합니다.

 

위의 설정항목들을 하나씩 설명하면 다음과 같습니다.

 

 

 

[파일시스템장치명] : /etc/fstab파일의 첫번째 항목

 

/etc/fstab의 첫번째로 설정되는 항목으로서 파일시스템의 장치명을 설정합니다. , /dev/sda1, /dev/hda2등과 같은 파일시스템 장치명의 자리입니다. 만약 파일시스템에 레이블(LABEL)이 설정되어 있다면 장치명 대신 레이블명으로 지정할 수도 있습니다.

 

 

 

[마운트포인트] : /etc/fstab파일의 두번째 항목

 

파일시스템이 마운트될 위치, 즉 마운트포인트로서 /etc/fstab 2번째 항목입니다.  쉽게 설명해서 / 또는 /home과 같은 이름을 의미합니다. 위의 예에서는 /dev/hda2 /home에 마운트되어 있는 것을 알 수 있으며, 또한 /dev/hdb1 /home1에 마운트되어 있다는 것을 알 수 있습니다. 여기서 /home /home1과 같은 부분을 마운트포인트라고 합니다.

 

 

 

[파일시스템종류] : /etc/fstab파일의 세번째 항목

 

파일시스템의 종류를 설정하는 항목으로 /etc/fstab 3번째 항목입니다. , 앞의 예에서 /dev/hda2 /home에 마운트되며 파일시스템종류로는 ext3을 사용하고 있다는 것을 알 수가 있습니다. 그리고 /dev/hda3 swap파일시스템으로 사용되고 있다는 것도 알 수가 있습니다.  이렇게 3번째 항목에는 파일시스템의 종류를 설정하는 자리이며 여기에 올 수 있는 파일시스템의 종류에는 다음과 같은 것들이 있습니다.

 

 

ext 

초기 리눅스에서 사용되었던 파일시스템으로서 현재는 사용하지 않음.

ext2

현재 많이 사용하고 있는 파일시스템으로서 긴파일명을 지원하는 것이 특징임.

ext3

저널링파일시스템으로서 ext2에 비해 파일시스템 복구기능과 보안부분을 크게 향상시킨 것으로 현재는 ext2보다 ext3을 기본 파일시스템 타입으로 사용하고 있음.

iso9660

CD-ROM의 표준 파일시스템으로서 Read Only로 사용됨.

nfs

Network File System으로서 원격서버를 마운트할 때 사용함.

swap

스왑파일시스템으로서 스왑공간으로 사용되는 파일시스템에 사용됨.

ufs

UNIX FileSystem으로서 UNIX SYSTEM 5계열에서는 표준파일시스템임.

vfat

윈도우 95 98, 그리고 NT를 지원하기 위한 파일시스템.

msdos

MS-DOS파티션을 사용하기 위한 파일시스템

hpfs

HPFS에 대한 파일시스템.

ntfs

윈도우NT 2000 NTFS파일시스템을 사용하기위한 파일시스템.

sysv

유닉스시스템 V를 지원하기 위한 파일시스템

hfs

Mac컴퓨터의 hfs 파일시스템을 지원하기 위한 파일시스템.

ramdisk

RAM디스크를 지원하는 파일시스템

리눅스에서 지원가능한 파일시스템은 매우 많지만, 대체적으로 위의 범주에서 사용됩니다. 그리고 다음은 리눅스에서 지원되는 파일시스템의 종류들입니다. 

 

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

 

이와 같은 파일시스템들을 모두 지원가능하지만 모두 사용하는 것은 아닙니다. 만약 여러분들께서 현재 사용하고 있는 리눅스시스템에서 지원가능한 파일시스템을 확인해 보시려면 /proc/filesystems를 보시기 바랍니다.

 




[옵션] : /etc/fstab파일의 네번째 항목

 

파일시스템을 용도에 맞게 사용하기 위한 파일시스템 속성을 설정하는 옵션으로서 /etc/fstab의 네번째 설정항목입니다.  위의 예에서 /dev/hda2 파일시스템은 ext3으로 포맷되었으며 /home에 마운트되어 defaults속성을 가지고 있습니다. 여기서 defaults속성은 아래 설명을 참조하시기 바랍니다. 다음은 fstab의 네번째 설정항목에 설정가능한 파일시스템의 속성들입니다.

 

defaults
rw, nouser, auto, exec, suid
속성을 모두 가지는 속성임. 가장 일반적인 파일시스템에서 사용되는 속성임.

auto
부팅시 자동마운트됨.

exec
실행파일이 실행되는 것을 허용하는 파일시스템.

suid

SetUID SetGID의 사용을 허용하는 파일시스템

ro

읽기전용 파일시스템으로만 사용됨(Read Only)

rw

읽고 쓰기 파일시스템으로 사용됨(Read, Write)

user

일반 계정사용자들도 마운트를 할 수 있는 파일시스템.

nouser

일반 계정사용자들은 마운트 할 수 없는 파일시스템. root mount할 수 있음.

noauto

부팅시 자동마운트되지 않게함.

noexec

실행파일을 실행되지 못하게 하는 파일시스템.

nosuid

SetUID SetGID의 사용을 허용하지 않는 파일시스템.

usrquota

개별 계정사용자의 쿼타(Quota)설정이 가능한 파일시스템.

 

grpquota

그룹별 쿼타(Quota)설정이 가능한 파일시스템.

 

따라서 위의 예에서 보았던 /dev/hda2 /home2에 마운트되며 defaults라는 속성을 가지고 있으므로 읽고,쓰기가 가능하며(rw), 일반사용자들은 마운트할 수 없으며(nouser), 부팅시 자동마운트가되며(auto), 실행파일의 실행이 가능하며(exec), SetUID SetGID의 설정이 가능(suid)한 파일시스템 속성으로 마운트되어 사용된다는 것을 알 수가 있습니다.

 

 

 

[dump 관련설정]  : /etc/fstab파일의 다섯번째 항목

 

fstab의 다섯번째 설정항목으로서 0 또는 1을 가질 수 있습니다. 1 은 데이터백업등을 위해 dump가 가능한 파일시스템이며, 0 dump명령으로 덤프되지 않는 파일시스템입니다.

 

 

 

[파일점검옵션] : /etc/fstab파일의 여섯번째 항목

 

fstab의 여섯번째 설정항목으로서 0 또는 1, 그리고 2가 올 수 있습니다. 0은 부팅시 실행되는 fsck가 실행되지 않는 설정이며, 1은 루트파일시스템을 의미하며, 2는 루트파일시스템 이외의 파일시스템을 의미합니다. , 여기서 설정된 파일시스템의 순서를 기준으로 부팅시 실행되는 fsck의 순서가 결정됩니다.

 

지금까지의 설명을 바탕으로 앞서 미리 보여드렸던 필자가 사용하고 있는 시스템의 /etc/fstab파일의 설정내용을 중요한 부분만 하나씩 설명드린다면 다음과 같습니다.

 

 

첫번째, /dev/hda5는 레이블명(파일시스템이름)“/”이며 /(루트)에 마운트되며, ext3파일시스템을 가지고 rw, nouser, auto, exec, suid 속성을 가지며(defaults), dump가 가능한 파일시스템이며 부팅시 fsck로 우선점검됩니다.

 

두번째, /dev/hda1은 레이블명이 “/boot”이며 /boot에 마운트되며, ext3파일시스템을 가지고, rw, nouser, auto, exec, suid 속성을 가지고 dump가능하고, 부팅시 fsck에 의해 점검됩니다.

 

세번째, /dev/hda2는 레이블명이 “/home”이며 /home에 마운트가 되고, ext3파일시스템을 가지며, rw, nouser, auto, exec, suid 속성을 가지고, dump가 가능하며, 부팅시 fsck에 의해 점검되는 파일시스템입니다.

 

네번째, /dev/hda3은 레이블명은 없으며, 스왑공간으로만 사용되고, rw, nouser, auto, exec, suid 속성을 가지며, dump가 되지않으며, 부팅시 fsck에 의해 점검되지 않는 파일시스템입니다.

 

 

흔히 /etc/fstab에 설정된 내용들의 의미를 가볍게 넘겨버리는 서버관리자들을 많이 보았습니다.  /etc/fstab의 내용은 서버내에서 가장 기본이 되는 데이터의 저장장치의 파일시스템 속성과 마운트정보를 가지고 있는 것이므로 결코 간과해서는 않되는 부분입니다.

 

이번 장의 내용을 반드시 이해하시고 /etc/fstab의 내용을 정확하게 읽어 낼 수 있는 능력을 가지도록 하십시요. 그렇게 된다면 리눅스서버의 파일시스템이 가슴속 깊이 들어와 매우 친근하게 느껴질 것입니다.

Posted by 토끼구이 달팽이맛나