内核
制作操作系统听起来貌似很厉害的样子,但这只是对于初级linux学者或是没
接触过IT的人来说的。制作一个linux系统并没有想象中的那么难,最为关键
的就是内核。可以说内核就是一个linux系统的核心,或者说是linux的灵魂。
虽然它不是做具体有生产力的工作的,但却是协调其他程序或者硬件的一个
协调者,在维护系统运转,协助CPU工作中可是功不可没的!
制作微型linux系统流程
环境介绍
这里所说的制作一个微型linux就是在一个装有linux系统的主机上装上两块磁
盘,第一个磁盘是装有linux系统,第二块磁盘把第一块磁盘的内核复制过去,
然后再自行加上引导程序,在复制几个可执行命令,这样一个微型linux系统就
能运行起来了。
安装流程
1、将第二块磁盘新建两个分区,然后指定文件系统再格式化:
新建了两个分区sdb1和sdb2并且都指定了ext4格式化。sdb1用来放置/boot
目录,也就是在开机时被当作根来引导的磁盘分区,所以可以说是虚拟的根
既然虚拟的给100M的空间就足够了。而sdb2是用来存放真正的根的,所以空
间需要大一些给了1G。在此需要注意的是,若是用的centos5做的可能不支持
ext4的文件系统,就用ext3就行了。
2、新建目录,挂载分区
在/mnt下新建两个目录/boot和/sysroot,用来存放内核文件和当作根使用。创
建完目录就把刚才新建在sdb下的两个分区分别挂载至目录下:
3、安装grub、复制内核文件:
虽然在安装grub时还有一种方法那就是用setup安装,但是在此时不要用setup
来安装,因为setup不支持在一个主机上引导第二次grub,所以还是用install
有以上就可以看得出来了/mnt/boot就是存放内核文件的。
4、在/mnt/sysroot下新建一些根文件目录,将bash复制到/mnt/sysroot下面,
切换到/mnt/sysroot下测试一下:
在此说明一下cp.sh这个脚本,这是一个复制一些可执行命令以及所依赖的共
享库到另一个目录下面,在这所指的是复制到/mnt/sysroot,这个目录可以进
脚本里更改的。脚本不是制作这个微型linux的重点,所以在这就不多说,只
是让大家知道这些命令是通过这样一个方式复制过去的。将bash复制过去后,
为了后面的印证可以将一些简单的可执行命令也复制过去如:ls,cp,mv等,此
时可以使用tree命令查看一下/mnt/sysroot目录,结构有点根的雏形了吧!然
后使用chroot /mnt/sysroot切换到自己制作的小系统里。
5、现在系统的雏形出来了但是,还缺少grub的内核引导文件,所以现在还引
导不了系统的启动,所以接下来要收到编辑一个内核文件:
前哪一张截图是给bash创建了一个链接叫sh因为系统默认查找shell的时候
都是找sh的。因为要把第二块磁盘拿到一个新的PC机上当作一个微型linux
系统使用,所以给root的仍是(hd0,0),root也是在新PC机上的sda2的。
6、现在若是将磁盘拿到一个新的PC机上,只能以bash运行还不能用init来
引导,所以接下来要编辑一个init脚本,让系统以init来运行:
从上面的这个脚本里看以看的出来,第一行有效数据是在开机时以蓝色显示
mylinux的欢迎信息。下面两行是挂载了在/etc/fstab下面的两个伪文件系统。
/bin/bash上面的那一行是又将根分区以读写的方式重新挂载了一次。
注意:在虚拟机上做的建议不要这样以读写方式挂载因为宿主机与目标机一起运
行,都读写数据的话会导致系统崩溃。在这为了测试就以读写方式挂载了
7、以上实现了以init脚本引导进入系统,但要启用系统的网络功能,给系统配置
IP还实现不了,那么接下来就给系统加上网卡模块能实现网络功能:
新在/mnt/sysroot/lib下面建一个目录modules用来放置从宿主机上复制的网络模块
下面的cp就不用解释了吧,就是从宿主机上将网络模块复制下来。为了验证网络是否
可用,我们需要用cp.sh这个脚本将一些网络命令复制过去。
说明:insmod命令是动态装载模块,后面只需跟上模块路径即可。
8、为了能使网卡功能在开机的时候就能自行运行,需要将网络模块加之init这个脚本
里,开机进入系统就可以直接使用:
如上面划红线的上面就是把网卡模块加载至自己的linux系统里,划红线的就是给自己
制作的微型linux分配的ip,现在开机进入系统就能直接分配到ip:
现在微型linux系统已经制作完成了,网卡模块也加进去了也算是一个内核
形式的linux主机,若是还需要什么功能模块都可以加进去,慢慢完善。
注意:再开机测试之前反复检查好/mnt/boot下面的vmlinuz和initramfs.img
文件和/mnt/boot/grub.grub.conf文件,是否有错误或是信息输入有误的地方。
总结
在制作这个微型linux时,最重要的是要对内核和linux系统的工作原理要
有非常深刻的了解以及在制作过程中的细心认真,而并非是要有多高的技
术。也许在制作过程中会遇到许多这样那样匪夷所思的问题,但是沉下心
认真排查,慢慢就会解决了,当你回头时发现也不过如此嘛!