我们都知道linux系统具有无比强大的功能,但是有时候功能强大并不一定是我们想要的,有些情况下我们想要的恰恰就是一个简洁、消耗资源少、能运行一些基本的功能和基本指令的系统,这时候就需要我们手动来制作一个精简的linux系统。

如下图所示:我们有一台待安装的主机(主机B)和一台功能完备的主机(主机A),首先把待安装主机的硬盘拆下来放到主机A上,然后在主机A把内核、驱动、进程、库文件等一些系统必备的东西放到空的硬盘上做成系统硬盘,最后把做好的硬盘放到主机B上直接启动就行了。

DIY制作,精简版,Centos系统

下面我们在虚拟机上来模拟这个实验:

1、在宿主机上创建一个空的硬盘

DIY制作,精简版,Centos系统

2、打开主机A进行硬盘分区

(1)利用fdisk /dev/adb对空的硬盘进行分区,分区大小分别为主分区一(作为引导分区)100M、主分区二(作为根分区)1G(根分区不能太小)和主分区三(作为虚拟分区)500M

DIY制作,精简版,Centos系统

(2)对分区做标识

DIY制作,精简版,Centos系统

(3)分别对第一第二分区做格式化

DIY制作,精简版,Centos系统

(4)新建两个挂载点,把新硬盘的前两个分区分别挂载到两个挂载点上

DIY制作,精简版,Centos系统

3、为新硬盘创建grub引导程序引导的第一、第二阶段建

(1)创建grub引导程序引导的第二阶段,如下所示,参数DIR既是指/mnt /dev/adb

 

DIY制作,精简版,Centos系统

如下图所示在boot目录下生成了grub菜单,进入grub目录查看,除了grub.conf的配置文件没有外其他说明文件和描述文件都有,这里需要说明的是配置文件需要我们手动创建。

DIY制作,精简版,Centos系统

(2)创建grub引导第一阶段

首先输入grub,然后开始创建

DIY制作,精简版,Centos系统

4、拷贝内核

DIY制作,精简版,Centos系统

5、拷贝驱动

(1)在家目录下创建一个临时工作空间,在该目录下把主机A的驱动解压缩到该目录

DIY制作,精简版,Centos系统

在temp目录下有些比较重要的目录或文件,比如bin(放置库文件)、init(init程序调用的相关信息)。下面我们来查看一下init文件,如图所示,我们要根据实际情况做相应的调整。

DIY制作,精简版,Centos系统

(2)把temp目录下的文件重新打包成一个文件,并输送到新硬盘的引导分区下

DIY制作,精简版,Centos系统

6、切换到/mnt/boot/grub目录,创建grub.conf文件,文件内容如下

DIY制作,精简版,Centos系统

7、在新硬盘的根分区下建设文件系统(下面建设的是必要的目录,可根据实际情况设置哦)

DIY制作,精简版,Centos系统

DIY制作,精简版,Centos系统

8、拷贝可执行程序和其所依赖的库文件

(1)这里我们先拷贝init的可执行程序和所依赖的库

首先查看可执行文件的具体位置,再进行拷贝

DIY制作,精简版,Centos系统

然后进行查看库文件并拷贝

DIY制作,精简版,Centos系统

如上图所示,凡是带有/lib目录的都要拷贝

DIY制作,精简版,Centos系统

(2)根据上边的方法再分别把bash、ls、cat进行拷贝

 

9、配置inittab文件

(1)切换到/mnt/sysroot/etc目录下,建个inittab文件。

(2)打开/etc/inittab文件

DIY制作,精简版,Centos系统

(3)因为不需要太多的功能,在inittab文件里我们只留下0、6级别和初始化的文件,也就是上图中21、23和29行。

10、在/mnt/sysroot/rc.d目录下配置初始化文件rc.sysinit