我們這裏使用的內核版本是linux-2.6.38.5 busybox使用的是busybox-1.20.2
1、準備
先在虛擬機上添加一塊新硬盤,給硬盤分兩個主分區(本例中的硬盤名爲hdb)hdb1和hdb2,格式化文件系統爲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的!