공부/Linux

19. 파일 시스템 작업

김대욱대욱 2018. 3. 19. 15:35

목표

1. 파일 시스템이란?

2. 파일 시스템 종류 및 특성

3. 파일 시스템 구조

4. 파일 시스템 작업(mkfs CMD)


1. 파일시스템이란?

 ▷ 파일 시스템(File System)이란 파일을 저장하고 관리하는 구조체계이다. 파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 관리 하는 방법을 말한다.


2.파일 시스템 종류 및 특성

 ▷ 파일 시스템의 종류

  - ext2 (mkfs.ext2) - 리눅스 이전 버전에서 사용하는 파일 시스템

  - ext3 (mkfs.ext3) - CentOS 5.X 사용하는 파일 시스템 (내가 지금 사용중인 버전)

  - ext4 (mkfs.ext4) - CentOS 6.X 사용하는 파일 시스템

  - xfs  (mkfs.xfs)  - 고성능 저널링 파일 시스템 (Extended File System)

  - msdos (mfs.msdos) - MS-DOS filesystem

  ※파일 시스템의 대한 정보확인은

  # man 5 filesystem  을 통해 할수 있다.

   man - 명령어 메뉴얼 출력 

 

▷ 파일 시스템의 특성

  - ext2 파일 시스템

ext의 문제를 해결하기 위해 나왔다. 

ext 파일 시스템 코드를 바탕으로 했으며 많은 재구성과 개선이 있었다.

  - ext3 파일 시스템

가용성과 데이터 무결성을 보장해 준다.

ext2 파일 시스템에서 ext3 파일 시스템으로 변환이 용이하다.

ext2 파일 시스템 보다 속도가 빠르다.

  - ext4 파일 시스템

큰 파일 시스템을 지원한다.

extends 방식을 새로 사용한다.

호환성이 뛰어나다.

빠른 파일 시스템 검사

지연 할당

  - xfs 파일 시스템

저널링(신속한 복구 기능)

신속한 트랜잭션

높은 확장성

뛰어난 처리량


3. 파일 시스템의 구조

  리눅스는 가상 파일 시스템 구조를 가진다. 따라서 수많은 파일 시스템을 지원한다.

  - 파일 시스템 구조 확인 및 분석

# man dump2fs

# dump2fs /dev/sda1

 dump2fs - 아주 자세한 파일 시스템 정보를 출력

  파일 시스템 구조

MBR

Boot Sector

Partition

- super block

- group descriptor table

- block bitmap

- inode bitmap

- inode table

- date block


4. 파일 시스템 작업

 ▷ 파일 시스템 생성

  - mkfs CMD 통해서 파일 시스템을 생성한다.

  - mkfs, mkfs.ext2, mkfs.ext3, mkfs.vfat

  - mkfs 명령어 사용법

# mkfs -t ext3 /dev/sdb1   (-t : File System Type)

# mkfs.ext3 /dev/sdb1

 /dev 디렉토리 안에 sdb1 이라는 이름의 ext3 파일 시스템을 생성


# mkfs -t ext2 /dev/sdb1

# mkfs.ext2 /dev/sdb1

 /dev 디렉토리 안에 sdb1 이라는 이름의 ext2 파일 시스템을 생성


# mkfs.ext3 -m 10 /dev/sdb1   (-m : minifree)

 /dev 디렉토리 안에 sdb1 이라는 이름의 ext2 파일 시스템을 생성 하고 그 파일시스템의 크기에 여분공간을 10% 할당한다.

# mkfs.ext3 -L testlabel /dev/sdb1   (-L : Label)

# mkfs.ext3 -b [1024|2048|4096] /dev/sdb1   (-b : block size)


 ▷ 명령어 옵션

-m : minimum percentage로 파일 시스템에 마련할 여분의 공간을 관리자가 결정 하는 옵션으로 -m을 사용하지 않으면 newfs 명령어가 파일 시스템의 크기에 따라서 적절한 값을 계산하여 사용한다. -m 다음에는 여분의 공간을 명시하는데 전체 파일 시스템 중에서 몇 %를 여분으로 둘 것인지를 숫자로 명시

