Yarang's Home

Andlinux에서는 루트 디렉토리로 cobd0라는 가상장치를 통해 가상 드라이브를 사용한다. 이 경우 base.vdi라는 파일을 관리하는 것으로 모든 정보를 통째로 관리하게 된다. 그러나 가상 파일 시스템을 사용하는 것의 문제점은 파일 시스템에 존재하는 파일에 업데이트하는 것이기 때문에 성능에서 많은 손실을 보게 된다.

Andlinux에서 실제 하드디스크의 파티션을 사용하는 방법을 통해 가상 파일 시스템으로 동작하면서 가질 수 있는 위험을 벗어나고자 할 대 이 방법을 사용하면 유용하다.

1. 실제 하드디스크 파티션의 추가

먼저 실제 하드디스크를 andlinux에서 인식시켜야 한다.

mem=1024
root=/dev/cobd0
initrd=initrd.gz
kernel=vmlinux
cobd0=Drives\base.vdi
cobd1=Drives\swap.vdi
eth0=slirp
eth1=tuntap,"TAP-Colinux",00:11:22:33:44:55
sda1=\Device\Harddisk0\Partition3
cofs0=v:\

sda1장치를 추가하는 방법으로 자신이 추가하고자 하는 파티션의 실제 이름 및 번호는 다음과 같이 알 수 있다.
C:\Documents and Settings\yarang>diskpart
Microsoft DiskPart version 5.1.3565
Copyright (C) 1999-2003 Microsoft Corporation.
컴퓨터: MAGI-PICOS
DISKPART> select disk 0
0 디스크가 선택한 디스크입니다.
DISKPART> list partition
  파티션 ###     종류              크기     오프셋
  -------------  ----------------  -------  -------
  파티션 1    주                   80 GB    32 KB
  파티션 2    주                  600 GB    80 GB
  파티션 3    주                   19 GB   680 GB
DISKPART>

1) diskpart 명령은 실제 하드디스크의 상태 및 파티션의 정보를 확인할 수 있는 명령어이다.

2) select disk 0 명령은 원하는 파티션이 실제하는 디스크의 번호를 적는다. 디스크 번호는 0번부터 시작하며 자신이 원하는 번호를 넣는다.

3) list partition 명령으로 파티션의 정보를 확인할 수 있다. 파티션에서 보여주는 번호를 그대로 사용하면 된다.

본 문서에서는 첫번재 디스크의 3번째 파티션으로 19GB 짜리 파티션을 대상으로 한다.

2. 루트 디스크의 정보 복사하기

cobd0 디스크의 정보를 /dev/sda1에 복사하여야 한다. 복사하는 정보는 루트 파티션의 가상 파일 시스템의 정보만을 복사한다. /dev/sda1은 /mnt/sda1에 마운트 한다.

yarang@andLinux:~$ sudo cp -axR /* /mnt/sda1/

쉘에서 cp명령에 옵션으로 axR을 주어서 하나의 파티션에 있는 파일들을 전부 복사한다.

복사후 재부팅하기 전 /mnt/sda1/etc/fstab의 정보를 바꾸어주어야 한다.

yarang@andLinux:~$ cat /mnt/sda1/etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options>  <dump> <pass>
proc  /proc  proc defaults  0 0
tmpfs  /dev/shm tmpfs defaults  0 0
none  /dev/pts devpts gid=5,mode=620  0 0

/dev/cobd0 / ext3 defaults 1 1
-->
#/dev/cobd0 / ext3 defaults 1 1
/dev/sda1 / ext3 defaults 1 1

31 /mnt/and cofs defaults 0 0
/dev/cobd1 none swap sw 0 0
/dev/cofs0 /mnt/win cofs defaults,gid=samba,dmask=0775,fmask=0775 0 0

기존의 /dev/cobd0를 /로 마운트한 정보를 /dev/sda1으로 변경하여 준다.

팁.
1) /dev 파일 시스템의 정보 추가 복사하기.
복사하기 전 시스템에서 /dev 장치 목록을 복사해주어야 한다. 특히 장치 파일은 복사가 안되는 경우가 발생할 수 있기 때문에 추가적으로 복사하여 준다.

yarang@andLinux:~$ sudo cp -aR /dev/* /mnt/sda1/dev/


3. 부팅 정보 수정

Andlinux의 부팅시 정보를 수정하기 위해 setting.txt 파일을 수정한다.
mem=1024
root=/dev/sda1
initrd=initrd.gz
kernel=vmlinux
cobd0=Drives\base.vdi
cobd1=Drives\swap.vdi
eth0=slirp
eth1=tuntap,"TAP-Colinux",00:11:22:33:44:55
sda1=\Device\Harddisk0\Partition3
cofs0=v:\

전부 수정하였다면 andlinux를 shutdown 한 후 다시 시작한다.

주의할점

푸트파티션으로 마운트할 파티션은 주 파티션 타입으로 작성하여야 한다. 확장 파티션의 논리 파티션으로는 루트 파티션으로 사용할 수 없다.


PageRank
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/20 16:24 2009/05/20 16:24
Andlinux는 윈도우에서 사용가능한 리눅스 환경이라고 할 수 있다.

현재 Andlinux는 ubuntu를 사용하고 있으며 배표판은 7.04를 바탕으로 하고 있다. 이를 업데이트하여 사용하기 위해서는 ubuntu의 업데이트 방식을 따르면 된다.

root@andLinux:~# apt-get update
root@andLinux:~# apt-get upgrade
root@andLinux:~# apt-get install update-manager-core
root@andLinux:~# do-release-upgrade

동작과정에서 설정에 대해 새로운 설정으로 수정할 것인지 혹은 이전 설정을 그냥 둘 것인지 확인하는 과정이 있다. 이전 설정을 그대로 두면서 설치하면 된다. 업데이트를 한 후 버전은 ubuntu 8.04.1로 변경이 된다. 변경된 정보는 FLTK 콘솔을 통해 확인이 가능하다.

버전이 변경되면서 발생되는 변화중의 하는 initsysv가 upstart로 변경되는 것이 가장큰 이슈일 것이다.
/etc/inittab에 있는 실행 설정들이 적용되지 않게 되기 때문에 기존의 설정들이 제대로 작동하지 않는 것으로 보이게 된다.

upstart는 event.d라는 디렉토리를 통해서 설정들을 관리한다. 따라서 기존의 inittab에 있는 것들을 event.d 디렉토리에 있는 설정으로 변환해야 한다. 기존 inittab의 가장 마지막에 있는 C0 이벤트에 대한 설정 파일을 작성해주어야 한다.

 root@andLinux:~# cat /etc/event.d/c0
# rc2 - runlevel 2 compatibility
#
# This task runs the old sysv-rc runlevel 2 ("multi-user") scripts.  It
# is usually started by the telinit compatibility wrapper.

start on runlevel 2

stop on runlevel [!2]

console output
script
        exec /usr/bin/startwindowsterminalsession
end script

c0의 다음과 같이 작성하여 디렉토리에 넣으면 문제없이 작동하는 것을 확인할 수 있다.

PageRank
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/07/25 12:16 2008/07/25 12:16