用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的!

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