728x90

램디스크

- 파일시스템을 램 상에 구현한 가상의 하드디스크

- 부팅 초기에 부팅속도 향상을 위해 루트파일시스템을 마운트하여 사용

- 임베디드 시스템에서는 비휘발성인 플래시 메모리에 램디스크 이미지를 압축해서 저장

- 부팅과정에서 램디스크 이미지를 휘발성 메모리인 램에 로딩해서 사용

- 리눅스 상에서 램디스크를 생성하고 수정하는 절차를 배움

 

(1) 램디스크 개요

1) 램디스크

2) 램디스크 관련 명령어

3) 램디스크 생성 절차

4) 램디스크 수정 절차

 

1) 램디스크

램디스크 개요

- 램디스크 : 메모리의 일정공간을 하드디스크 처럼 사용

- 램디스크 이미지 : ext2 파일시스템의이미지를 갖는파일

   ->  램디스크 이미지 1개로 표현

- 램디스크 오브젝트 : 램디스크 이미지를 가지고있는 ELF 오브젝트 파일

   -> 램디스크를 리눅스 커널에 링크할때 사용

- 램디스크 디바이스 파일명 /dev/ram0

 

램디스크활용

- 장점 : 하드디스크보다 rw 속도빠름

- 단점 : 휘발성 메모리로 전원공급중단시 파괴

- 부팅 초기에 루트파일시스템의 필수부분만을 마운트하여 부팅속도 향상

1. 플래시 메모리에 램디스크 이미지 압축저장

2. 부팅과정에 램디스크 이미지 압축해재

3. 휘발성 메모리 램에 로딩하여사용

 

임베디드 시스템에서 하드쓰지 않는경우

- 램드스크, 플래시메모리상에 플래시파일시스템사용하여 시스템구현

 

응용프로그램개발, 유틸리티 프로그램이 추가되야하는경우

-> 램디스크 이미지 수정작업이 필요

 

루프백(Loopback) 디바이스

- 파일을 블록디바이스처럼 사용하는 가상디바이스

- 사용전에 파일 시스템에 마운팅

- 램디스크같이 파일 시스템이 파일로 표현되는경우 사용

- 램디스크 이미지는 루프백 디바이스로 설정해주어야 한다.

- 루프백 디바이스명 : /dev/loop0

 

초기 램디스크 디바이스

- initr : 주번호 1, 부번호 250, 읽기전용 디바이스, 리눅스부팅시 임시루트파일 시스템저장하는 램디스크

      init 프로세스 실행에 필요한 디바이스 드라이버 및 유틸리티포함

 

초기 램디스크 디바이스 사용한 부팅절차

1. 초기램디스크디바이스마운팅완료

2. 램디스크 상에있는 /linuxrc 프로그램실행

3. 실제 루트파일시스템으로 마운팅

  -> 실제 루트파일시스템이 /initrd 디렉토리를 포함하고있으면 램디스크 디바이스 마운팅 위치가/에서 /initrd로바뀜

4. 램디스크상에 있는 /linuxr 프로그램이 실행

 

2) 램디스크 관련 명령어

dd(Data definition) 명령어

- raw 데이터를 저수준에서 복사하거나 변환 하는 명령어

- 초기 램디스크를 만들경우 사용

 

mke2fs 명령어

- 파티션 초기화

- ext2 or ext3 파일시스템 생성

 

mount 명령어

- 파일시스템을 마운트하는 명령어

 

losetup  명령어

- 루프백 디바이스 셋업 및 제어

 

4) 램디스크 수정

- 램디스크 이미지 파일은 압축된 루프백 디바이스 파일

  -> 압축해재후 루프백 디바이스를 사용하여 마운트 과정이 필요

 

 

(2) 루트파일시스템

1) 루트파일 시스템개요

2) 루트 파일 시스템 생성

 

1) 루트파일시스템 개요

개요

- 루트파일시스템 : "/" 디렉토리에 마운트되는 파일시스템

- 시스템  초기화 및 각종 주변장치들을 제어하기위한 파일 및 부팅에 필요한 내용들을 포함하는 파일시스템

- 루트 파일 시스템은 일반적으로 읽기 전용으로 마운트 되었다가 커널이 정상적으로 로딩 되면 RW모드로 변경

 

루트파일시스템의 구성

- 루트파일 시스템에 필요한 최소 디렉토리로 시스템 운영에 필요한 디렉토리로 구성

1. /dev : 디바이스 파일

2. /proc : 커널 실행정보

3. /etc : 시스템 설정파일

4. /sbin : 시스템 관리에 필요한 필수실행파일

5. /bin : 시스템 기본 실행파일

6. /lib : 런타임 공유 라이브러리

7. /mnt : 마운팅 포인트로 사용

8. /usr : 유틸리티와 응용프로그램

9. /root : 루트사용자의 홈디렉토리

10. /boot : 부트로더의 디렉토리

 

루트파일시스템 구현

- 임베디드시스템은 하드디스크가 없거나 부팅속도향상을 위해 루트파일시스템을 램디스크상에 구현

- 범용 리눅스시스템은 부팅속도 향상을 위해 부팅 초기단계에서 램디스크 사용

 

루트 파일시스템 생성 절차

1. dd 명령어로 램디스크 이미지 생성

2. 파일시스템 ext2 포멧

3. 파일 시스템 마운팅

4. 기본 디렉토리 생성 : /dev,/proc,/sbin ...

5. 필수 라이브러리 복사 : glibc 복사

6. init 및 스크립트 설치 : sysvinit 패키지

7. 디바이스 파일 설치 :mknod

8. 필요한 응용프로그램 설치 :busybox, tinylogin

9. 쉘프로그램 설치 ; bash

10. 루트파일 시스템 이미지 생성 : gzip과 mkimage 명령어 사용

 

 

300x250

+ Recent posts