前提:
1、一个作为宿主机的 Linux;本文使用的是 Redhat Enterprise Linux 5.4;
2、在宿主机上提供一块额外的硬盘作为新系统的存储盘,为了降低复杂度,这里添加使用
一块 IDE 接口的新硬盘;
3、Linux 内核源码,busybox 源码;本文使用的是目前最新版的 linux-2.6.34.1 和 busybox-
1.16.1。
说明:本文是一个 step by step 的实做指南;
一、为系统上的新硬盘建立分区,这里根据需要先建立一个大小为 100M 的主分区作为新建
系统的 boot 分区和一个 512M 的分区作为目标系统(即正在构建的新系统,后面将沿用此
名称)的根分区;100M 的分区格式化后将其挂载至/mnt/boot 目录下;512M 的分区格式化
后将挂载至/mnt/sysroot 目录;
说明:
1、此处的 boot 和 sysroot 的挂载点目录名称尽量不要修改,尤其是 boot 目录,否则您必须
保证后面的许多步骤都做了相应的改动;
2、新建系统的 boot 目录也可以跟根目录在同一个分区,这种方式比独立分区还要简单些,
因此这里将不对此种方法再做出说明;
二、编译内核源代码,为新系统提供一个所需的内核(本例中的源代码包都位于/usr/src 目
录中)
# cd /usr/src
# tar jxvf linux-2.6.34.1.tar.bz2
# ln -sv linux-2.6.34.1 linux
# cd linux
然后下载 ftp://172.16.0.1/pub/Sources/kernel/kernel-2.6.30.5-i686.cfg 至当前目录中,并重命
名为.config。
# make menuconfig
根据您的实际和规划选择所需要的功能;本实例计划制作一个具有网络的功能的 tiny linux
且不打算使用内核模块,因此,这里选择把本机对应的网卡驱动直接编译进了内核。作者使
用的是 vmware Workstation 虚拟机,所以,所需的网上驱动是 pcnet32 的,其它的均可按需
要进行选择。选择完成后需要保存至当前目录下.config 文件中。
# make SUBDIR=arch/
# cp arch/x86/boot/bzImage /mnt/boot
# make menuconfig
提示:为了实现后面的功能,请务必将文件系统中的 ext3 和网卡的驱动程序直接编译进内