我们都知道linux系统具有无比强大的功能,但是有时候功能强大并不一定是我们想要的,有些情况下我们想要的恰恰就是一个简洁、消耗资源少、能运行一些基本的功能和基本指令的系统,这时候就需要我们手动来制作一个精简的linux系统。
如下图所示:我们有一台待安装的主机(主机B)和一台功能完备的主机(主机A),首先把待安装主机的硬盘拆下来放到主机A上,然后在主机A把内核、驱动、进程、库文件等一些系统必备的东西放到空的硬盘上做成系统硬盘,最后把做好的硬盘放到主机B上直接启动就行了。
下面我们在虚拟机上来模拟这个实验:
1、在宿主机上创建一个空的硬盘
2、打开主机A进行硬盘分区
(1)利用fdisk/dev/adb对空的硬盘进行分区,分区大小分别为主分区一(作为引导分区)100M、主分区二(作为根分区)1G(根分区不能太小)和主分区三(作为虚拟分区)500M
(2)对分区做标识
(3)分别对第一第二分区做格式化
(4)新建两个挂载点,把新硬盘的前两个分区分别挂载到两个挂载点上
3、为新硬盘创建grub引导程序引导的第一、第二阶段建
(1)创建grub引导程序引导的第二阶段,如下所示,参数DIR既是指/mnt/dev/adb
如下图所示在boot目录下生成了grub菜单,进入grub目录查看,除了grub.conf的配置文件没有外其他说明文件和描述文件都有,这里需要说明的是配置文件需要我们手动创建。
(2)创建grub引导第一阶段
首先输入grub,然后开始创建
4、拷贝内核
5、拷贝驱动
(1)在家目录下创建一个临时工作空间,在该目录下把主机A的驱动解压缩到该目录
在temp目录下有些比较重要的目录或文件,比如bin(放置库文件)、init(init程序调用的相关信息)。下面我们来查看一下init文件,如图所示,我们要根据实际情况做相应的调整。
(2)把temp目录下的文件重新打包成一个文件,并输送到新硬盘的引导分区下
6、切换到/mnt/boot/grub目录,创建grub.conf文件,文件内容如下
7、在新硬盘的根分区下建设文件系统(下面建设的是必要的目录,可根据实际情况设置哦)
8、拷贝可执行程序和其所依赖的库文件
(1)这里我们先拷贝init的可执行程序和所依赖的库
首先查看可执行文件的具体位置,再进行拷贝
然后进行查看库文件并拷贝
如上图所示,凡是带有/lib目录的都要拷贝
(2)根据上边的方法再分别把bash、ls、cat进行拷贝
9、配置inittab文件
(1)切换到/mnt/sysroot/etc目录下,建个inittab文件。
(2)打开/etc/inittab文件
(3)因为不需要太多的功能,在inittab文件里我们只留下0、6级别和初始化的文件,也就是上图中21、23和29行。
10、在/mnt/sysroot/rc.d目录下配置初始化文件rc.sysinit