OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 리눅스 파일 시스템 종류 - ext, ext2, ext3, ext4, dd

주누다 2015. 3. 30. 18:42
반응형

파일 시스템

- 리눅스 운영체제의 주요한 기능 중 하나

- 다양한 정보를 가진 파일과 디렉터리의 집합을 구조적으로 관리하는 체계



리눅스 고유의 디스크 기반 파일 시스템 

- 리눅스는 초기에 미닉스의 파일 시스템(Minix File System. MFS)를 이용

- 곧 ext 파일 시스템으로 알려진 리눅스 고유의 파일 시스템을 사용

 

ext(ext1)

- 레미 카드가 개발.

- ext 는 'Extended File System'의 약자

- extfs라고도 하며, MSF의 기능을 확장했다는 의미

- MSF의 경우 16비트 주소 체계를 사용. 파일 시스템의 최대 크기 64MB / ext 의 경우 2GB로 늘어남.

- 파일 이름 같은 경우 MFS는 14바이트 / ext는 255바이트까지 지원

- 하지만 ext 파일 시스템은 inode의 수정과 데이터 수정시간 지원이 되지 않음.

- 링크드 리스트로 파일 시스템을 구성하여 파일 시스템이 복잡해지고, 파편화되는 문제 발생

- 현재 리눅스에서는 ext 파일 시스템을 사용하지 않고 있음.

ext2

- ext2 는 'Second Extended File System(Ext2 fs)' 의 약자. 보통 ext2라 불림.

- ext2 파일 시스템은 ext 파일 시스템이 가지고 있던 문제를 해결하기 위해 내놓은 것으로,

 레미 카드가 개발하여 1990년 1월에 공개

- ext2 파일 시스템은 ext 파일 시스템을 기반으로 확장성도 고려하여 개발

- ext2 초기에 버그가 있어 불안정하였지만 사용이 증가하면서 매우 안정적인 파일 시스템이 됨.

- ext2 파일 시스템은 리눅스 커널 2.6.17 버전 이전에서는 최대 크기가 2TB로 제한.

- 현재는 이론적으로 32TB까지 지원이 가능.

- ext2 는 ext3 파일 시스템이 도입되기 전까지 리눅스의 표준 파일 시스템으로 사용.

- 현재도 부팅 가능한 USB 플래시 드라이브와 다른 SSD 장치에 사용.

ext3

- ext3 는 'Third Extended File System'

- 스테판 트위디(Stephan Tweedie) 가 개발하여 2001년 11월 리눅스 2.4.15에 추가

- ext3 는 ext2 를 기반으로 개발되어 호환이 가능

- ext2 파일 시스템의 파일을 별도의 변경 없이 ext3 파일 시스템에 바로 이식 가능

- ext3 의 가장 큰 장점인 저널링(journaling) 기능을 도입

- 저널링

  => 디스크에 기록되는 데이터의 복구 기능을 강화한 것.

  => 데이터를 디스크에 기록하기 전에 먼저 저널에 수정 사항을 기록.

  => 저널은 쉽게 말해 로그 기록과 같은 것이라고 보면 됨.

  => 디스크에 데이터를 기록하기 전에 갑자기 전원이 나가거나 시스템에 충돌이 발생할 경우

    이 저널의 기록을 보고 재빨리 복구할 수 있음.

- ext3 에서 파일 시스템의 최대 크기는 블록의 크기에 따라 2~32TB까지 지원.

- 단점) inode의 동적 할당이나 다양한 블록 크기와 같은 최신 파일 시스템 기능 부족.

- 단점) 온라인 조각 모음 기능 없음.

 ext4

- ext4 'Fourth Extended File System'

- 밍밍 카오(Mingming Cao), 안드레 딜거(Andreas Dilger), 알렉스 주라블레프(Alex Zhuravlen), 데이브 클레이 캠프(Dave Kleikamp), 테오도어 츠오(Theodore Ts'o), 에릭 샌딘(Eric Sandeen), 샘 나그시네(Sam Naghshineh) 등에 의해 개발.

- 2008년 12월 25일 2.6.28에 포함되어 공개

- ext4 파일 시스템은 1EB(엑사바이트, 1EB = 1024 * 1024TB) 이상의 볼륨과 16TB이상의 파일을 지원.

- ext2 및 ext3와 호환성 유지

- ext3에서는 서브 디렉토리의 수가 32000개로 제한 / ext4에서는 64000개로 늘어남.

- 온라인 조각 모음 기능 지원.



  리눅스에서 지원하는 다른 파일 시스템

- 리눅스에서 제공하는 표준 파일 시스템이라고 할 수 있는 ext2, ext3, ext4외에

  유닉스나 윈도 시스템 등 다른 시스템과 호환 가능.

- CD-ROM, DVD 등 외부 저장 장치를 사용할 수 있도록 다양한 파일 시스템 지원

 파일 시스템

 기능

msdos

MS-DOS 파티션을 사용하기 위한 파일 시스템

iso9660

CD-ROM, DVD의 표준 파일 시스템(읽기 전용으로 사용)

nfs

Network File System으로 원격 서버의 디스크를 연결할 때 사용

ufs

Unix File System으로 유닉스의 표준 파일 시스템

vfat

윈도 95, 98, NT를 지원하기 위한 파일 시스템

hpfs

HPFS를 지원하기 위한 파일 시스템

ntfs

윈도의 NTFS를 지원하기 위한 파일 시스템

sysv

유닉스 시스템 V를 지원하기 위한 파일 시스템

hfs

맥의 hfs 파일 시스템을 지원하기 위한 파일 시스템



특수 용도의 가상 파일 시스템

- 디스크가 아니라 메모리에서 생성되어 사용되는 가상 파일 시스템

- 가상 파일 시스템은 일반적으로 특수한 용도를 가지고 필요에 따라 생겼다 없어졌다를 반복

 파일시스템

 기능

swap

- 스왑 영역을 관리하기 위한 스왑 파일 시스템

tmtpfs

- Temporary File System. 메모리에 임시 파일을 저장하기 위한 파일 시스템.

  시스템이 재식작할 때마다 기존 내용이 없어짐.

- ex) '/run' 디렉터리

