coLinux에서 제공되는 리눅스 배포판이 아닌 새로운 Linux배포판을 설치하는 방법.
검색결과 두군데중 "/mnt/iso/install.386/initrd.gz"을 사용할것임.(gtk는 그래픽용?, gtk가 아닌것은 콘솔용?)
15M짜리 램드라이브용 빈 파일을 만든다.
[준비]
coLinux
Debian Squeeze 배포판 1번 ISO CD 이미지
[coLinux 설치]
생략
[Debian Squeeze 1번 ISO파일]
(용량이 작은 "debian-6.0.0-i386-businesscard.iso"를 다운 받는게 유리하다.)
다운로드후 coLinux의 cofs를 이용한 공유기능을 설정해서 Windows의 공유 작업을 해둔다.
이것으로 coLinux에서 Debian Squeeze 1번 ISO파일로의 접근이 가능해진다.
[initrd.rmdrv 만들기]
iso를 loop device로 마운트 한다.
# mkdir /mnt/iso
# mount -o loop /shared/debian-6.0.0-i386-businesscard.iso /mnt/iso/
|
initrd를 찾아서 램드라이브를 만든다.
/mnt/iso/isolinux/isolinux.cfg를 보면 initrd의 위치를 알수 있다고 하나 isolinux.cfg에 안나와 있음.
find로 initrd.gz의 위치를 찾음
# find /mnt/iso/ -name *initrd.gz
# mnt/iso/install.386/gtk/initrd.gz
# mnt/iso/install.386/initrd.gz
|
검색결과 두군데중 "/mnt/iso/install.386/initrd.gz"을 사용할것임.(gtk는 그래픽용?, gtk가 아닌것은 콘솔용?)
램드라이브로 만들기 위해 작업 디렉토리 생성
# mkdir /tmp/squeeze.initrd |
15M짜리 램드라이브용 빈 파일을 만든다.
# dd if=/dev/zero of=/tmp/squeeze.initrd.rmdrv bs=1048576 count=15
15+0 records in
15+0 records out
15728640 bytes (16 MB) copied, 0.2 s, 79 MB/s
|
포멧
# mkfs.ext2 /tmp/squeeze.initrd.rmdrv
mke2fs 1.41.3 (12-Oct-2008)
/tmp/squeeze.initrd.rmdrv is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
3840 inodes, 15360 blocks
768 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=15728640
2 block groups
8192 blocks per group, 8192 fragments per group
1920 inodes per group
Superblock backups stored on blocks:
8193
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
|
포멧된 램드라이브 파일을 작업디렉토리인 /tmp/squeeze.initrd에 마운트 한다.
# mount -o loop /tmp/squeeze.initrd.rmdrv /tmp/squeeze.initrd |
initrd.gz을 램드라이브에 압축 해제한다.
(sudo로는 퍼미션 에러가 발생한다. su로 하던지 root계정으로 작업해아 한다.)
# cd /tmp/squeeze.initrd
# gzip -dc /mnt/iso/install.386/initrd.gz | cpio -id
20821 blocks
|
램드라이브 정리하고 작업파일들 삭제.
# rm -rf ./lost+found/
# cd ..
# umount /tmp/squeeze.initrd
# rmdir /tmp/squeeze.initrd
|
램드라이브 squeeze.initrd.rmdrv가 완성되었다.
coLinux공유폴더로 이동한다.
# mv /tmp/squeeze.initrd.rmdrv /shared/
|
[10G짜리 가상이미지 디스크 파일 생성] (windows에서 작업)
꼭 coLinux와 Windows의 공유폴더에서 작업한다.
아닐 경우 후에 파일복사등 번거로움이 있다.
C:\VM\COLINUX\IMAGES\Shared Folder>fsutil file createnew debian.squeeze.10gb.disk 10737450496
C:\VM\COLINUX\IMAGES\Shared Folder>fsutil sparse setflag debian.squeeze.10gb.disk
C:\VM\COLINUX\IMAGES\Shared Folder>fsutil sparse queryrange debian.squeeze.10gb.disk
sparse range: [0] [10737450496]
C:\VM\COLINUX\IMAGES\Shared Folder>fsutil sparse setrange debian.squeeze.10gb.disk 0 10737450496
|
10G, 5G, 3G의 용량 계산 방법의 예
(10GB = 1024*1024*1024*10 + 63*512 = 10737450496B)
(5GB = 1024*1024*1024*5 + 63*512 = 5368741376B)
(3GB = 1024*1024*1024*3 + 63*512 = 3221257728B)
(1GB = 1024*1024*1024*1 + 63*512 = 1073774080B)
+ 63*512는 정확한 용량 계산을 위해 하는듯 하나 안해도 무관함.
fsutil의 sparse를 적용하였다.
작업 완료된 빈 가상이미지 디스크 파일의 크기는 10G지만 실제 할당된 크기는 4K이다.(파일 속성에서 확인 가능)
이제 실제 사용량에 따라 디스크 공간이 할당 될것이다.
512MB 스왑 가상이미지 디스크 파일 생성
C:\VM\COLINUX\IMAGES\Shared Folder>fsutil file createnew swap.512mb.disk 536903168
|
용량 계산은 위와 동일
이곳(http://gniarf.nerim.net/colinux/swap/)에서도 구할수 있음.
디스크 포멧
리눅스나 cygwin을 써서 마운트 한후 포멧.
여기서는 기존에 설치 되어 있던 coLinux에 파일을 복사한후 작업함.
# mkfs.ext3 /shared/debian.squeeze.2gb.disk
mke2fs 1.41.3 (12-Oct-2008)
/shared/debian.squeeze.2gb.disk is not a block special device.
Proceed anyway? (y,n) y
warning: 7 blocks unused.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
656640 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8208 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
|
포멧은 중요하다.
PC에 설치하는 과정과는 다르게 설치하는 도중에 포멧을 할 수 없기 때문에 미리 포멧된 이미지를 준비해둬야 한다.
[환경파일 생성]
다시 windows에서 작업한다.
coLinux공유 폴더에 있는 debian.squeeze.2gb.disk와 swap.512mb.disk를 한곳에 모아 놓는다.
coLinux실행에 필요한 .cmd와 .conf파일을 생성.
이때 처음 설치시 .conf에서 swap은 없이 설정하고 설치 완료후 swap디스크를 설정해줌.
debian.squeeze.2gb.bat
@echo off
set COLINUX_CONSOLE_FONT=Lucida Console:12
set COLINUX_CONSOLE_EXIT_ON_DETACH=1
SET _CONF_=@debian.squeeze.2gb.conf
"..\..\coLinux\Cooperative Linux 0.7.8\colinux-daemon.exe" -v 3 -t nt %_CONF_%
|
debian.squeeze.2gb.conf
#
# This is an example for a configuration file that can
# be passed to colinux-daemon in this manner:
#
# colinux-daemon @example.conf
#
# Note that you can still prepend or append configuration and
# boot parameters before and after '@', or you can use more
# that one '@ to load several settings one after another.
#
# colinux-daemon @example.conf @overrider.conf mem=32
#
# Full list of config params is listed in colinux-daemon.txt.
# The default kernel
kernel="..\..\coLinux\Cooperative Linux 0.7.8\vmlinux"
# File contains the root file system.
# Download and extract preconfigured file from SF "Images for 2.6".
cobd0="debian.squeeze.2gb.disk"
# Swap device, should be an empty file with 128..512MB.
#cobd1="swap.512mb.disk" <- 주석처리함
# 설치시 사용할 디스크 설정
cobd2="C:\VM\COLINUX\IMAGES\Shared Folder\debian-6.0.0-i386-businesscard.iso"
cobd3="C:\VM\COLINUX\IMAGES\Shared Folder\squeeze.initrd.rmdrv"
# Tell kernel the name of root device (mostly /dev/cobd0,
# /dev/cobd/0 on Gentoo)
# This parameter will be forward to Linux kernel.
#root=/dev/cobd0
root=/dev/cobd3 <- 설치시 root를 램드라이브로 설정
# Additional kernel parameters (ro = rootfs mount read only)
ro
# Initrd installs modules into the root file system.
# Need only on first boot.
initrd="..\..\coLinux\Cooperative Linux 0.7.8\initrd.gz"
# Maximal memory for linux guest
mem=128
#mem=256
#mem=512
# Select console size, default is 80x25
#cocon=120x40
# Slirp for internet connection (outgoing)
# Inside running coLinux configure eth0 with this static settings:
# ipaddress 10.0.2.15 broadcast 10.0.2.255 netmask 255.255.255.0
# gateway 10.0.2.2 nameserver 10.0.2.3
#eth0=slirp
# Tuntap as private network between guest and host on second linux device
#eth1=tuntap
# ------------------------------------------------------------------------------------
# coLinux에서 인터넷을 사용하기위해 3가지 방식중 하나를 사용 할수 있다.
# NDIS브릿지 방식이 제일 간단하고 빠르게 동작 하는듯 하나 현재 coLinux가 설치된
# Windows에서 coLinux로 ssh접속이 안된다.
# 외부에서 coLinux에 접근 하거나 coLinux에서 인터넷등의 사용은 전혀 문제없다.
# 아직 까지는 완벽하게 사용 가능한 방식은 tap방식임으로 tap방식을 쓴다.
# ------------------------------------------------------------------------------------
# 1. tap방식
# 이 방식을 사용할 경우 Windows의 네트웍환경에서 브릿지를 만들어 줘야 한다.
# coLinuxNet : TAP-Win32 이더넷아답터 이름
eth0=tuntap, coLinuxNet
# 2. NDIS 브릿지
# LocalArea2 : 실제 인터넷 연결되어 있는 이더넷 아답터 이름.
# pcap이나 windows에서 브릿지를 따로 안만들어 줘도 되는환경.
# 그러나 왜그런지 몰라도 coLinux가 설치된 Windows에서 ssh접속이 안된다.
#eth0=ndis-bridge,LocalArea2,00:ff:8d:a4:00:00
#eth0=ndis-bridge,LocalArea2
# 3. pcap 브릿지
# 이방식은 pcap을 설치해야 한다.
# coLinux에도 이더넷을 2개 설치해야한다.
# 원래는 이렇게만 하면 되어야 하나 coLinux가 설치된 Windows에서 ssh접속이 안된다.
# 여기서 Windows에서 브릿지를 만들어 주면 동작 하는듯 보임.
# 이중으로 브릿지를 만들어 주기에 별로 안좋은것 같음..
#eth0=tuntap, coLinuxNet
#eth1=pcap-bridge, LocalArea2
# LocalArea2 : 실제 인터넷 연결되어 있는 이더넷 아답터 이름.
# 그러나 아무 이름으로 해도 잘된다.
# 예를들어 abcd나 aaaaa나 asdf99등...
# Setup for serial device
#ttys0=COM1,"BAUD=115200 PARITY=n DATA=8 STOP=1 dtr=on rts=on"
# Run an application on colinux start (Sample Xming, a Xserver)
#exec0=C:\Programs\Xming\Xming.exe,":0 -clipboard -multiwindow -ac"
# 마운트
cofs0="C:\VM\COLINUX\IMAGES\DebianLenny\Shared\"
|
[설치과정] - 이미지 참고
[.conf파일 수정]
완료후 debian.squeeze.2gb.conf 파일 수정
#
# This is an example for a configuration file that can
# be passed to colinux-daemon in this manner:
#
# colinux-daemon @example.conf
#
# Note that you can still prepend or append configuration and
# boot parameters before and after '@', or you can use more
# that one '@ to load several settings one after another.
#
# colinux-daemon @example.conf @overrider.conf mem=32
#
# Full list of config params is listed in colinux-daemon.txt.
# The default kernel
kernel="..\..\coLinux\Cooperative Linux 0.7.8\vmlinux"
# File contains the root file system.
# Download and extract preconfigured file from SF "Images for 2.6".
cobd0="debian.squeeze.2gb.disk"
# Swap device, should be an empty file with 128..512MB.
cobd1="swap.512mb.disk" <- 주석해제
# 설치시 사용할 디스크 설정
#cobd2="C:\VM\COLINUX\IMAGES\Shared Folder\debian-6.0.0-i386-businesscard.iso" <-주석처리
#cobd3="C:\VM\COLINUX\IMAGES\Shared Folder\squeeze.initrd.rmdrv" <- 주석처리
# Tell kernel the name of root device (mostly /dev/cobd0,
# /dev/cobd/0 on Gentoo)
# This parameter will be forward to Linux kernel.
root=/dev/cobd0 <- 주석해제
#root=/dev/cobd3 <- 주석처리
# Additional kernel parameters (ro = rootfs mount read only)
ro
# Initrd installs modules into the root file system.
# Need only on first boot.
initrd="..\..\coLinux\Cooperative Linux 0.7.8\initrd.gz"
# Maximal memory for linux guest
mem=128
#mem=256
#mem=512
# Select console size, default is 80x25
#cocon=120x40
# Slirp for internet connection (outgoing)
# Inside running coLinux configure eth0 with this static settings:
# ipaddress 10.0.2.15 broadcast 10.0.2.255 netmask 255.255.255.0
# gateway 10.0.2.2 nameserver 10.0.2.3
#eth0=slirp
# Tuntap as private network between guest and host on second linux device
#eth1=tuntap
# ------------------------------------------------------------------------------------
# coLinux에서 인터넷을 사용하기위해 3가지 방식중 하나를 사용 할수 있다.
# NDIS브릿지 방식이 제일 간단하고 빠르게 동작 하는듯 하나 현재 coLinux가 설치된
# Windows에서 coLinux로 ssh접속이 안된다.
# 외부에서 coLinux에 접근 하거나 coLinux에서 인터넷등의 사용은 전혀 문제없다.
# 아직 까지는 완벽하게 사용 가능한 방식은 tap방식임으로 tap방식을 쓴다.
# ------------------------------------------------------------------------------------
# 1. tap방식
# 이 방식을 사용할 경우 Windows의 네트웍환경에서 브릿지를 만들어 줘야 한다.
# coLinuxNet : TAP-Win32 이더넷아답터 이름
eth0=tuntap, coLinuxNet
# 2. NDIS 브릿지
# LocalArea2 : 실제 인터넷 연결되어 있는 이더넷 아답터 이름.
# pcap이나 windows에서 브릿지를 따로 안만들어 줘도 되는환경.
# 그러나 왜그런지 몰라도 coLinux가 설치된 Windows에서 ssh접속이 안된다.
#eth0=ndis-bridge,LocalArea2,00:ff:8d:a4:00:00
#eth0=ndis-bridge,LocalArea2
# 3. pcap 브릿지
# 이방식은 pcap을 설치해야 한다.
# coLinux에도 이더넷을 2개 설치해야한다.
# 원래는 이렇게만 하면 되어야 하나 coLinux가 설치된 Windows에서 ssh접속이 안된다.
# 여기서 Windows에서 브릿지를 만들어 주면 동작 하는듯 보임.
# 이중으로 브릿지를 만들어 주기에 별로 안좋은것 같음..
#eth0=tuntap, coLinuxNet
#eth1=pcap-bridge, LocalArea2
# LocalArea2 : 실제 인터넷 연결되어 있는 이더넷 아답터 이름.
# 그러나 아무 이름으로 해도 잘된다.
# 예를들어 abcd나 aaaaa나 asdf99등...
# Setup for serial device
#ttys0=COM1,"BAUD=115200 PARITY=n DATA=8 STOP=1 dtr=on rts=on"
# Run an application on colinux start (Sample Xming, a Xserver)
#exec0=C:\Programs\Xming\Xming.exe,":0 -clipboard -multiwindow -ac"
# 마운트
cofs0="C:\VM\COLINUX\IMAGES\DebianLenny\Shared\"
|
[재시작후 스왑 생성]
# mkswap /dev/cobd1
Setting up swapspace version 1, size = 524312 KiB
no label, UUID=7965d286-b7ef-4d74-a880-6bf062b909da
# swapon /dev/cobd1
Adding 524308k swap on /dev/cobd1. Priority:-1 extents:1 across:524308k
|
[스왑등록]
# vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/cobd0 during installation
UUID=eba280cf-6ef5-4b6e-b228-df1af6e56ee2 / ext3 errors=remount-ro 0 1
/dev/cobd2 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/cobd1 none swap sw 0 0 <- swap를 등록
|
작업 완료.
재부팅후 사용하면된다.
# reboot |
[기타 참고 사항]
부팅시 "Setting up console font and keymap..."와 같은 메세지가 출력되면서 수초에서 수십초간 지연되는 경우 아래처럼 한다.
# vi /etc/init.d/console-setup
#!/bin/sh
### BEGIN INIT INFO
# Provides: console-setup
# Required-Start: $remote_fs
# Required-Stop:
# Should-Start: console-screen kbd
# Default-Start: S
# Default-Stop:
# X-Interactive: true
# Short-Description: Set console font and keymap
### END INIT INFO
set -e
uname -r | grep -qe "-co-" && exit 0 <- 추가
# This script is used jointly by console-setup and console-setup-mini.
# It belongs to keyboard-configuration because it is forbidden two
# different packages to share common configuration file.
test -f /bin/setupcon || exit 0
.
.
.
|
부팅시 starting MTA: 에서 지연되는 현상이 발생할때...
# mv /etc/rc2.d/SXXexim4 /etc/rc2.d/KXXexim4
'작업일지 > coLinux' 카테고리의 다른 글
coLinux 디스크 확장및 추가 - 방법2 (0) | 2011.01.24 |
---|---|
coLinux Portable 만들기 (0) | 2011.01.24 |
coLinux의 디스크 확장및 축소 - 방법1 (0) | 2011.01.24 |
coLinux의 .conf파일설명 (0) | 2011.01.23 |
coLinux에서 오드로이드 git가 안될때... (0) | 2010.03.15 |