학습 목표
- UNIX/Linux 파일시스템을 이해하고 설명할 수 있다.
UNIX/Linux 파일시스템 개요
- 물리적인 디스크
- 파티션 (fdisk)
- 파일시스템 (mkfs.~)
- 마운트 (mount)
UNIX/Linux 파일시스템 개념
- 물리적인 저장장치(예. 하드 디스크)에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조
- 물리적인 디스크는 논리적인 파티션(partition)으로 나누어지며, 각 파티션별로 고유한 파일시스템 생성 (예. NTFS, EXT2, EXT3, EXT4)
UNIX/Linux 파일시스템 구성
- 부트 블럭
- 운영체제를 부팅하거나 초기화하기 위한 부트스트랩(bootstrap) 코드를 담고 있는 블럭
- 슈퍼 블럭
- 해당 파일시스템을 관리하기 위한 정보를 담고 있는 블럭
- 아이노드 리스트 ★
- 파일에 대한 속성 정보를 관리하기 위한 구조체 리스트
stat ${파일명}
명령어를 이용해서 파일의 아이노드 확인- 파일명은 속성에 포함되지 않음
- 디렉토리가 파일명과 inode number의 매핑 정보를 갖고 있음
속성 설명 inode number 파일시스템 내에서 해당 파일을 식별하기 위한 고유한 식별자 파일타입 일반파일, 디렉터리, 장치파일 등 파일 유형 접근권한 파일에 대한 접근권한 link count 해당 inode를 참조하는 (하드)링크 개수 소유자 파일의 소유자 (UID) 소유그룹 파일의 소유그룹 (GID) 파일크기 파일의 크기 MAC Time ★
(침해사고 발생 시 점검)last Modification Time _ 파일의 내용을 마지막으로 수정한 시간
last Access Time _ 파일을 마지막으로 접근한 시간
last Change Time _ 파일의 속성(inode 정보)을 마지막으로 변경한 시간block index 데이터 블럭s에 저장되어 있는 파일 내용에 대한 색인 정보 - 데이터 블럭s
- 실제 파일의 내용(데이터)이 저장되는 블럭
- 고정 크기 block들로 구성됨
- 하드링크와 심볼릭링크
- 하드링크는 동일한 inode number를 가지며, 서로 다른 파일시스템 간에는 불가능하고, 디렉터리는 불가능
- 심볼릭링크는 서로 다른 inode number를 가지며, 서로 다른 파일시스템 간에도 가능하고, 디렉토리도 가능