본문 바로가기

OS-서버/리눅스-유닉스

리눅스 파일 시스템

반응형

■ 파일 시스템

 

패키지, 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