为了方便理解的Linux系统的启动流程,可以做一个简易的Linux的系统,此系统出了能使用一下简易命令和网络连接,因为只是为了理解启动流程方便排错,所以没有搭载系统相关的库文件和编译环境以及相关的环境。
环境介绍:
系统:centos6.9
创建一个独立的虚拟磁盘,不用太大20G左右就行
创建一个没有装系统的虚拟机并且删掉磁盘设备
![](https://i-blog.csdnimg.cn/blog_migrate/a628784c70bb41b881fb4b7c36d57a5c.png)
因为我的磁盘是在线添加的所以需要重新扫描一下
![](https://i-blog.csdnimg.cn/blog_migrate/76d68effdf9a0bae8aa5c13a2bbfa2fb.png)
为刚才添加的磁盘创建分区,分两个区
![](https://i-blog.csdnimg.cn/blog_migrate/31fa644019da77e6dd473f8f1db3f0e7.png)
格式化磁盘
![](https://i-blog.csdnimg.cn/blog_migrate/e0b702360a554f22fbe693da3a7789fa.png)
创建临时的根和相关子目录并且挂载分区,然后在创建主引导记录,也就是开机引导分区
![](https://i-blog.csdnimg.cn/blog_migrate/0a511c6e5f568bdc5c5be681aece01b0.png)
把6.9的系统的内核配置和辅助文件复制到启动下,由于做实验的时候粗心把文件名复制错为之后的实验带来了不小的麻烦,复制vmlinuz的文件时字母拼写错误
![](https://i-blog.csdnimg.cn/blog_migrate/62f3a52c374c747422340f3d23144f0f.png)
创建的grub.conf文件,注意内核的initrd和参数后面跟的文件名必须和引导下的文件名一致,否则会导致系统启动失败。
![](https://i-blog.csdnimg.cn/blog_migrate/b12fb3caa6a192fb2eff3df3eac08e96.png)
![](https://i-blog.csdnimg.cn/blog_migrate/696bb4445672a0c98d1f70d63898f81d.png)
然后复制一些命令和命令所依赖的库文件到自制系统下,这是我写的一个简单的复制脚本,一个一个复制的话太麻烦,也容易出错,所有最好写个脚本来执行这一步
![](https://i-blog.csdnimg.cn/blog_migrate/804f5a54e9a8b5c4e29983afb8152565.png)
复制了几个命令到自制系统中,并且添加了网卡驱动和相关命令,注意庆典必须复制,因为之前的grub.conf文件中指定启动后用使用bash的初始化
![](https://i-blog.csdnimg.cn/blog_migrate/bb4b58ca3102e94557bcc0b30192ebee.png)
复制网卡驱动
![](https://i-blog.csdnimg.cn/blog_migrate/1f069ebb5a79eca74c38038a581d22c7.png)
同步磁盘信息,关闭计算机。吧添加的那块硬盘复制到新建的虚拟机目录下
![](https://i-blog.csdnimg.cn/blog_migrate/084958f637655329bb2d1fd815a306ee.png)
在虚拟机中添加一下磁盘
![](https://i-blog.csdnimg.cn/blog_migrate/6b6c13c68db95c57e57a20b6d045cf9e.png)
重启机器没有报错,添加网卡配置IP地址,如有报错请查看CentOS的系统故障修复
![](https://i-blog.csdnimg.cn/blog_migrate/62d8ed0802f243c773954034244a156c.png)
查看IP,测试网络,完成
![](https://i-blog.csdnimg.cn/blog_migrate/9665e5d66f706e78eec0cc402968e203.png)