本文的主要目的是介绍如何制作colinux可以使用的ubuntu文件系统,主要是借助于debootstrap工具,通过网络进行文件系统制作。参考的也是colinux官网上面的一个文章,借助已有的colinux文件系统,制作自己文件系统。
参考文章的地址,http://colinux.wikia.com/wiki/UbuntuBase
这篇文章是在已经安装好的ubuntu系统上进行实现的。
首先通过命令在windows下制作初始的文件系统,具体如下
fsutil file createnew root-new.fs 4294967296
启动colinux,在此之前先在配置参数中挂载我们刚刚创建的文件系统,例如
cobd2="data\root-new.fs"
注意该挂载盘符,待会儿我们将在脚本中使用
接下来要安装相应工具,在colinux下执行如下命令
sudo apt-get install debootstrap
准备工作完成之后,就可以执行脚本制作文件系统了,具体脚本内容如下。
其中,UBUNTU_VERSION指定了ubuntu的版本号,
CO_IMAGE指定了刚刚我们制作的文件在系统中的具体位置
此外,还有一个不同的地方是我修改了源的地址,改为163的源,国内会比较快
#!/bin/sh # cobootstrap.sh: Build a colinux-ubuntu image. Works on top of debootstrap # # The size must be enough to download all the packages into the apt cache # and install them UBUNTU_VERSION=precise CO_WD=`pwd` cd `dirname $0` CO_ROOT=`pwd` cd $CO_ROOT CO_IMAGE=/dev/cobd2 CO_LOG=$CO_ROOT/log cp /dev/null $CO_LOG >> $CO_LOG 2>&1
CO_MOUNT=$CO_ROOT/mnt
mkfs.ext3 -J size=4 -F -m 0 $CO_IMAGE if ! test -f $CO_MOUNT ; then mkdir -p $CO_MOUNT fi mount -o loop -t ext3 $CO_IMAGE $CO_MOUNT mkdir -p /tmp/apt_cache mkdir -p $CO_MOUNT/var/cache/apt/archives/partial mount --bind /tmp/apt_cache $CO_MOUNT/var/cache/apt/archives/
debootstrap --verbose --include=ssh --exclude=pcmcia-cs \ --arch i386 $UBUNTU_VERSION $CO_MOUNT http://mirrors.163.com/ubuntu/
for i in 0 1 2 3 4 do if ! test -f $CO_MOUNT/dev/cobd$i ; then mknod $CO_MOUNT/dev/cobd$i b 117 $i >> $CO_LOG 2>&1 fi done
CO_APT=$CO_MOUNT/etc/apt/sources.list echo "deb http://mirrors.163.com/ubuntu ${UBUNTU_VERSION} main restricted universe multiverse" > $CO_APT echo "deb http://mirrors.163.com/ubuntu ${UBUNTU_VERSION}-updates main restricted universe multiverse" >> $CO_APT
CO_HOSTS=$CO_MOUNT/etc/hosts echo "127.0.0.1 localhost colinux" > $CO_HOSTS CO_HOSTNAME=$CO_MOUNT/etc/hostname echo "colinux" > $CO_HOSTNAME
CO_INTERFACES=$CO_MOUNT/etc/network/interfaces echo "auto lo " > $CO_INTERFACES echo "iface lo inet loopback" >> $CO_INTERFACES echo "auto eth0" >> $CO_INTERFACES echo "iface eth0 inet dhcp" >> $CO_INTERFACES
CO_FSTAB=$CO_MOUNT/etc/fstab echo "/dev/cobd0 / ext3 defaults 0 1" > $CO_FSTAB #echo "/dev/cobd1 none swap sw 0 0" >> $CO_FSTAB echo "proc /proc proc defaults 0 0" >> $CO_FSTAB
chroot $CO_MOUNT apt-get update chroot $CO_MOUNT apt-get autoclean chroot $CO_MOUNT passwd -d root
umount $CO_MOUNT/var/cache/apt/archives umount $CO_MOUNT echo "make root filesystem success" exit 0 |
制作完成的文件系统加载之后,会发现cpu占用率为100%,通过top命令可以看到主要是由rsyslog进程引起的,通过修改其配置文件可以解决。具体如下:
vi /etc/rsyslog.conf
将$ModLoad imklog 注释掉即可
rm /etc/udev/rules.d/70-persistent-net.rules
rm -rf /lib/modules/*-co-*
具体可见http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Ubuntu/Ubuntu%2012.04/