#1에서 SD 카드에 부트로더+리눅스커널+루트파일시스템을 넣을 준비를 모두 마쳤다.

이제 SD 카드 작업을 순차적으로 실시해보자.

 

1. DISK 환경 변수 설정

lsblk 명령어를 사용해서 현재 블럭 장치에 대해서 확인을 한다.

그 다음 SD카드를 삽입하고 동일하게 lsblk 명령어를 사용해서 다른 부분을 확인한다.

다른 부분은 보시다시피 sdb가 되겠다. sdb1이 SD카드 임을 확인 할 수 있다.

그래서 다음과 같이 환경 변수를 설정한다.

export DISK=/dev/sdb

 

2. MicroSD 카드 포맷

MicroSD 카드를 다음 명령어로 파티션을 지우고 포맷한다.

sudo dd if=/dev/zero of=${DISK} bs=1M count=10

 

3. Boot loader Install

~/ (루트폴더에서)

sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=1 bs=128k

sudo dd if=./u-boot/u-boot.img of=${DISK} count=2 seek=1 bs=384k

u-boot 폴더안에서 MLO와 u-boot.img 파일의 크기를 보면 각각 92.6kB와 476.5kB 이다.

따라서 첫번째 행의 명령어를 하기와 같이 실행하면,

그 결과로, u-boot 폴더에 있는 MLO 파일이 이전에 환경 변수를 설정한 DISK위치 즉 MicroSD에 128k 크기 만큼 복사를 한다(MLO 파일이 92.6kB이므로 충분히 커버가 됨).

두번째 행의 명령어를 하기와 같이 입력.

그 결과로, u-boot 폴더에 있는 u-boot.img 파일이 위에 설명했던 내용과 동일하게 MicroSD에 384k*2 크기 만큼 복사를 한다.

4. 파티션 생성

부팅로더가 들어간 부분과 그렇지 않은 부분에 대해서 파티션을 생성해야 하는데, util-linux 버젼 별로 상이하다고 한다.

따라서 다음과 같이 먼저 버젼을 확인할 필요가 있다.

내가 사용하는 util-linux 버젼은 2.31.1이다.

아래와 같이 버젼에 따라 명령어가 다르다.

sfdisk >= 2.26.x

sudo sfdisk ${DISK} <<-__EOF__

4M,,L,*

__EOF__

sfdisk <= 2.25.x

sudo sfdisk --unit M ${DISK} <<-__EOF__

4,,L,*

__EOF__

 

sfdisk >= 2.26x를 사용해야 하므로 다음과 같이 명령어를 실행한다.

5. 파티션 포맷

mkfs.ext4에 대한 버젼을 확인 후 파티션 포맷을 실행한다.

버젼에 따라 명령어가 다른데, 현재 내가 사용하는 버젼은 1.44.1이다.

mkfs.ext4 >= 1.43

for: DISK=/dev/mmcblk0

sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit ${DISK}p1

  

for: DISK=/dev/sdX

sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit ${DISK}1

mkfs.ext4 <= 1.42

for: DISK=/dev/mmcblkX

sudo mkfs.ext4 -L rootfs ${DISK}p1

  

for: DISK=/dev/sdX

sudo mkfs.ext4 -L rootfs ${DISK}1

 

그래서 첫번째 방법을 이용하여 명령어를 다음과 같이 수행한다.

MicroSD 카드를 사용하기 위해서는 임의의 폴더를 만들고, 그곳에 마운트를 시켜야지만 MicroSD카드를 이용 가능하다.

따라서, 여기서는 /media/rootfs/ 라는 폴더를 만든 다음, SDcard에 mount한다.

sudo mkdir -p /media/rootfs/

  

for: DISK=/dev/mmcblkX

sudo mount ${DISK}p1 /media/rootfs/

  

for: DISK=/dev/sdX

sudo mount ${DISK}1 /media/rootfs/

다음과 같이 실행을 해보았다.

lsblk 명령어를 사용하여 실제 MicroSD 카드가 Mount된 이름(/media/rootfs/)을 다음과 같이 확인 할 수 있다. 

 

+ Recent posts