一、编译环境
1、准备一台测试机,放置两块硬盘
2、安装"Development Tools"和"Server Platform Development"编译环境
3、内核下载地址:https://www.kernel.org(本人使用的是3.10版本)
4、下载busybox:http://www.busybox.net
二、编译
1、分区,将新添加的硬盘进行分区,结果如下:
2、在/mnt目录下创建boot,sysroot目录,格式化新磁盘分区,分别挂载至/mnt/boot,/mnt/sysroot
3、以/mnt/boot目录为新系统的/boot目录,/mnt/sysroot/为新系统的根目录,安装grub到/mnt/boot目录,安装方式如下:
4、解压内核源文件至/usr/src,并创建软连接为linux
5、使用make allnoconfig 清除内核所有默认配置:
6、运行make menuconfig,在出现的菜单中选择要使用的内核功能;
(1)选择内核支持64位操作系统,支持装载模块
(2)选择内核支持模块卸载
(3)选择CPU型号
(4)保存退出
(5)运行make bzImage进行编译
(6)复制编译后的内核文件(bzImage)到/mnt/boot目录下
(7)切换到/mnt/boot/grub/目录中,创建grub.conf文件,内容如下:
7、新建虚拟机,以宿主机的磁盘(/dev/sdb)为系统盘
在选择磁盘时使用现有磁盘,如下
8、虚拟创建完成,在宿主机运行sync,将内存信息同步到磁盘
9、挂起宿主机,启动新建的虚拟机:
启动界面
启动完成后提示内恐慌,没有文件系统
10、给内核添加文件系统,使其能够识别文件系统
(1)添加支持的文件系统类型
(2)选择支持的块设备
(3)选择磁盘驱动程序
(4)选择磁盘接口类型
(4)保存选择的配置信息,再次运行make bzImage进行编译
(5)将新的内核文件bzImage复制到/mnt/boot/覆盖原有的bzImage
(6)运行sync,同步数据信息
(7)挂起宿主机,运行新建的虚拟主机,结果如下
11、添加init程序
(1)在/mnt/sysroot/目录中创建系统所需要的目录
(2)将bash以及bash依赖的库文件复制到/mnt/sysroot对应的目录中,使用脚本bincp.txt(马哥提供的脚本)复制,上传到宿主机,修改后缀名为bincp.sh,添加执行权限即可使用;
(3)查看复制的结果:
(4)切换到/mnt/sysroot/bin/目录,给bash做软连接为sh
(5)编辑/mnt/boot/grub/grub.conf,指定init程序是/bin/sh
(6)切换到/usr/src/linux,运行make menuconfig,给内核添加可以支持bash的程序
(7)添加完成后保存退出,运行 make bzImage进行编译,然后将编译后的结果复制到/mnt/boot/目录中,覆盖原有的bzImage文件
(8)运行sync,同步数据
(9)同步完数据后,挂起宿主机,启动新建的虚拟机;启动结果如下:
12、虽然内核已经可以正常启动,但是没有键盘和鼠标驱动,无法使用键盘鼠标,接下来给内核添加鼠标键盘驱动
(1)添加键盘
(2)添加鼠标
(3)添加USB驱动
(4)添加以上设备驱动后,保存退出,运行make menuconfig,将生成的bzImage复制到/mnt/boot/,覆盖原有的bzImage
(5)运行sync同步数据
(6)同步完数据后,挂起宿主机,运行新建的虚拟机,结果如下:
13、添加常用的bash命令,使用bincp.sh脚本添加;
14、添加完bash命令后,运行sync,进行数据同步,同步完成后,挂起宿主机,启动新建的虚拟机,运行添加的bash命令
15、编写init脚本,替换/bin/sh,init脚本内容如下:
添加执行权限
16、编辑/mnt/boot/grub/grub.conf,修改init程序位置,使用bincp.sh移植mount命令到/mnt/sysroot对应的目录中
(1)编辑/mnt/boot/grub/grub.conf,修改内容如下:
(2)移植mount命令
(3)运行sync同步数据,同步完成后挂起宿主机,运行新建的测试机,结果如下:
17、给内核添加网络功能
(1)cd /usr/src/linux目录,运行 make menuconfig,选取网络驱动跟网络功能
(2)选取网络驱动
(3)保存退出,运行make bzImage进行编译,将生成的bzImage复制到/mnt/boot/,覆盖原有的bzImage内核
(4)复制相关的ip命令到/mnt/sysroot对应目录中
(5)运行sync同步数据,挂起宿主机,启动新建的测试机;结果如下
原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/4792
评论列表(2条)
小伙伴的图真是专业哇~
@stanley:谢谢,刚刚开始写,写的不怎么好,还得向您学习 :smile: