|
需要实验准备
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.[iyunv@www ~]# tar xf busybox-1.20.2.tar.bz2
3.[iyunv@www ~]# cd busybox-1.20.2
4.[iyunv@www busybox-1.20.2]# make menuconfig
5.[iyunv@www busybox-1.20.2]# make install
6.默认状态下,make install会出现错误。
7.下载内核版本比较高的linux-2.6.28.10
8.[iyunv@www ~]# tar xf linux-2.6.28.10.tar.gz -C /usr/src
9.[iyunv@www busybox-1.20.2]#mkdir include/mtd --创建mtd文件夹
10.[iyunv@www busybox-1.20.2]#cd include/mtd/
11.[iyunv@www mtd]# cp /usr/src/linux-2.6.28.10/include/mtd/ubi-user.h .
12.[iyunv@www busybox-1.20.2]# pwd
/root/busybox-1.20.2 --重新回到此目录
13.[iyunv@www busybox-1.20.2]# make install --重新执行
14.[iyunv@www busybox-1.20.2]# cp -a _install/ /tmp/busybox --执行完之后在文件夹中会生成_install, cp
15.[iyunv@www busybox]# pwd
/tmp/busybox --切换至此路径下
16.[iyunv@www busybox]# rm -f linuxrc --删除软连接
17.[iyunv@www busybox]# mkdir etc dev proc sys mnt/sysroot tmp lib/modules -pv --创建文件目录
18.因为busybox默认本身不支持ext3文件系统,所以需要在lib/modules目录下复制支持ext3文件系统的模块文件
[iyunv@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
[iyunv@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.[iyunv@www busybox]# cp /lib/modules/2.6.18-398.el5/kernel/fs/jbd/jbd.ko lib/modules/
[iyunv@www busybox]# cp /lib/modules/2.6.18-398.el5/kernel/fs/ext3/ext3.ko lib/modules/
[iyunv@www busybox]# ls lib/modules/
ext3.ko jbd.ko
20.[iyunv@www busybox]# mknod dev/console c 5 1
[iyunv@www busybox]# mknod dev/null c 1 3
21.[iyunv@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.[iyunv@www busybox]# find . | cpio -H newc --quiet -o | gzip -9 > /mnt/boot/initrd.gz --将路径中的文件压缩归档至/mnt/boot/目录
23.[iyunv@www boot]# grub-install --root-directory=/mnt /dev/hda
/mnt/boot 此路径下
24.[iyunv@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.[iyunv@www busybox-1.20.2]# cp -a _install/* /mnt/sysroot/
27.[iyunv@www sysroot]# mkdir proc sys dev tmp var/{log,lock,run} lib/modules etc/rc.d/init.d root boot mnt media -pv
28.[iyunv@www sysroot]#mknod dev/console c 5 1
[iyunv@www sysroot]#mknod dev/null c 1 3
29.[iyunv@www sysroot]#vim etc/inittab
::sysinit:/etc/rc.d/rc.sysinit
console::respawn:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
30.[iyunv@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.[iyunv@www sysroot]#mknod dev/console c 5 1
32.[iyunv@www sysroot]#mknod dev/null c 1 3
33.[iyunv@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
|
|