• 검색 결과가 없습니다.

파일 시스템

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 61-65)

파일 시스템이란 운영체제가 파티션이나 디스크에 파일들이 연속되게 하기 위해 사용하는 방법들이고 자료구조이다. 즉, 파일들이 디스크상에서 구성되는 방식이다. 파일시스템이라 는 말은 파일을 저장하는데 사용되는 파티션이나 디스크를 가리킬 때나, 파일 시스템의 형식을 가리킬 때 사용되기도 한다. 그래서 파일을 저장하는 2 개의 파티션을 가지고 있 다는 의미에서 어떤 사람은 “난 2개의 파일 시스템을 가지고 있다”고 말할지도 모르고, 파일 시스템 형식을 의미해서 “extended filesystem”을 그 사람이 사용하고 있을 것이다.

여기에서는 주로 파일 시스템의 형식을 가리킬 때 사용되고 있다.

5.1. ext2 파일 시스템

현재 리눅스에서는 NTFS, VFAT, UFS, NFS등의 여러 파일 시스템을 사용할 수 있으며 가 장 보편적으로 널리 사용되는 것으로는 ext2이다. 여러 파일 시스템이 가능하게 된 것이 VFS(Virtual File System)으로 실제 파일 시스템과 커널 사이에 가상 파일 시스템 층을 생 성하여 실 사용자들에게는 일관된 인터페이스를 제공하게 된다. ext2는 2GByte의 파일 크 기와 4TByte의 전체 파일 시스템 구성이 가능하며, 가변 블록 크기 및 확장가능 기능을 가지고 있다. 리눅스 파일 시스템의 디렉토리 구조는 아래와 같고, 각각의 디렉토리는 해 당 목적에 맞는 파일들을 보관 하고 있다.

디렉토리 설명

/ 최상위 디렉토리인 루트 디렉토리

/bin 중요하고 꼭 필요한 기본 명령어가 위치한 디렉토리

/boot 커널 시스템 부팅에 관련이 있는 디렉토리

/dev 시스템 디바이스 드라이버 파일을 저장하는 디렉토리

/etc 시스템 각종 환경 설정 파일을 저장하는 디렉토리

는 가상 디렉토리 mount /dev/cdrom /mnt/cdrom

cp /mnt/cdrom/Image/filesystem/ramdisk16.gz /working/ramdisk cd /working/ramdisk

mount -t ext2 -o loop ramdisk16 /mnt/ramdisk

위 과정을 통해 마운트가 정상적으로 이루어 졌는지는 mount명령을 통해 확인 할 수 있 다. 정상적인 마운트 완료 후 /mnt/ramdisk안에 들어 가면 현재 Ramdisk안에 있는 디렉 토리와 파일들이 출력이 되며, 이곳에 원하는 파일 등을 추가 또는 수정을 한다. Ramdisk 수정 후 umount 명령어로 현재 파일과 마운트 된 디렉터리를 해제하고, 다시 gzip으로 압축을 하면 타겟 보드에 포팅이 가능한 형태로 된다.

umount /mnt/ramdisk gzip ramdisk-16m

5.2.3 Ramdisk의 생성

아래와 같이 dd명령을 통해 새로운 Ramdisk의 생성이 가능하다.

dd if=/dev/zero of=./empos.ramdisk.fs count=4096 bs=1024 mkfs -t ext2 empos.ramdisk.fs

1024byte의 한 블록을 4096번 반복하여 총 4MByte의 램디스크를 생성하게 된다.

/dev/zero는 파일의 내용을 0으로 채우는 의미이다.

‘make -t ext2’ 명령은 ‘dd’ 명령으로 생성된 널 이미지에 파일시스템을 생성하는 과정이 다. 리눅스에서 많이 사용하는 ext2로 생성을 하였고, EMPOSⅡ의 루트 파일 시스템으로 사용이 되게 된다.

위와 같이 생성된 Ramdisk에 필요한 파일을 포함하기 위해선 mount명령을 통한 하나의 디렉토리에 마운트 하여 Ramdisk에 필요한 파일의 내용을 채우고, gzip으로 압축을 하면 포팅 가능한 Ramdisk가 만들어 진다.

5.3. JFFS 파일 시스템

JFFS는 스웨덴의 Axis Communications에서 개발한 저널링 플래시 파일 시스템

(Journalling Flash File System)으로 디스크가 없는 임베디드 장치에서 플래쉬 메모리를 이용한 전원/파손등에 안전한 파일 시스템이다. JFFS2로 버전이 업데이트 되면서 압축, 하드 링크 등 향상된 기능을 제공하며, 리눅스에서 제공하는 MTD 디바이스를 통해 접근 이 가능하다.

5.3.1 JFFS 유틸리티 생성

JFFS2 이미지를 생성하기 위해서는 이미지에 삽입할 내용을 미리 확보 정리하고 필요한 유틸리티를 설치하여야 한다.

필요한 유틸리티의 위치는 다음 주소에서 가져 올 수 있다.

ftp://ftp.uk.linux.org/pub/people/dwmw2/mtd/cvs/

다운로드가 완료/압축 해제 하였으면 생성된 util디렉터리로 이동 후 이미지 생성에 필요 한 유틸리티를 다음과 같이 생성한다.

make mkfs.jffs2

5.3.2 JFFS 이미지 생성

관련 유틸리티가 확보되었으면 다음과 같이 jffs2 이미지를 만들 수 있다.

cp mkfs.jffs2 /usr/local/bin/

mkfs.jffs2 -o usr.jffs -e 0x40000 -r tmpdir –p

-o : 생성 파일 이름

-e : Flash erase 블록 사이즈

-r : 대상 디렉터리 지정(하위 디렉터리 포함) -p : 블록의 남는 공간을 채우기 위한 패딩 옵션

5.3.3 JFFS2를 이용한 usr 이미지 생성

먼저 제공된 CD에서 관련 소스를 가져와서 아래와 같이 jffs2이미지를 만들 수 있다.

cp /mnt/cdrom/Source/filesystem/qtopia.jffs.tar.gz /working cd /working

tar xvfz qtopia.jffs.tar.gz

압축 해제후 생성된 qtopia.jffs디렉터리에 필요한 내용을 수정한 후 다음과 같이 이미지 를 생성한다.

mkfs.jffs2 -p -o Qtopia_test.jffs -e 0x40000 -r qtopia.jffs

정상적으로 jffs2이미지가 생성이 되었다면 부트로더의 tftp 기능을 이용하여 다운로드 하 여 사용할 수 있다.

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 61-65)