打造个人专属的微型Linux--具体实现篇

这期间在制作过程中个人也遇到了些许问题,所以断断续续的才把此篇写完。
问题是在initrd阶段识别不到磁盘设备,挂载不了rootfs,谷歌了查了很多资料都没得到解决。刚开始用的是CentOS6.2的内核,6.2更新了initrd,里面的init脚本和以前有很大的不同,于是我换到5.8的内核,还是不行,又切换到5.4的内核,问题依然存在。火大,又自己去官网下载了2.6.18的内核源代码,基于安装的centos5.4的config重新编译了一次(编译太耗时间),问题依旧存在。。。那时候真的是特别无语。最后还是找马哥交流了下,在这里还要多谢马哥的指导,找到了问题的关键所在。

总结在上一篇的linux启动原理(见 http://www.linuxidc.com/Linux/2012-07/64753.htm ),我们知道要启动一个linux所必须的有的东西有以下几个
1.bootloader:系统引导程序GRUB
2.kernel:系统内核
3.initrd:引导内核的ramdisk
4.init:系统第一个进程
5.用户接口bash
5.init,bash等程序所依赖的库文件和脚本
 
为了避免各位看官看的迷糊,首先先说下大概的一个流程
整个实验的流程:安装bootloader--复制kernel到硬盘--提供initrd--配置GRUB--提供init,bash,等必须的软件和库文件
 
由以上流程罗列出以下所需要的一些配置文件,程序等元素
 
配置文件 /etc/inittab /boot/grub/grub.conf
脚本 /etc/rc.d/rc.sysinit
必须的程序
kernel
/sbin/init
/bin/bash
库文件:用ldd查看具体需要哪些库文件
 
知道了以上所需要的东西,接下来,就可以开始动手在一块硬盘中一步步的打造一个微型的linux了
具体思路是在一个安装好的linux宿主机中添加一块新硬盘,在这块硬盘上安装一个微型的linux,再用另外一台虚拟机加载那块硬盘启动微型linux
 
OK,just do it !
 
ps:以下都在虚拟机中实现
 
 
step1:
首先添加一块硬盘
打造个人专属的微型Linux--具体实现篇
 
打造个人专属的微型Linux--具体实现篇
 
step2:
启动宿主linux系统,对新添加的硬盘进行分区。这里分一个boot分区,一个根分区和一个swap分区
打造个人专属的微型Linux--具体实现篇
可以看到,boot分区用了100MB,根分区我只使用了512MB。从中可以看出这是一个极其精简的linux。SWAP分区用了128MB,所以下面我将只会使用64MB的内存来启动这个linux。

相关推荐