需要实验准备

1.Linux kernel: 2.6.18-398.el5(编译完成的内核)

2.busybox version: busybox-1.20.2.tar.bz2(原始下载文件)

3.虚拟机硬盘创建/dev/hda,并挂载至Linux中


制作步骤:


1.在www.busybox.net下载稳定版本 busybox-1.20.2.tar.bz2(原始下载文件)

2.[root@www ~]# tar xf busybox-1.20.2.tar.bz2 

3.[root@www ~]# cd busybox-1.20.2

4.[root@www busybox-1.20.2]# make menuconfig

5.[root@www busybox-1.20.2]# make install

6.默认状态下,make install会出现错误。

7.下载内核版本比较高的linux-2.6.28.10

8.[root@www ~]# tar xf linux-2.6.28.10.tar.gz -C /usr/src

9.[root@www busybox-1.20.2]#mkdir include/mtd --创建mtd文件夹

10.[root@www busybox-1.20.2]#cd include/mtd/

11.[root@www mtd]# cp /usr/src/linux-2.6.28.10/include/mtd/ubi-user.h .

12.[root@www busybox-1.20.2]# pwd

/root/busybox-1.20.2 --重新回到此目录

13.[root@www busybox-1.20.2]# make install --重新执行

14.[root@www busybox-1.20.2]# cp -a _install/ /tmp/busybox --执行完之后在文件夹中会生成_install, cp

15.[root@www busybox]# pwd

/tmp/busybox --切换至此路径下

16.[root@www busybox]# rm -f linuxrc --删除软连接

17.[root@www busybox]# mkdir etc dev proc sys mnt/sysroot tmp lib/modules -pv --创建文件目录

18.因为busybox默认本身不支持ext3文件系统,所以需要在lib/modules目录下复制支持ext3文件系统的模块文件

[root@www busybox]# modinfo ext3

filename:       /lib/modules/2.6.18-398.el5/kernel/fs/ext3/ext3.ko

license:        GPL

description:    Second Extended Filesystem with journaling extensions

author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others

srcversion:     92609DA8337BBFF34F1E076

depends:        jbd

vermagic:       2.6.18-398.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1

module_sig: 883f3505418e2c64014561c61e8fb9e112dc850a0d7887988407a3f77316d643bee4ac428515bd05b0a0c44313fa970d2f6d37ad6661d4f44c057bd4d6f

[root@www busybox]# modinfo jbd

filename:       /lib/modules/2.6.18-398.el5/kernel/fs/jbd/jbd.ko

license:        GPL

srcversion:     C349852C2855CD69124C9C8

depends:        

vermagic:       2.6.18-398.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1

module_sig: 883f3505418e2c64014561c61e8fb9e112e1ea09f64345dbfc6fc7547b48441499c94d2d2431eaa309e3576d1f121cfe7d8c11facf9ed7ea020e8a77dd3

19.[root@www busybox]# cp /lib/modules/2.6.18-398.el5/kernel/fs/jbd/jbd.ko lib/modules/

   [root@www busybox]# cp /lib/modules/2.6.18-398.el5/kernel/fs/ext3/ext3.ko lib/modules/

   [root@www busybox]# ls lib/modules/

ext3.ko  jbd.ko

20.[root@www busybox]# mknod dev/console c 5 1

   [root@www busybox]# mknod dev/null c 1 3

21.[root@www busybox]# vim init

#!/bin/sh

#

mount -t proc proc /proc

mount -t sysfs sysfs /sys

insmod /lib/modules/jbd.ko

insmod /lib/modules/ext3.ko

mdev -s

mount -t ext3 /dev/hda2 /mnt/sysroot

exec switch_root /mnt/sysroot /sbin/init

22.[root@www busybox]# find . | cpio -H newc --quiet -o | gzip -9 > /mnt/boot/initrd.gz --将路径中的文件压缩归档至/mnt/boot/目录

23.[root@www boot]# grub-install --root-directory=/mnt /dev/hda

/mnt/boot 此路径下

24.[root@www boot]# vim grub.conf

default=0

timeout=3

title MyLinux (2.6.18)

        root (hd0,0)

        kernel /vmlinuz ro root=/dev/hda2

        initrd /initrd.gz

25.准备rootfs

26.[root@www busybox-1.20.2]# cp -a _install/* /mnt/sysroot/

27.[root@www sysroot]# mkdir proc sys dev tmp var/{log,lock,run} lib/modules etc/rc.d/init.d root boot mnt media -pv

28.[root@www sysroot]#mknod dev/console c 5 1

   [root@www sysroot]#mknod dev/null c 1 3

29.[root@www sysroot]#vim etc/inittab

::sysinit:/etc/rc.d/rc.sysinit

console::respawn:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

30.[root@www sysroot]#vim fstab

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

/dev/hda1 /boot ext3 defaults 0 0

/dev/hda2 / ext3 defaults 1 1

31.[root@www sysroot]#mknod dev/console c 5 1

32.[root@www sysroot]#mknod dev/null c 1 3

33.[root@www sysroot]#vim etc/rc.d/rc.sysinit

#!/bin/sh

echo -e "Welcome to MageEdu Linux"


mount -t proc proc /proc

mount -t sysfs sysfs /sys

mount -o remount,rw /


mdev -s


mount -a

swapon -a

34.sync

35.sync