用busybox创建一个不足50M的Linux

 

我们这里使用的内核版本是linux-2.6.38.5 busybox使用的是busybox-1.20.2 

1、准备

先在虚拟机上添加一块新硬盘,给硬盘分两个主分区(本例中的硬盘名为hdbhdb1hdb2,格式化文件系统为ext3,然后将hdb1挂载至/mnt/boot,将hdb2挂载至/mnt/sysroot.

2、编译

3、制作

将编译好的busybox复制到/mnt/sysroot目录下并且删掉无用项linuxrc

 

创建一个目录为系统制作init文件

 

另外还需创建两个必要的设备文件

[root@localhost busybox]# mknod dev/console c 5 1

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

编辑init文件

[root@localhost 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

init文件赋权限,然后压缩内容送给boot作为initrd文件

建立真正的根文件系统

 

    还需创建两个必要的设备文件

[root@localhost busybox]# mknod dev/console c 5 1

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

为系统建立启动所需的脚本并且赋予权限

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

文件内容为:

#!/bin/sh

echo -e "\tWelcome to  \033[31mMageEdu\033[0m Linux"

echo -e "Remounting the root filesystem ..."

mount -t proc proc /proc

mount -t sysfs sysfs /sys

mount -o  remount,rw  / 

echo -e "Creating the files of device ..."

mdev -s 

echo -e "Mounting the filesystem ..."

mount -a

swapon -a

echo -e "Starting the log daemon ..."

syslogd

klogd

echo -e "Configuring loopback interface ..."

ifconfig  lo  127.0.0.1/24

ifconfig eth0 172.16.100.9/16

# END

[root@localhost sysroot]# chmod +x etc/rc.d/rc.sysinit

init配置所需文件inittab

[root@localhost sysroot]# vim etc/inittab

文件内容:

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

console::respawn:-/bin/sh

::ctrlaltdel:/sbin/reboot

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

创建文件系统表配置文件fstab

[root@localhost sysroot]# vim etc/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

为日志进程建立配置文件,将日志发送至/var/log/messages文件

[root@localhost sysroot]# vim etc/syslog.conf

文件内容:

*.info    /var/log/messages

这些做完了不要忘了最关键的一步,安装grub

[root@localhost ~]# grub-install --root-directory=/mnt /dev/hdb

[root@localhost ~]# cd /mnt/boot

[root@localhost boot]# vim grub/grub.conf

文件内容:

default=0

timeout=5

color   light-green/black light-magenta/black

title Welcom to Linux(kernel:2.6.38.5)

        root (hd0,0)

        kernel /bzImage ro root=/dev/hdb2 quiet

        initrd /initrd.gz

至此这个Linux已经可以运行了,而且还包含了数百种命令,但是你知道这个Linux有多大吗?做好之后可以自己看一下,我的还不到30M……

     说明一下,这个Linux是不支持的bash的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章