打造精简linux
在虚拟机中打造精简linux,需要一台宿主机(和足够用的空磁盘)用来配置精简的linux
一台用于搭载新的linux系统的“空壳机”(没有硬盘,要挂载新的磁盘)。
根据Linux开机引导流程制作精简linux:
在宿主机上添加一块新的硬盘:注意保存格式和位置:
启动进入宿主机进行分区:
先查看目前分区情况。因为是新的硬盘,目前还没有分区。
创建3个主分区并指定大小:
创建完成后查看分区情况:
对分区进行标示第一个分区作为引导分区,第二个分区作为根分区并保存退出:
对分区进行格式化1 和2 分区:mkfs –t ext3 /dev/sdb1
mkfs –t ext3 /dev/sdb2
建立挂载点把新硬盘的分区挂到相应目录:
以个系统重要的是内核,所以我们要把宿主机上的内核文件,引导文件等拷贝到我们新的硬盘的相应目录,
关于驱动文件对新的系统引导文件我们要做一些更改配置以适应新的系统:
对引导文件进行编辑:
对编辑好的引导文件进行打包压缩处理:
创建grub菜单注意:”--root-directory=”命令的作用是指定的目录下搜索并建立”boot”目录并在”boot”目录下建立一个grub菜单,所以注意”=”后的目录写法。
Grub第一阶段创建直接在当前目录下“grub” 进入配置:
第一第二阶段完成后创建grub引导菜单:
编辑grub.conf:
MBR引导 GRUB菜单内核已经具备下面要进行INIT ,在进行init前要在第二个硬盘的根分区下建立相应的文件夹(并不需要所有的都建):查看旧的文件夹
由于启动要进行init 把init的文件拷贝到新硬盘的相应目录下:which 查找init文件的位置:但是只拷贝文件是不行的,还要拷贝文件所依赖的库文件:ldd 查找库文件位置:并不是其目录下的库文件都要拷贝:只有”/lib”下的需要拷贝:拷贝到新的硬盘与库文件相应的目录下:
另还需要”ls”查看文件所以还要拷贝这个名的需要的文件库文件:
(如上图需要拷贝的文件库文件过多,需要的拷贝的命令不止几个,命令重复太大过于繁琐,可以编辑一个脚本用于拷贝文件及库文件:)
Bash命令:
库文件:
创建inittab表格:
编辑表格:
编辑 rc.sysinit :
完成配置“sync” 同步内容到磁盘:
测试:
在虚拟机中新建一个linux 用于测试:
新建完成后不启动要添加我们做好的硬盘添加前先把自己带的硬盘移除:
硬盘存放位置名称:
完成后启动:
菜单出现,一二阶段正常:
正确启动,并能执行”ls”命令简单的linux基本完成,根据自己需要添加需要的服务功能:
执行关机命令:提示缺少文件指令:
重新启动宿主机,编辑inittab进行关机重启配置:
编辑后:
当执行 init 0 时会执行sysshutdown
当执行 init 6 时会执行 sysreboot
然后建立sys* 两个文件(调用旧的指令) 执行关机重启:
查找关机重启相关指令文件库文件并拷贝到相应文件目录下(很多指令的库文件都是相同文件会发生覆盖现象既然相同覆盖也是可以的):
重新启动测试(别忘了同步数据 sync ):
已经可以进行关机重启的基本命令。
另:实现网络功能 更改启动背景 见下文
... ... ...
转载于:https://blog.51cto.com/liuhengyou/1266286