打造精简linux

在虚拟机中打造精简linux需要一台宿主机(和足够用的空磁盘)用来配置精简的linux

一台用于搭载新的linux系统的“空壳机”(没有硬盘,要挂载新的磁盘)。

根据Linux开机引导流程制作精简linux

193839880.png

在宿主机上添加一块新的硬盘:注意保存格式和位置:

193901783.png

启动进入宿主机进行分区:

193922741.png

先查看目前分区情况。因为是新的硬盘,目前还没有分区。

193941969.png

创建3个主分区并指定大小:

194000111.png

194017566.png

创建完成后查看分区情况:

194050235.png

对分区进行标示第一个分区作为引导分区,第二个分区作为根分区并保存退出:

194109842.png

对分区进行格式化1 2 分区:mkfs  –t ext3 /dev/sdb1

                             mkfs  –t ext3 /dev/sdb2

194129246.png

建立挂载点把新硬盘的分区挂到相应目录:

194146575.png

以个系统重要的是内核,所以我们要把宿主机上的内核文件,引导文件等拷贝到我们新的硬盘的相应目录,

194203450.png


关于驱动文件对新的系统引导文件我们要做一些更改配置以适应新的系统:

194239133.png

对引导文件进行编辑:

194401489.png

对编辑好的引导文件进行打包压缩处理:

194420530.png

创建grub菜单注意:”--root-directory=”命令的作用是指定的目录下搜索并建立”boot”目录并在”boot”目录下建立一个grub菜单,所以注意”=”后的目录写法。

194450320.png

194545473.png

Grub第一阶段创建直接在当前目录下“grub” 进入配置:

194612127.png

第一第二阶段完成后创建grub引导菜单:

194634512.png

编辑grub.conf

194653185.png

  MBR引导 GRUB菜单内核已经具备下面要进行INIT ,在进行init前要在第二个硬盘的根分区下建立相应的文件夹(并不需要所有的都建):查看旧的文件夹

194717452.png

194729761.png


由于启动要进行init init的文件拷贝到新硬盘的相应目录下:which 查找init文件的位置:但是只拷贝文件是不行的,还要拷贝文件所依赖的库文件:ldd 查找库文件位置:并不是其目录下的库文件都要拷贝:只有”/lib”下的需要拷贝:拷贝到新的硬盘与库文件相应的目录下:

194749935.png

还需要”ls”查看文件所以还要拷贝这个名的需要的文件库文件:

194812636.png

(如上图需要拷贝的文件库文件过多,需要的拷贝的命令不止几个,命令重复太大过于繁琐,可以编辑一个脚本用于拷贝文件及库文件:)

195225872.png

Bash命令:


195627215.png

库文件:

195315759.png

创建inittab表格:

195718146.png

编辑表格:

195806617.png


编辑 rc.sysinit  

195837303.png

195850437.png

完成配置“sync” 同步内容到磁盘

195911838.png

测试:

在虚拟机中新建一个linux 用于测试:

195943458.png

195943616.png

195943325.png

200106200.png

新建完成后不启动要添加我们做好的硬盘添加前先把自己带的硬盘移除:

200146783.png

200147306.png

200147379.png



硬盘存放位置名称:

200303144.png

完成后启动:

200322195.png

菜单出现,一二阶段正常:


正确启动,并能执行”ls”命令简单的linux基本完成,根据自己需要添加需要的服务功能:


200339795.png

执行关机命令:提示缺少文件指令:

200407765.png

重新启动宿主机,编辑inittab进行关机重启配置:

200426829.png


200447413.png

编辑后:

200505183.png

当执行 init 0 会执行sysshutdown

当执行 init 6 会执行 sysreboot

然后建立sys* 两个文件(调用旧的指令) 执行关机重启


200522187.png

200549647.png

200549126.png


查找关机重启相关指令文件库文件并拷贝到相应文件目录下(很多指令的库文件都是相同文件会发生覆盖现象既然相同覆盖也是可以的)

200611779.png

重新启动测试(别忘了同步数据  sync  )

200627907.png

已经可以进行关机重启的基本命令。

另:实现网络功能 更改启动背景 见下文

... ... ...