-v : 작업 상태 , 결과를 자세하게 보여줌

-t : 만들어질 파일 시스템의 형태를 지정

 

 [EX1] 파일 시스템 생성 실습 

  [선수작업]

  - 새로운 디스크 장착 ( /dev/sdb (1GB))

VMware 상단 메뉴에서 VM > settings > 창 하단에 Add > Hard Disk > 1 GB 짜리 하드 생성 후 재부팅


  - 파티션 작업 ( /dev/sdb1(primary(1GB))

# fdisk -l ==> 추가 되어 있는 하드디스크를 목록으로 확인

# fdisk -l /dev/sdb ==> sdb 디스크를 목록으로 확인

 

제대로 추가 했다면 위와 같이 출력될 것이다.

sdb 디스크를 추가 했으니 이 디스크를 fdisk 명령어를 사용하여 파티션을 나눠 줄 것이다.

파티션에 관한 내용은 따로 자세히 정리 할 것이다. 우선은 파일 디스크 생성 먼저 진행 한다.

 

# fdisk /dev/sdb ==> fdisk 명령어는 파티션을 생성, 수정, 삭제 할때 사용

p 명령어를 통해 파티션 테이블을 출력한다.

아직 파티션을 나누지 않았으므로 아무런 테이블이 없다.

n 명령어로 새로운 파티션 추가

primary 파티션(주파티션) 생성을 위해 p를 적어주고 파티션 넘버는 1번으로 준뒤<ENTER>, <ENTER> 

다시 p 명령어를 통해 파티션 테이블 확인 파티션이 생성되었음을 확인할 수 있다. 

w 명령어로 파티션 정보 저장

  - mifree(Mininum Free Space)

최소 남은 공간은 전체 공간의 퍼센트로 할당 된다. 설정해 주지 않으면 파일시스템이 만들어질 당시에 예약되서 알아서 생성된다.

 ▷ 파일 시스템 점검 fsck

  - fsck CMD

파일시스템의 무결성을 점검하게 된다.

비슷한 명령어로는 ext3, e2fsck가 있다.

  - 명령어 형식

# fsck /dev/sda1

# fsck -y /dev/sda1


# fsck.ext3 /dev/sda

# e2fsck /dev/sda1

  - fsck, fsck.ext3 명령어 옵션

-A : /etc/fstab 파일에 있는 모든 파일시스템을 한번씩 점검

-R : -A와 함께 사용시 /(root) 파일시스템은 제외

-T : 시작시 제목은 생략

-N : 실행은 하지 않고 어떤 작업을 할 것인지만 출력

-P : -A와 함꼐 사용시 /파일시스템과 다음 파일시스템을 병렬처리하여 점검함

-V : 자세한 정보가 출력

-a : 에러 발생시 자동으로 복구함

-t : 특정 종류의 파일시스템만 점검함

  - e2fsck 명령어 옵션

-f : 파일시스템에 오류가 없더라도 강제로 점검하도록 함

-p : 에러 발생시 자동으로 복구하도록 함

-y : 모든 질문에 yes라고 답하도록 설정함

-b : 슈퍼 블럭을 이용한 복구

 ▷ 파일 시스템 사용량 측정 (df, du)

  - df (disk free space)  - 파티션 단위의 사용량 점검

남은 디스크 블럭과 남은 파일의 수를 출력하는 명령어 이다.

  - 명령어 형식

# df

# df -k

# df -m

# df -h

  - 명령어 옵션

-k : 여유 용량을 킬로바이트 단위로 출력

-h : 여유 용량을 사용자가 보기 쉽게 킬로바이트와 메가바이트 단위 등으로 출력

-F : 파일 시스템의 타입을 지정하여 지정한 파일시스템 영역만을 출력

-i : 블록 여유 용량 대신 inode 사용 정보로 출력

-a : 디플로이로 생략된 0 블록 크기의 파일 시스템도 보여줌

-t : fstype 값을 가진 파일 시스템에 대한 디스크 정보

-T : 파일 시스템의 종류와 함께 디스크의 정보를 보여줌