制作colinux文件系统

来源:互联网 发布:对外直接投资数据 编辑:程序博客网 时间:2024/06/10 19:21

   本文的主要目的是介绍如何制作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/


原创粉丝点击