파일 시스템
-운영체제가 파일을 시스템의 디스크상에 구성하는 방식
-/proc도 파일 시스템의 범위에 포함한다.
리눅스 파일 시스템 구조
-Super block-Group descriptor-Block bitmap-Inode bitmap-Inode table-Data block
1. Super block
-파일 시스템 관련 메타 데이터 저장
-블록의 크기, 블록의 총 개수, inode 개수 등
2. Group descriptor table
-각 Block group을 관리하는 정보 저장
-Block/inod bitmap의 블록 번호 등
3. Block bitmap
-그룹 내 각 블록의 사용 상태를 bit 형태로 저장
4. inode
-각 파일마다 할당되는 정보
-파일에 대한 메타데이터, 데이터 블록 포인터를 저장
리눅스 전용 디스크 기반 파일 시스템
1. ext
-리눅스 초기 파일 시스템, 호환성이 없음, 2GB의 데이터와 최대 255까지의 파일명 지원
2. ext2
-쉽게 호환되도록 설계
3. ext3
-저널링을 지원
-Access Control List (ACL)을 통한 접근 제어를 지원
4. ext4
-파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당 -> 단편화를 줄이는 방향이다.
-16TB의 파일을 지원 (멀티 레벨 블록)
저널링 파일 시스템
-데이터를 디스크에 쓰기 전에 로그를 남겨, 비정상적인 종료 시 해당 로그를 이용하여 빠르면서도 안정적인 파일 시스템 복구가 가능하다.
-저널 기능이 없으면 fsk에 의해 관리되는 슈퍼 블록, 비트 맵, 아이노드 등을 모두 검사해야 하기 때문에 시간이 오래 걸린다.
mount
-특정 장치를 특정 디렉터리에 연결하는 명령어
-a (/etc/fstab 에 정의된 모든 시스템을 마운트)
-n (/etc/mtab 파일에 정보를 저장하지 않고 마운트)
-t (마운트 가능한지 테스트)
umount
-마운트를 해제하는 명령어
-a (/etc/mtab 에 정의된 파일 시스템의 마운트 해제)
-n (/etc/mtab 파일을 갱신하지 않고 마운트 해제)
-t (마운트 해제할 파일 시스템을 지정)
/etc/mtab
- 현재 마운트된 블록 시스템 정보를 표시
/etc/fstab
-시스템 부팅 시 참조할 마운트 정보가 정적으로 저장된 파일
[장치명(UUID)] - [마운트 할 위치] - [파일 시스템 종류] - [파일 시스템 속성] - [dump관련 설정] - [파일 점검 옵션]
dump 설정
0: 명령어 dump 불가
1: 명령어 dump로 데이터 백업 가능
2: 이틀에 한번 명령어 dump로 데이터 백업 가능
파일 점검
0: 부팅 시 파일 시스템을 점검하지 않음
1: 루트 파일 시스템을 점검 (/)
2: 루트 파일 시스템 이외의 파일 시스템을 점검
eject
-DVD 또는 CD-ROM 같은 이동식 보조기억장치 미디어를 해제하고 장치를 제거하는 명령어
-r (cd-Rom)
-f (Floopy disk)
fdisk
-한 번에 한 디스크, 파티션에 대해서 파티션 생성, 삭제 및 타입 결정등에 작업을 수행
mkfs
-파티션에 파일 시스템을 생성
mke2fs
-ext2, ext3, ext4와 같은 파일 시스템을 생성
-j (ext3로 생성)
fsck (File System ChecK)
-파일 시스템의 무결성을 점검하고 대화식으로 복구
-/lost+found는 fsck에서 사용하는 디렉터리이다.
-/lost+found에서 작업을 수행하다가 정상적으로 복구가 되면 파일은 사라진다.
-A (/etc/fstab에 명시된 모든 파일 시스템을 점검)
-a (질의 없이 자동을 복구)
-r (질의 후에 복구)
-s (동작을 시리얼화, 대화형 모드)
-t "파일 시스템" (작업할 파일 시스템 유형을 지정)
e2fsck
-ext2, ext3, ext4 파일 시스템을 점검 및 복구하는 명령어
du (Disk Usage)
-디렉터리의 디스크 사용량을 확인
-h (KB, MB, GB 단위로 표시)
-s (총 합계만 표시)
df
-마운트된 디스크의 남은 용량을 확인
-h (KB, MB, GB 단위로 표시)
-T (파일 시스템 유형과 파티션 정보 출력)
-i (inode 사용률 확인)
---------------mount 사용법----------
## fdisk로 디스크에 파티션 까지 내고 난 뒤 ##
#sudo mkfs.ext4 /dev/nvme0n1p1 # nvme 장치에 1번째 주 파티션에 ext4 파일 시스템을 생성
# mke2fs is run as mkfs.xxx (i.e., mkfs.ext2, mkfs.ext3, or mkfs.ext4)
#blkid # nvme 장치의 UUID를 복사 한 후
#vi /etc/fstab #[UUID='~~'] ['mount 할 위치'] ['파일 시스템'] ['파일 시스템 속성] [0] [2] 를 추가
#mount -a # /etc/fstab파일에 정의된 모든 시스템을 마운트