ㅇ ㅂㅇ
파일 시스템 정보를 저장하는 /etc/fstab에 대해 알아 보자
> 구성
- fstab은 파일 시스템의 정보를 저장하는 파일로 mount는 재부팅 시 초기화 되는 데 그것을 원하는 것들만 영구적으로 mount 시키기 위해 사용하며, 해당 파일에 정의 된 정보가 잘못된 경우 부팅시 에러가 발생한다.
>> 보통 서버단에서의 문제는 Disk Fail 같은 문제가 발생시 fstab에 정의된 파일시스템 정보를 확인하다 error가 발생하여 부팅이 되지 않게 된다. 이 때 fstab의 내용을 수정해주어야 하는 데 로그인이 가능하여 로그인 후 vi 명령어로 수정하려고 할 때, 수정이 안되는 상황(부팅시 파일들이 read only 상태)이 발생하는 경우가 있다 이 때 " mount -o remount,rw / "명령어를 실행하여 파일을 Read&Write 가능 상태로 변환하여 fstab을 수정하여 재부팅하면 정상 부팅이 된다.
ㄴ Disk Fail이 확인 되었을 경우 Dell 장비를 제외한 보통 장비들은 fstab의 Fail Disk의 파일시스템 정의 부분을 주석처리 한 뒤 재부팅을 해서 교체해야 함
[파일시스템장치명] [마운트포인트(디렉토리)] [파일시스템종류] [옵션] [Dump관련설정] [파일점검옵션]
#cat /etc/fstab
UUID=46b428be-a4d0-48da-9a8d-7a26b9023869 / ext4 defaults 1 1
/dev/sdb1 /kangkoon1 ext4 defaults 1 2
/dev/sdc1 /kangkoon2 ext4 defaults 1 2
/dev/sdd1 /kangkoon3 ext4 defaults 1 2
/dev/sde1 /kangkoon4 ext4 defaults 1 2
/dev/sdf1 /kangkoon5 ext4 defaults 1 2
/dev/sdg1 /kangkoon6 ext4 defaults 1 2
/dev/sdh1 /kangkoon7 ext4 defaults 1 2
UUID=f1335123-5d3f-40cf-b10d-1eb432382f0a swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
----------------------------------------------------------------------------------------------------------------------
#cat /etc/fstab
UUID=46b428be-a4d0-48da-9a8d-7a26b9023869 /
ext4
defaults 1 1
UUID=1abf40a7-c90f-42a2-aa74-3d60ce489d08 /boot
ext4
defaults 1 2
UUID=f1335123-5d3f-40cf-b10d-1eb432382f0a swap
swap
defaults 0 0
tmpfs
/dev/shm
tmpfs defaults 0 0
devpts
/dev/pts
devpts gid=5,mode=620 0 0
sysfs
/sys
sysfs defaults 0 0
proc
/proc
proc defaults 0 0
위에 두가지의 view가 있는 데, 파일시스템장치명(or Label)으로 정의한 경우와 UUID를 통한 정의
두가지가 있다. 각각 장단점이 있지만, 기본 리눅스 설치시 두번째 그림과 같은 상태로 존재하며 첫번째 그림과 같은 경우 Disk Fail의 발생시, 부팅 과정에서 파일시스템을 체크하는 중에 매칭이 되지 않아 부팅이 되지 않게 된다. 파일 시스템 확인 과정에서 Fail Disk를 확인 초기에 설정시 mkfs(make file system) 과정에서 mkfs.ext4 -L /kangkoon /dev/sdd1 (파일시스템 타입 Label 명칭 파일시스템장치명) 또는 e2label /dev/sdd1 /kangkoon (파일시스템장치명 Label 명칭) 과정을 통해 Label을 지정 할 수 있으며, 또는 blkid 명령어로 UUID를 확인 후 해당 UUID로 변경하여 적용 할 수 있다.
ㄴ 정리 하자면, 파일시스템장치명(or Label) 적용 방식은 Disk Fail 시 해당 Disk를 인식하지 못해 (예를 들면, /dev/sdb1이 fail인 경우 파일시스템 체크 Error 발생 위치가 달라지는 데, /dev/sdb1 부분에서 Error가 발생하거나, 혹은 /dev/sdc1 부터 /dev/sdh1 까지 모두 Error로 인식하는 상태가 발생하거나, 한 단계씩 밀려 정상 인식을 계속 하다가 /dev/sdh1에서 파일시스템체크에 Error가 발생하는 경우가 발생) 한 단계씩 밀려 정상인 장치를 Error로 인식할 가능성이 있음
하지만 UUID를 사용하는 경우 고유한 식별자인 UUID를 이용하여 장치를 구분하여 매칭하기 때문에 정확한 파일시스템 체크를 통해 확실히 고장난 Disk가 무엇인지 확인 할 수 있다.
[파일시스템장치명]
- 파티션의 위치로 fdisk -l 명령어로 확인 가능, Label 사용 및 UUID를 지정하여 사용 가능
[마운트포인트(디렉토리)]
- 파티션이 연결될 디렉토리를 지정
[파일시스템종류]
- 파티션의 파일시스템의 종류를 정의(mkfs 명령어로 정의한 것을 써주어야 함)
[마운트옵션]
- 파일시스템에 맞게 사용되는 옵션을 설정
[Dump관련설정]
- 덤프(백업)가 되어야 하는 지 설정
[파일점검옵션]
- fsck에 의한 파일시스템 체크(무결성 검사) 우선 순위를 정함
fstab 작성 후 mount -a 명령어를 이용하여 fstab에 정의한 것들을 모두 mount 할 수 있다.
> 옵션
- 3개의 항목은 옵션이 따로 없지만 4,5,6번 항목은 옵션이 지정 할 수 있음
네번째 항목
default - rw, nouser, auto, exec, suid 속성을 모두 설정
auto - 부팅시 자동 마운트
noauto - 부팅시 자동 마운트 하지 않음
exec - 실행파일이 실행되는 것을 허용
noexec - 실행파일이 실행되는 것을 불가
suid - SetUID, SetGID 사용 허용
nosuid - SetUID, SetGID 사용 불가
ro - read only 읽기 전용의 파일시스템으로 설정
rw - read & write 읽기/쓰기 전용의 파일시스템으로 설정
user - 일반 사용자 마운트 가능
nouser - 일반 사용자 마운트 불가능, root(최고 사용자)만 가능
quota - Quota 설정 가능
noquota - Quota 설정 불가능
다섯번째 항목
0 - dump 명령으로 dump 가 실행되지 않는 파일시스템
1 - 데이터백업 시, dump 가 가능한 파일시스템
여섯번째 항목
0 - 부팅 시, fsck 가 실행되지 않음 (무결성 검사 생략)
1 - 루트 파일시스템 (우선 순위 1위)
2 - 루트 파일시스템 외의 파일시스템 (루트 파일시스템 이후 순차적으로 검사)