proc

- proc 파일 시스템 '/proc' 디렉터리

- 커널의 현재 상태를 나타내는 파일을 가지고 있음.

ramfs

- 램디스크를 지원하는 파일 시스템

rootfs

- Root File System. '/' 디렉터리

- 시스템 초기화 관리에 필요한 내용을 관리



현재 시스템이 지원하는 파일 시스템 확인 

- 배포판에 따라 사용하는 파일 시스템 종류가 다를 수 있음.

- cat 명령 등을 통해 '/proc/filesystems'를 확인하면 현재 커널이 지원하는 파일 시스템의 종류를 확인할 수 있음.

- 좌측의 'nodev' 는 해당 파일 시스템이 블록장치(ex : 디스크)와 연결되어 있지 않읂 가상 파일 시스템임을 뜻함.

- 우측에 나오는 것이 지원하는 파일 시스템

- 특수한 용도로 사용되는 가상 파일 시스템이 대부분.

- 'fuseblk' 는 ntfs 파일 시스템을 연결할 때 사용 되는 파일 시스템.



스왑 파티션 관리

- 스왑 파티션은 물리적 메모리(RAM)과 함께 메모리 영역으로 사용하기 위해 할당한 디스크 영역.

- 프로그램은 메모리에 적재되어야 실행 가능. 만약 메모리 용량이 모자랄 경우 현재 실행하지 않는

 프로그램을 스왑 파티션으로 이동했다가 실행할 순서가 되면 다시 메모리로 불러들임.

- 스왑 파티션에 할당한 공간이 모자를 경우 스왑 영역을 추가해야함.

- 새로운 디스크 파티션을 스왑 파티션으로 생성하거나, 기존의 일반 디스크 파티션에 스왑 파일을 생성함.

1. 현재 스왑 영역 확인 : swapon -s

- 'swapon -s' 명령으로 확인 가능

2. 새로운 디스크 파티션을 스왑 영역으로 추가


1)

- 'fdisk' 명령으로 디스크에 스왑 파티션 생성

- 비어 있는 디스크 파티션에 새로운 파티션을 생성 후, 이 파티션의 종류를 82(Linux Swap)으로 설정

- 'sudo fdisk /dev/sdd'

2)

- 'mkswap' 명령으로 스왑파티션을 포맷하여 스왑 파일 시스템을 생성

- 'sudo mkswap /dev/sdd1'

3)

- 새로운 스왑 파티션을 활성화

- 'sudo swapon /dev/sdd1'

4)

- 'swapon -s' 명령으로 스왑 영역 추가되었는지 확인

5)

- 재부팅 시에도 새 스왑 영역을 활성화하려면 '/etc/fstab' 파일에 정보 추가

- '/dev/sdd1 swap swap defaults 0 0'

3. 기존 파티션에 스왑 파일 추가


1)

- 생성할 스왑 파일의 크기를 정한 후 1,024*블록 개수를 산정

  ex) 128M일 경우 1,024*131,072가 됨

2)

- 빈 파일을 'dd' 명령으로 생성. count 다음에 위에서 계산한 블록 개수를 지정.

  ex) sudo dd if=/dev/zero of=/swapfile bs=1024 count=131072

3)

- 'mkswap' 명령으로 2번에서 생성한 파일을 스왑 파일로 만듬

  ex) sudo mkswap /swapfile

4)

- 스왑 파일 활성화

  ex) sudo swapon /swapfile

5)

- 'swapon -s' 명령으로 스왑 영역 추가되었는지 확인

6)

- 재부팅 시에도 새 스왑 영역을 활성화하려면 '/etc/fstab' 파일에 정보 추가

- '/swapfile swap swap defaults 0 0'



반응형