19. 파일 시스템 작업
목표
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 : 파일 시스템의 종류와 함께 디스크의 정보를 보여줌