강좌 & 팁
삼바 서버를 사용하기로 결정한 이후에 걱정거리 하나가 생겼습니다. 로컬 드라이브 영역을 coLinux와 함께 사용하면 큰 문제가 없지만, fedora 이미지 4g짜리로는 왠지 불안하다는 것이죠. 4g 안에 페도라가 설치되어 있고 개발환경을 구축해야 하는데, 거기다가 앞으로 계속 늘어날 프로젝트 파일까지 감당하려면 아무래도 4g로는 부족하다는 생각이 듭니다.
이제 겨우 nfs, samba 서버를 설치했고, i386, arm, mips 용 gcc 컴파일러를 설치했는데 벌써 반 이상을 사용했습니다.
]# df -h Filesystem Size Used Avail Use% Mounted on /dev/cobd0 4.0G 2.0G 1.8G 53% / tmpfs 126M 0 126M 0% /dev/shm ]#
그래서 용량을 키워햐 하는데, 가장 먼저 제공되는 4g 짜리 이미지를 8g로 키우려 했습니다. 그런데 이게 잘 안 되네요. 어떻게 작업했냐하면,
- fsutil을 이용하여 8g 이미지를 만듦
- 새로 만든 8g 이미지를 conf 파일에 cobd2로 등록
- 리눅스를 부팅한 후에
- 8g 와 연결된 cobd2를 mkfs -t ext3 /dev/cobd2 를 실행하여 ext3로 포맷
- /dev/cobd2를 /mnt/8g 로 마운트
- cp -ax / /mnt/8g 명령으로 파티션 복사
- 리눅스 셧다운
- conf에서 cobd0를 8g로 변경. 새로 추가했던 cobd2 행 삭제
- 부팅
- 부팅 중 에러. 으~
그래서 다시 웹 검색을 해서 페도라 이미지를 다른 이름으로 복사한 후에 cobd3에 연결해서 다시 아래와 같이 작업했습니다.
- fsutil을 이용하여 8g 이미지를 만듦
- 새로 만든 8g 이미지를 conf 파일에 cobd2로 등록
- 기존의 페도라 이미지를 fedora_9_copied.img 로 복사
- fedora_9_copied를 cobd3에 등록
- 리눅스를 부팅한 후에
- 8g 와 연결된 cobd2를 mkfs -t ext3 /dev/cobd2 를 실행하여 ext3로 포맷
- /dev/cobd2를 /mnt/8g 로 마운트
- /dev/cobd3를 /mnt/copied로 마운트
- cp -ax /mnt/copied/. /mnt/8g 명령으로 파티션 복사
- 리눅스 셧다운
- conf에서 cobd0를 8g로 변경, 새로 추가했던 cobd2, cobd3 행 삭제
- 부팅
- 부팅 중 에러. 아우~
copy 명령어를 바꾸어 가면서 여러 차례 반복해 보았지만 역시 부팅이 안 되네요. 웹을 검색해 보면 이미지 확장을 데비안과 젠투는 있는데 페도라만 없네요. 이런 이유로 페도라 이미지를 확장하는 대신에 사용자 영역인 /home만 따로 별개의 이미지 파일을 이용하도록 바꾸었습니다. 즉,
- 4g짜리 이미지를 만들어서
- ext3로 포맷하고,
- 시스템에 디스크를 추가한후,
- 기존의 /home을 옮긴 후애
- /etc/fstab에 새로 생성한 디스크를 /home으로 등록하고
- 앞으로 사용자 계정은 모두 새로 만든 이미지로 이용합니다.
즉, 사용자 파일이나 프로젝트 파일은 모두 새로 만든 4g짜리 이미지에 저장한다는 얘기가 되겠습니다. 이렇게 되면 리눅스와 사용자 파일을 나누어 관리할 수 있는 장점이 있습니다. 그러나 혹, 페도라 이미지를 확장하는데 성공하신 분은 강좌 글에 설명을 부탁드립니다. ^^
coLinux에 새 하드 디스크 추가
일단 4g 이미지 파일부터 만들겠습니다..
8G 이미지 파일 만들기
오랫동안 MS Windows를 이용하여 개발 생활을 해왔지만 오늘에서야 fsutil 이라는 유틸리티가 있는지 처음 알았습니다. 이 프로그램을 이용하면 아주 간단하게 원하는 크기의 이미지 파일을 만들 수 있습니다. 단위가 byte여서 숫자가 복잡해 보이지만 매우 명쾌하게 실행됩니다.
우선 8G는 4*1024*1024*2024= 4294967296 입니다.
c:/> d: d:/> cd /coLinux <--- coLinux가 설치된 디랙토리로 이동합니다. d:/> fsutil file createnew home_4g.img 4294967296
순식간에 4g 짜리 이미지 파일이 생깁니다.
conf 파일 수정
생성된 home_4g.img를 coLinux에서 사용할 수 있도록 conf 파일을 수정합니다. 저는 페도라 이미지를 사용하므로 fedora.conf를 아래와 같이 수정했습니다.
kernel=vmlinux initrd=initrd.gz mem=256 cobd0="d:/coLinux/Fedora-9.img" cobd1="d:/coLinux/swap.img" cobd2="d:/coLinux/home_4g.img" root=/dev/cobd0 eth0=tuntap,"coLinuxNet" ro |
cobd2에 새로 만든 home_4g.img를 등록했습니다.
coLinux 부팅
수정된 conf 파일을 저장하고 coLinux를 부팅합니다. conf에 새로 만든 4g 이미지를 추가했기 때문에 /dev/cobd2로 접근할 수 있습니다. ext3로 포맷합니다.
]# mkfs -t ext3 /dev/cobd2 ]# mkdir /mnt/4g ]# mount /dev/cobd2 /mnt/4g ]# mv /home/* /mnt/4g ---> /home의 하위에 있는 파일이나 폴더를 /mnt/4g로 이동 ]# umount /mnt/4g
/etc/fstab 수정
/dev/cobd2에 /home을 연결합니다. 연결한다는 말이 맞는지 모르겠습니다만 부팅하면 자동으로 /home에 연결하도록 합니다.
]# vi /etc/fstab
LABEL=/ / ext3 defaults 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=swap none swap defaults 0 0 /dev/cobd2 /home ext3 defaults 0 0 |
reboot
이제 리눅스를 부팅합니다.
]# reboot
부팅 후에 사용자 계정으로 로그인합니다. 이제 시스템 용량을 확인하면 /home 부분만 4g로 확장된 것을 보실 수 있습니다.
]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/cobd0 4.0G 2.0G 1.8G 53% / tmpfs 126M 0 126M 0% /dev/shm /dev/cobd2 4.0G 137M 3.7G 4% /home ]$
이로써 시스템과 사용자 영역을 분리했습니다.
fstab 를 바꾸어야 합니다.
참고로 제가 했던 작업 환경을 올려 드리겠습니다.
혹시 내용에 반영되면 이 내용을 삭제하셔도 됩니다. ^^
XXX_coLinux 용 FALINUX 크로스 컴파일 환경을 위한 10G 페도라 이미지 구축 기록
============================================================================
1. 개요
이 문서는 FALINUX 제품에 동작하는 부트로더,커널,어플리케이션을 생성하기 위한 방법으로
ARM 과 MIPS 용 크로스 컴파일이 가능한 coLinux용 페도라 이미지를 10기가 크기로 만드기 위한 과정을
기술한 문서이다.
2. 진행이유
coLinux 사이트에서 제공하는 페도라 이미지는 2기가 크기의 파일 시스템이다.
그러나 이크기는 크로스 컴파일 구축하고 여러 프로젝트를 진행하기에는 약간 부족한 느낌이 든다.
그래서 10기가 크기를 갖는 파일 시스템을 만들고 이 파일 시스템에 환경을 구축한 후
일반인에게 공개하기로 마음 먹었다.
최종적인 이 과정의 목적은
다른 사람이 압축된 파일을 coLinux 가 설치된 곳에 풀고 네트워크 부분만 맞추면
특별한 문제 없이 동작하도록 하는 것이다.
3. 사전 조건
이 문서는 이미 coLinux를 사용할수 있는 환경이 구축된 상태임을 가정하고 있다.
4. 필요한 파일 다운 로드 받기
필요한 파일은 두가지 이다.
하나는 페도라 2 기가짜리 원래 이미지이고
두번째는 cobd 파일을 만들수 있는 MKFILE.EXE 이다.
(**) 2.6 커널 coLinux 용 페도라 9 이미지 파일 다운 받기
파일명은 Fedora-9-20080827.exe 이고 다음 링크에서 받는다.
http://sourceforge.net/project/showfiles.php?group_id=98788&package_id=122245&release_id=622375
Fedora-9-20080827.exe 을 실행해서 압축을 풀면 다음과 같은 목록의 파일이 압축이 풀려 나온다.
Fedora-9.img
README-Fedora-9.txt
start-Fedora-9.bat
start-Fedora-9.sh
swap.img
이전에 페도라 이미지로 coLinux를 설치된 적이 있다면
다음 작업의 진행을 위해서 위 파일명에 해당하는 파일들을 다른 위치에 백업 한 후 이 이후의 과정을 수행하는 것이 안전하다.
(**) MKFILE.EXE 유틸리티 다운 받기
이 파일은 다음 위치에서 받을수 있다.
http://www.geocities.com/dan_slater/colinux/utils.zip
이 파일에서 압축을 풀면 다음과 같은 파일들이 압축이 풀린다.
MKFILE.CPP
MKFILE.EXE
MKSPARSE.CPP
MKSPARSE.EXE
SPSIZE.CPP
SPSIZE.EXE
이 중에 필요한 파일은 MKFILE.EXE 이다.
5. coLinux 가 설치된 디렉토리 환경
이 작업을 진행하기 위해서 설치된 coLinux 디렉토리는
C:\colinux_fedora9
이후 문서는 이 위치를 기준으로 설명할 것이다.
6. 10기가 이미지 만들기
MKFILE.EXE 파일을 C:\colinux_fedora9 에 옮겨 놓는다.
도스 창에서 C:\colinux_fedora9 로 이동한 후
다음 명령을 처서 10 기가 크기의 파일을 만든다.
MKFILE Fedora9-10G.img 10G
7. 환경 파일 및 배치 파일 작성
윈도우에서 colinux 페도라 동작을 위해서 다음과 같이 환경파일과 실행 배치 파일을 만든다.
-----[Fedora9.conf]------------------------------------------------------------------------
kernel=vmlinux
mem=256
ro
initrd=initrd.gz
cobd0=Fedora-9.img
cobd1=swap.img
cobd2=Fedora9-10G.img
root=/dev/cobd0
eth0=tuntap,"TAP"
cofs0=C:\
-----[Fedora9.conf]------------------------------------------------------------------------
실행 배치 파일은 다음과 같이 만들었다.
-----[Fedora9.bat]------------------------------------------------------------------------
colinux-daemon @Fedora9.conf -t nt
-----[Fedora9.bat]------------------------------------------------------------------------
8. 페도라 9 이미지 실행 및 현재 파일 시스템을 tar 파일로 압축
Fedora-9-20080827.exe 을 실행해서 풀린 Fedora-9.img 파일을 C:\colinux_fedora9 로 이동한다.
Fedora9.bat 을 실행한다.
정상적으로 부팅된후 로긴 메시지가 나오면 root 를 입력한다.
패스워드는 묻지 않을 것이다.
10기가 이미지를 EXT2 형식으로 포맷한다.
[root@localhost ~]# mke2fs -F /dev/cobd2
ext2 를 ext3 로 바꾼다.
[root@localhost ~]# tune2fs -i 0 -j /dev/cobd2
이것을 마운트 한다.
[root@localhost ~]# mkdir -p /new_disk
[root@localhost ~]# mount /dev/cobd2 /new_disk
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cobd0 4124352 1088564 2826280 28% /
tmpfs 128200 0 128200 0% /dev/shm
0 76802008 60402924 16399084 79% /C
/dev/cobd2 10321208 154236 9642684 2% /new_disk
이제 2기가 이미지의 페도라 파일 시스템의 모든 내용을 모두 tar 로 복사 한다.
단 /proc, /sys, /dev/shm, /C 디렉토리는 배제한다.
(cd / && tar cpf - . --exclude new_disk --exclude proc --exclude sys --exclude dev/shm --exclude dev/pts ) | (cd /new_disk && tar xpf -)
new_disk 로 이동한후 proc sys dev/shm 디렉토리를 만든다.
[root@localhost new_disk]# cd /new_disk/
[root@localhost new_disk]# mkdir proc
[root@localhost new_disk]# mkdir sys
[root@localhost new_disk]# mkdir dev/shm
[root@localhost new_disk]# mkdir dev/pts
etc/fstab 를 다음과 같이 바꾼다.
-----[/new_disk/etc/fstab]------------------------------------------------------------------------
/dev/cobd0 / ext3 defaults 1 1 <-- 수정한 곳
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=swap none swap defaults 0 0
-----[/new_disk/etc/fstab]------------------------------------------------------------------------
마운트를 풀고 셧다운을 한다.
[root@localhost new_disk]# cd /
[root@localhost /]# umount new_disk
[root@localhost /]# shutdown -h 0
8. 환경 파일 수정 및 재 실행
윈도우에서 colinux 페도라 동작을 위해서 다음과 같이 환경파일을 수정한다.
-----[Fedora9.conf]------------------------------------------------------------------------
kernel=vmlinux
mem=256
ro
initrd=initrd.gz
cobd0=Fedora9-10G.img
cobd1=swap.img
root=/dev/cobd0
eth0=tuntap,"TAP"
cofs0=C:\
-----[Fedora9.conf]------------------------------------------------------------------------
Fedora9.bat 를 실행한다.
9. root 암호를 수정하고 일반 유저를 하나 등록 한다.
여기서는 root암호를 root로 만든다.
[root@localhost ~]# passwd
Changing password for user root.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
로그 아웃 한후 root 암호가 제대로 등록되었는지를 확인한다.
일반 유저를 하나 등록한다.
사용자 명은 user 이고 암호도 user 이다.
[root@localhost ~]# adduser user
[root@localhost ~]# passwd user
Changing password for user user.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
로그 아웃 한 이후에 user 로 로그인 한 이후에 su 명령으로 root로 전환되는 가를 확인한다.
10. 1 차 복사 본을 만들어 놓는다.
이 파일에 복사본을 만들어 놓는다.
(**) 이 이후의 내용은 여기 강좌와 비슷해서리 생략 합니다.