반응형
참조 : http://mokuzin21.egloos.com/2377984
임베디드 리눅스 시스템에서 필요한 3가지 이미지가 있으니~
첫째는 bootloader[부트로더]요, 둘째는 kernel[커널]이요, 마지막 셋째는 filesystem[파일시스템]이다. 이 세가지 이미지가 있어야, 시스템이 비로소 임베디드 리눅스 환경을 갖추었다고 할 수 있다.
이중에 파일시스템 이미지를 만드는 방법을 정리하고자 한다.
램 디스크
우선, 램 디스크가 무었인가?
램을 디스크 처럼 사용하는 의미가 된다. 무슨 말 인가 하면, 보통 디스크라 하면 하드디스크 혹은 플래쉬 장치를 가리키게 된다. 허나, 임베디드 환경에서는 하드웨어에 하드디스크가 달리기도 어렵고 해서, 일단 램의 일정부분을 디스크 처럼 사용한다는 의미가 된다.
1. Loop device
In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loopback file interface) is a pseudo-device that makes a file accessible as a block device. [Wikipedia]
loop device는 가상 블록 디바이스이다. 우선 이 가상 디바이스가 존재하고 있는지 확인해 보자.
다음단계로 이제 루트파일시스템 이미지를 만들고, 디바이스 노드와 연결 시키며, 마지막으로 포맷을 해야 한다.
우선, 다음 명령을 차례대로 실행시키자.
# dd 명령은
dd is a common Unix program whose primary purpose is the low-level copying and conversion of raw data.
따라서, 파일이미지를 /dev/zero에서 읽어서 1k * 8192 만큼 만드는 명령이라 할 수 있다. /dev/zero는 null(ASCII 0x00) 으로 만들어주는 디바이스이다. 따라서 null 문자로 약 8Mbyte의 파일이 생성되는 것이다.
losetup 명령으로 loop와 파일을 연결해 주고, 마지막으로 mke2fs 명령으로 디바이스를 포맷해 준다.
마지막으로, 다음 명령을 통해 마운트해 주고, 원하는 파일을 저장한 다음, .gz으로 압축을 해주면 램 디스크 이미지가 완성된다.
운영체제가 A하드디스크에 설치되었다고 가정한다면
운영체제가 RAM에 올라오면 이미 만들어져 있는 파일시스템을 통해서 하드디스크와 같은 장치를 이용할 수 있도록 함
그러므로 /디렉토리는 A하드디스크를 이미 만들어져 있는 파일시스템을 통해서 포맷이 설정되어지고 마운트되어짐
임베디드 리눅스 시스템에서 필요한 3가지 이미지가 있으니~
첫째는 bootloader[부트로더]요, 둘째는 kernel[커널]이요, 마지막 셋째는 filesystem[파일시스템]이다. 이 세가지 이미지가 있어야, 시스템이 비로소 임베디드 리눅스 환경을 갖추었다고 할 수 있다.
이중에 파일시스템 이미지를 만드는 방법을 정리하고자 한다.
램 디스크
우선, 램 디스크가 무었인가?
램을 디스크 처럼 사용하는 의미가 된다. 무슨 말 인가 하면, 보통 디스크라 하면 하드디스크 혹은 플래쉬 장치를 가리키게 된다. 허나, 임베디드 환경에서는 하드웨어에 하드디스크가 달리기도 어렵고 해서, 일단 램의 일정부분을 디스크 처럼 사용한다는 의미가 된다.
1. Loop device
In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loopback file interface) is a pseudo-device that makes a file accessible as a block device. [Wikipedia]
loop device는 가상 블록 디바이스이다. 우선 이 가상 디바이스가 존재하고 있는지 확인해 보자.
다음단계로 이제 루트파일시스템 이미지를 만들고, 디바이스 노드와 연결 시키며, 마지막으로 포맷을 해야 한다.
우선, 다음 명령을 차례대로 실행시키자.
# dd if=/dev/zero of=my_ram_disk bs=1k count=8192
# losetup /dev/loop0 my_ram_disk3
# mke2fs -j /dev/loop0
# losetup /dev/loop0 my_ram_disk3
# mke2fs -j /dev/loop0
# dd 명령은
dd is a common Unix program whose primary purpose is the low-level copying and conversion of raw data.
따라서, 파일이미지를 /dev/zero에서 읽어서 1k * 8192 만큼 만드는 명령이라 할 수 있다. /dev/zero는 null(ASCII 0x00) 으로 만들어주는 디바이스이다. 따라서 null 문자로 약 8Mbyte의 파일이 생성되는 것이다.
losetup 명령으로 loop와 파일을 연결해 주고, 마지막으로 mke2fs 명령으로 디바이스를 포맷해 준다.
마지막으로, 다음 명령을 통해 마운트해 주고, 원하는 파일을 저장한 다음, .gz으로 압축을 해주면 램 디스크 이미지가 완성된다.
# mkdir my_tmp
# mount -o loop my_ram_disk ./my_tmp
# mount -o loop my_ram_disk ./my_tmp
# umount my_tmp
# gzip my_ram_disk
# gzip my_ram_disk
운영체제가 A하드디스크에 설치되었다고 가정한다면
운영체제가 RAM에 올라오면 이미 만들어져 있는 파일시스템을 통해서 하드디스크와 같은 장치를 이용할 수 있도록 함
그러므로 /디렉토리는 A하드디스크를 이미 만들어져 있는 파일시스템을 통해서 포맷이 설정되어지고 마운트되어짐
반응형