파일 시스템
: 운영체제가 디스크에 데이터를 저장하고 읽기 위해 구성하는 디스크 관리 체계
: 확장자 사용 유무, 확장자의 파일명의 길이, 파티션의 개수, 크기, 파일복구 등을 관할 하는 시스템
- 포맷
: 파일을 저장하기 위해 디스크를 일정한 크기로 분할하고 주소를 설정하는 작업
: 포맷을 통해 파일 시스템을 지정하여 파일 저장에 대한 규칙 등을 적용할 수 있음
- 기능
: 파일의 생성, 수정, 삭제
: 파일 및 디렉터리의 구조 구성
: 다른 사용자와의 파일 공유를 위한 설정
: 파일 공유를 위한 접근 제어 방법 등 제공
: 데이터 백업 및 복원
: 장치에 대한 액세스 및 제어
: 데이터에 대한 암호화 및 복호화
: 사용자가 접근하기 쉬운 인터페이스 제공
리눅스의 파일 시스템
- ext2
- ext3
- ext4
- nfs
- ReiserFS
- XFS
- JFS
- VFat
- NFS
- smbfs
- CIFS
ext2
: ext의 차기 버전으로 확장성에 염두하고 설계한 파일 시스템
: 블록단위를 1k로 설정할 경우 16GB의 단일 파일 생성이 가능하고 4TB의 파일 시스템을 구성할 수 있음
: 실제로는 응용프로그램과의 호환성 문제로 2GB의 단일 파일 생성까지만 지원
ext3
: 리눅스 커널 2.4.15 버전부터 포함된 ext2의 확장판
: 블록단위를 4k로 설정 했을 경우 2TB의 단일 파일 생성, 16TB의 파일 시스템 구성 가능
: 리눅스의 대표적인 저널링 파일 시스템
: ACL을 통한 접근 제어 지원
- 저널링
: 데이터를 저장하기 전에 저널영역에 데이터의 변경 이력을 저장한 뒤 데이터를 저장하는 기법
: 갑작스러운 오류에 대한 복구 가능
- ACL (Access Control List)
: 파일이나 디렉터리에 대한 접근 권한을 제어하는 시스템
ext4
: 리눅스 커널 2.6.28 부터 정식으로 채택된 ext3의 확장판으로, ext2와 ext3에 대한 호환성을 가짐
: 64비트 기억공간 제한을 없에고 최대 16TB의 단일 파일 생성, 1EB의 파일 시스템 구성 가능
: 대형 파일 시스템을 위한 기능 대폭 강화
XFS
: 리눅스 커널 2.4.25에서 포함된 저널링 파일 시스템
: 최대 8EB의 단일 파일 생성, 16EB의 파일 시스템 구성 가능
: RHEL7의 기본 파일 시스템으로 제공되고 있음
JFS
: GPL로 공개된 IBM의 독자적인 저널링 파일 시스템
VFAT
: MS의 FAT-32와의 호환을 위해 개발된 파일 시스템
NFS
: 네트워크 상에서 파일을 공우하기 위한 파일 시스템
smbfs
: 네트워크 파일 공유를 위한 프로토콜인 SMB를 구현한 파일 시스템
: 현재는 CIFS로 확장됨
CIFS
: 파일 공유를 위한 SAMBA 서버에 사용되는 파일 시스템
리눅스 파일 시스템 관리 명령어
- mount
- umount
- fdisk
- mkfs
- mke2fs
- fsck
- e2fsck
- df
- du
- dd
- stat
- blkid
mount
: 새로운 보조 기억장치나 다른 파일 시스템으로 구성된 디스크를 시스템과 연결
: 디렉터리 개념으로 시스템에 마운트(탑재)시킴
: 마운트 된 디스크의 목록 확인
- 형식
: mount [option] [device] [directory]
> device는 리눅스 시스템에 보이는 /dev/sda 같은 것
> directory를 지정하여 마운트할 위치 지정
- 주요 옵션
: -a
> /etc/fstab에 명시된 파일 시스템을 마운트.
: -t <file system>
> 파일 시스템의 유형을 지정. 옵션 없이 실행하면 /etc/fstab 파일을 참조
: -o <additional>
> 마운트 시 추가적인 설정 적용. 콤마를 통해 구분
- 주요 파일 시스템
: msdos (FAT-16에 대한 마운팅)
: vfat
: ntfs
: ext2
: ext3
: ext4
: xfs
: iso9660 (CD-ROM 혹은 DVD를 마운트)
: smbfs
: cifs
: nfs
: udf (DVD 마운트)
- -o 옵션의 주요 항목
: ro
> 읽기전용으로 마운트
: rw
> 읽기/쓰기 모드로 마운트 (기본값)
: remount
> 파티션 정보가 바뀌었을 때 다시 마운트 수행할 때 사용
: loop
> loop 디바이스 마운트. iso를 마운트해서 사용할 때 사용
: noatime
> 파일이 변경되기 전까지 Access time이 변경되지 않음. 시스템 작업 시간을 줄이기 위해 사용
: username=<user name>
> 사용자 계정 등록
: password=<password>
> 비밀번호 등록
: acl
> ext3 시스템에서 지원하는 ACL을 설정
- 주요 디바이스 파일명
: FDD
> /dev/fd0
: CD-ROM, DVD
> /dev/cdrom, /dev/dvd, /dev/sr0
: IDE HDD
> /dev/hda
: USB, SCSI HDD, SATA HDD
> /dev/sda
umount
: 마운트된 파일 시스템을 해제. 데이터의 손실을 막기 위해서는 장치 해제 시 반드시 실행
- 형식
: umount [option] <device>
: umount [option] <directory>
> device는 리눅스 시스템에 보이는 /dev/sda 같은 것
- 주요 옵션
: -a
> /etc/mtab에 명시된 파일 시스템 언마운트
: -t <file system>
> 언마운트 할 파일 시스템 지정
fdisk
: 디스크의 파티션을 확인하고 추가 및 삭제
: 명령 실행 후 반드시 재부팅 필요
- 형식
: fdisk [option] [device]
- 주요 옵션
: -l [device]
> 지정한 장치의 파티션 테이블 정보 출력
> 장치파일명 미기재 시 /proc/partitions의 정보를 기반으로 파티션 테이블 정보 출력
: -s <partition>
> 특정 파티션을 블록 단위로 출력 (4096kb)
: -v
> fdisk의 명령 버전
- fdisk 실행 후 사용하는 주요 명령
: p
> 현재 디스크의 정보를 출력
: d
> 파티션 삭제
: n
> 파티션 추가
: t
> 파티션 속성 변경 (swap: 82 / Linux: 83 / Linux LVM: 8e / Raid: fd)
: w
> 변경된 파티션 정보 저장 후 종료
: q
> 저장하지 않고 종료
mkfs
: 디스크에 새로운 파일 시스템 생성. 기본값은 ext2
: mkfs.ext2 등으로도 사용 가능
- 형식
: mkfs [option] <device>
- 주요 옵션
: -t <filesystem>
> 생성할 파일 시스템 유형 지정
: -c
> 배드 블록을 체크한 뒤 파일 시스템 생성
: -v
> 결과 상세히 출력
mke2fs
: ext2, ext3, ext4 파일 시스템을 생성하는 명령
: 최근 리눅스 배포판에서 mkfs 명령에 alias된 명령어. 기본값은 ext2
- 형식
: mke2fs [option] <device>
- 주요 옵션
: -j
> 저널링 파일 시스템인 ext3로 생성
: -t <filesystem>
> 파일 시스템 유형 지정
: -b <block size>
> 블록 사이즈 지정 (1024, 2048, 4096)
: -R <raid option>
> RAID 설정. argument=value 형식으로 지정
: -T <usage type>
> i-node의 크기 설정. news (4kb) / largefile (1mb) / largefile4 (4mb)
fsck
: 파일 시스템을 검사하고 복구
: fsck.ext2 같은 형식으로도 사용 가능
- 형식
: fsck [option] <device>
- 주요 옵션
: -a
> 명령 수행에 대한 확인 질문 없이 무조건 수행
: -r
> 명령 수행에 대해 단계별로 질문 후 수행
: -A
> /etc/fstab에 정의 되어 있는 모든 파일 시스템을 체크
: -P
> -A 옵션과 함께 사용하여 루트 파일 시스템을 다른 파일 시스템과 병렬로 함께 체크
: -R
> -A 옵션과 함께 사용하여 루트 파일 시스템에 대해서는 체크하지 않음
: -N
> 실행하지 않고 실행될 사항들을 출력
: -T
> 검사할 때 제목을 보여주지 않음
: -s
> 동작을 시리얼화 하여 대화형 모드로 실행
: -V
> 실행되는 명령들을 자세히 출력
: -v
> 버전 정보 출력
: -t <file system>
> 점검할 파일 시스템 유형 지정. -A 옵션이 있는 경우 /etc/fstab에서 파일 시스템 유형이 맞는 것만 검사
> file system 앞에 no를 붙이면 해당 파일 시스템을 제외한 모든 시스템을 점검
e2fsck
: ext2, ext3, ext4를 검사. fsck 명령에 alias된 명령어
- 형식
: e2fsck [option] <device>
- 주요 옵션
: -n
> 질문에 대해 모두 no로 처리
: -y
> 질문에 대해 보드 yes로 처리
: -c
> 배드 블록 체크
: -f
> 깨끗한 파일까지 전부 강제로 검사
df
: 현재 마운트된 디스크들의 사용량, 크기, 가용량 등에 대한 정보 출력
- 형식
: df [option]
- 주요 옵션
: -h (--human-readable)
> 용량 단위를 보기 좋은 단위로 출력
: -k
> 킬로 바이트 단위로 출력 (기본값)
: -m (--print-type)
> 메가 바이트 단위로 출력
: -T
> 각 파티션에 대한 파일 시스템 유형 출력
: -i
> i-node 사용량 출력
du
: 파일이나 디렉터리들이 디스크에서 차지하고 있는 크기 출력
- 형식
: du [option] [files]
- 주요 옵션
: -h
> 용량 단위를 보기 좋은 단위로 출력
: -b
> 바이트 단위로 출력
: -k
> 킬로 바이트 단위로 출력
: -m
> 메가 바이트 단위로 출력
: -a
> 현재 디렉터리에 존재하는 모든 파일에 대한 각각의 크기 출력
: -s (--summarize)
> 파일들의 전체 크기 출력
dd
: Data dumper의 약자로, 파일의 데이터 포맷을 변경
: 현재 디스크의 형상을 이미지 형태로 백업할 때 주로 사용
: 텍스트 파일의 문자들을 대/소문자로 변경할 때도 사용
: 부팅 또는 설치 디스크를 만들때 사용
: 디스크나 파티션 단위로 백업할 때 사용
: 스왑 파일을 만들 때 사용
: 디스크를 초기화 시킬때 사용
- 형식
: dd if=<input file> [input option] of=<output file> [output option]
- 주요 옵션
: conv=
> input file에서 변환하는 데이터 유형. input option
: bs=
> ouput file의 블록 사이즈 설정. ouput option
: count=
> ouput file의 변환 되는 블록 수. ouput option
: skip=
> input file의 시작 블록 번호 지정. ouput option
stat
: 파일 또는 파일 시스템의 정보를 출력
- 형식
: stat [options] <file>
- 주요 옵션
: -f (--file-system)
> 해당 파일이 속한 파일 시스템 출력
: -L (--dereference)
> 심볼릭 파일에 대해 원본 파일 정보 출력
: --print=<type>
> 출력할 형식 지정. 파일이름 (%n) / 소유자 이름 (%U) / 소유자 그룹 (%G) / SeLinux 정보 (%C) / 마지막 변경 시간 (%z)
blkid
: 블록 장치의 속성 정보 출력. UUID와 LABEL 등을 알 수 있음
- 형식
: blkid [option] [device]
- 주요 옵션
: -L
> 라벨 명으로 블록 장치 탐색 시 사용
: -U
> UUID 명으로 블록 장치를 찾을 때 사용
리눅스 파일 시스템 관련 파일
- /etc/fstab
- /etc/mtab
/etc/fstab
: 부팅 시 마운트할 파티션 정보가 수록된 파일
: 파티션 정보를 변경했거나 디스크를 추가한 경우 이 파일에 등록해야 부팅 시 자동으로 마운트 됨
- 기본구조
UUID/LABEL mount point filesystem mount option dump cycle fsck ordered
- 항목별 설명
: UUID/LABEL
> 디스크의 고유명 혹은 표기명. 네트워크로 연결된 경우 호스트명:디렉터리 형식으로 표기
: mount point
> 마운트될 디렉터리 위치
: filesystem
> 마운트 시 파일 시스템
: mount option
> 마운트 될때의 옵션
: dump cycle
> dump 명령으로 백업 시의 덤프 사용주기. 하루 단위로 설정
: fsck orderd
> 부팅 시 파일 시스템을 점검하는 fsck의 순서. 루트 파일 시스템을 1로 설정
> 0으로 설정 시 점검하지 않음
- mount option의 주요 옵션
: defaults
> rw / suid / dev / exec / auto / nouser / async
: auto
> 부팅 시 미디어 존재 시 자동으로 -a 옵션으로 마운트
: noauto
> 부팅 시 자동 마운트 하지 않음. -a를 제외한 옵션으로 마운트만 가능
: user
> 로컬에서 일반 사용자가 마운트 가능
: owner
> 장치 소유자가 마운트 권한 부여
: nofail
> 해당 장치 파일이 존재하지 않아도 에러로 처리하지 않음
: uqouta / usrquota
> 사용자에 대한 디스크 쿼터 사용
: gquota / grpquota
> 그룹에 대한 디스크 쿼터 사용
: noquota
> 사용자에 대해 디스크 쿼터 사용 안함
: nosuid
> SUID나 SGID 설정안함
: nodev
> 파티션에서 문자나 특별한 장치 허용 안함
: noexec
> 파티션에서 실행 파일 실행 안됨
: suid
> SUID나 SGID 사용 허가
: ro
> 읽기 전용으로 마운트
: rw
> 읽기 쓰기로 마운트
: async
> 파일을 비동기적으로 관리
: acl
> ACL 사용
/etc/mtab
: 현재 시스템에 마운트 되어있는 파일 시스템 정보 기재
: blkid 명령어에서 참조
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 Disk Quota 설정 (0) | 2022.10.10 |
---|---|
리눅스 Disk Swap 설정 (0) | 2022.10.10 |
리눅스 파일 권한 관리 (0) | 2022.10.08 |
리눅스 시스템 정보 조회 및 관리 (0) | 2022.10.08 |
리눅스 그룹 관리 (0) | 2022.10.07 |