linux内核-在centos7.2基础上制作极简根文件系统 - Go语言中文社区

linux内核-在centos7.2基础上制作极简根文件系统


1 平台的搭建

1.1 软件平台

(1)Window 10操作系统。
(2)VMware Workstation 14 Pro。
(3)Centos 7-x86_64-DVD-1804.iso。

1.2 安装编译环境
yum -y install gcc

我配置的GCC4.9.0,参考博客:
http://www.kejierda.com/blog/?p=567

yum install -y glibc-static

2 制作极简根文件

2.1 创建initramfs文件夹
mkdir initramfs
2.2. 使用c制作简易的执行文件

(1)创建init.c文件

#include<stdio.h>
int main(void)
{
	printf("hello CHDn");
	sleep(99999)
	return 0;
}

(2)使用gcc编译c文件

gcc init.c -o init -static

(3)生成init文件拷贝到initramfs文件夹

cp init initramfs/
2.3 生成initrd.img文件

进入打包目录:

cd initramfs

(1)方式一:

find .|cpio -o -H newc|gzip > ../initramfs.img

(2)方式二:使用内核自带脚本生成。
我下载的centos7.2官方的内核原文件,它生成的目录结构如下。
进入到此目录:

cd /home/chd/rpmbuild/BUILD/kernel-3.10.0-862.el7/linux-3.10.0-862.el7.x86_64

打包镜像文件:会在/usr/local/dssys/initrd_hello/目录生成initramfs.img文件。执行脚本后面第一个参数必须是-o,后面跟输出生成的文件名,-u设置uid,-g设置gid,最后设置打包目录。

scripts/gen_initramfs_list.sh -o /usr/local/dssys/initrd_hello/initramfs.img -u 0 -g 0 /usr/local/dssys/initrd_hello/initramfs/

3 设置启动信息

3.1 把initramfs拷贝到/boot目录
cp initramfs.img /boot
3.2 修改/boot/grub2/grub.cfg配置信息,暂时修改。

任意找个被用,把内核启动根文件修改成initramfs.img。

initrd16 /initramfs.img

在这里插入图片描述

4 重启

选择我们设置好的内核启动

reboot now

启动后,显示如下:
在这里插入图片描述

相关参考:

https://blog.csdn.net/lixiangminghate/article/details/55224412

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/chentaoxie/article/details/88526682
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-14 00:58:46
  • 阅读 ( 2117 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