■ 파일 시스템
패키지, OS 파일 등등 .. 파일을 관리하는 일을 함.
파일 종류
일반 파일,디렉터리 파일,루트 파일 ,특수 파일이 있음.
하드웨어 장치 관리하는 특수 파일은 /dev에 있음.
특수파일에도 종류가 있다.
* 문자단위 특수파일 = 문자단위로 기록
* 블록단위 특수파일 = 동일한 크기로 기록
■ 파일 시스템 구조
[ 부트블록 - 슈퍼블록 - 아이노드_리스트 - 데이터블록 ]
자료구조는 위와 같음.
리눅스 커널 적재시키는 프로그램인 "부트블록" ,
파일 시스템 정보를 저장하는 "슈퍼블록" 이 있는데 ,
OS 시작 시 부트블록을 먼저 읽음.
슈퍼블록이 소유한 정보는 다음과 같다
1) 파일 시스템 크기 , 블록 수 , 이용가능한 빈 블록 목록
2) 빈 블록 목록에서 그 다음 빈 블록 가리키는 인덱스
3) inode 목록 크기 , 파일 시스템에 빈 inode 수와 목록
4) 빈 inode 목록에서 그 다음 빈 inode 수와 목록
5) 빈 블록과 빈 inode 목록들에 대한 록 필드
6) 슈퍼 블록들이 수정됬는지에 대한 플래그
7) 파일 시스템 이름 및 디스크 이름
아이노드(inode)
파일 및 디렉터리에 대한 모든 정보를 가진 구조체다.
파일 생성하면 inode Number라는 아이디를 붙여줌. 이 값은 고유함.
값이 궁금하다면 ls -il ㄱㄱ
inode가 가지고 있는 정보는 다음과 같다.
1) 파일 크기
2) 생성시간 , 사용 시간 , 변경시간
3) 접근권한
4) 사용자 ID , 그룹 ID
5) 파일 링크 수
6) 데이터 블록 주소
아이노드에 기능에 대해서 조금 더 알아보자면
1. 파일을 생성하면 inode가 "아이노드 리스트"에 만들어지고
inode-Number 및 파일 이름 , 디렉토리가 등록됨.
2. 파일을 삭제하면 inode 파일 링크 수가 하나 감소되고
해당 파일의 inode-Number는 0으로 바뀜.
3. 원본 파일을 하드 링크하면 동일한 inode-Number임.
inode 블록 관리 방법
단일 간접 블록 포인터
이중 간접 블록 포인터
삼중 간접 블록 포인터
실제 데이터 블록을 가리키는 포인터들인데 아이노드 블록을 몇번 거쳐가냐의 차이임.
위 사진처럼 링크로 연결해서 관리한다고 함.
■ 파일 시스템 생성
디스크 파티션
하드디스크를 먼저 초기화 해야 파일 시스템을 생성할 수 있다.
필요에 따라서 파티션(분할)도 할 수 있음.
분할이란 쉽게 말해 한 개 하드를 여러개 쪼개는것(C랑 D드라이브 나누듯이)
이 때 파티션 수행 , 하드 초기화 명령이 fdisk임.
옵션은 다음과 같음.
-l : 현재 파일시스템 목록 확인
-d : 파티션 삭제
-v : 버전 정보 확인
-n : 새로운 파티션 생성
-p : 현재 파티션 설정 상태 확인
-s 장치명 : 입력 장치 크기 출력
파일 시스템 생성
하드디스크를 파티션 한 뒤에는 해당 파티션에 파일 시스템을 생성해야 사용가능함.
명령어는 mkfs[옵션][장치명]고 옵션은 다음과 같음.
-v : 진행도 출력
-V : 실행되는 파일 시스템 정보 출력
-t : 파일 시스템 형식 선택
-l : 파일로부터 초기 Bad Block 읽기
-c : Bad Block 검사 및 목록 초기화
예시로
# mkfs -t ext4 /dev/sdb1
ext4 파일 시스템 생성
mke2fs = ext2,ext3,ext4 파일시스템 생성이고
옵션 -j를 주면 저널링 파일시스템을 만들 수 있음. --> mke2fs -j
e2fsck - 파일 시스템 체크
fsck의 확장버전이고 대부분의 파일시스템을 점검 및 복구 할 수 있다.
옵션은 다음과 같음.
-p 자동 복구
-n 파일 시스템 변경
-y 질문 안받음
-c Bac Block 검사
-f 강제 검사
-v 상세 작업 내용 추력
'OS-서버 > 리눅스-유닉스' 카테고리의 다른 글
리눅스 디렉터리 (0) | 2019.06.12 |
---|---|
리눅스 부팅 (0) | 2019.06.11 |
DNS 질의 순서 (1) | 2019.03.24 |
우분투에 Python 3.6 설치 (0) | 2019.03.03 |
쉘 스크립트 IP 스캔 (0) | 2018.05.04 |