编完linux内核只有vmlinz没有initrd.img怎么办?教你为linux内核生成initrd.img_路边闲人2的博客-程序员秘密

技术标签: initrd.img  linux  

在进行内核编译时,通过以下命令可以将内核编译并生成到指定的目录中。

但是如果查看boot目录,并不能找到initrd.img文件。

因此需要自行制作initrd.img,特别是交叉编译的情况。

下面的代码是交叉编译环境下常用的内核编译和安装方式:

make menuconfig
make -j12
make  INSTALL_PATH=~/jail/5.4.61out/boot   install
make  INSTALL_MOD_PATH=~/jail/5.4.61out     modules_install

// make  INSTALL_MOD_STRIP=1  modules_install 可以有效减小/lib/modules目录的体积

如果直接make install可以将编译的内核安装到/boot目录中,同时会生成initrd.img,但是此initrd.img是与本机匹配的,复制到目标机器上可能是不能使用的。

在CentOS之类下面一般是用mkinitrd命令,

而在Ubuntu/Debian下用的是mkinitramfs命令.

它们的用法稍微有些不一样,如下所示:

注意

下面的命令要在目标机上执行。否则生成的是用于本机的initrd。

这个命令的作用是把/lib/modules/5.4.61中对应的.ko驱动打包到initrd.img文件中。

其中5.4.61为/lib/modules下的目录名称(内核的版本号)

命令执行完成后,就会生成对应的initrd.img。

#centos
mkinitrd   /boot/initrd.img    5.4.61

#ubuntu
mkinitramfs  5.4.61   -o /boot/initrd.img

附:initrd.img文件解压缩以及重新打包的命令:

#Extract
gunzip < /boot/initrd.img | cpio -i –make-directories

#Repack
find ./ | cpio -H newc -o > initrd.cpio
gzip initrd.cpio
mv initrd.cpio.gz initrd.img

参考:

mkinitrd 与 mkinitramfs - 摩斯电码 - 博客园

 The Linux Kernel HOWTO: Appendix A - Creating initrd.img file

initrd/initramfs文件制作及解压

VMX(3) -- VMXON Region_河马虚拟化的博客-程序员秘密

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/v6543210/article/details/118339120

智能推荐

Altium Designer 20(AD20)的PCB文件在嘉立创下单显示无外型文件解决方法_pcb缺少外形层_小小洋洋的博客-程序员秘密

Altium Designer 20(AD20)的PCB文件在嘉立创下单显示无外型文件解决方法如上图,在机械层1中生成外形,勾选最后两个.如果不行,修改宽度为10mil试一下。

集成环境phpstudy的配置_phpstudy vhost位置_tabadmin的博客-程序员秘密

虚拟目录配置1、更改虚拟目录要更改虚拟目录的位置,需要到apache的配置文件中更改(conf/httpd.conf)在phpstudy中,httpd.conf和vhost.conf都有配置虚拟目录的指令,并且两个配置文件中都有配置虚拟目录的指令,为了测试,我们注释掉vhost.conf的引入更改虚拟目录2、更改默认首页在httpd.conf配置文件中默认首页的查找顺序,从前往...

oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件及关系_oracle listener 和 tnsnames对应_dingguanyi的博客-程序员秘密

总结:1 .三个配置文件都是放在$ORACLE_HOME\network\admin目录下。2 .sqlnet.ora确定解析方式3 .listener.ora上设SID_NAME,通常用于JDBC访问,对应的错误码为125054 .tnsnames.ora上设SERVICE_NAME,通常用于linux sqlplus客户端,对应的错误码为12514sqlnet.ora  作用类似于linux或...

Dockerfile、docker-compose传入环境变量方法总结_dockerfile 设置统一变量_45° 微笑的博客-程序员秘密

Dockerfile1 使用系统环境变量,例如docker run -e VARIABLE=VALUE ...web: image: &amp;quot;webapp:${TAG}&amp;quot;2 通过environment设置,这种方法适用于正在运行的容器里,调用特定变量,可登陆容器输入env命令查看,例如docker run -e VARIABLE ...web: environment: - D...

Core3.1 微信v3 JSAPI支付_魏杨杨的博客-程序员秘密

因公司业务需要微信支付,以前没弄过花了几天时间写了一个微信v3的JSAPI支付,我滴个乖乖,差点今年小孩的奶粉就没了,还好弄出来了。在这里面各种踩坑,在这里记录一下,我开发的是微信公众号上面拉起微信支付。后台是Core3.1的接口,前端用的是Vue。后面是部署在CentOS上面的

在vsita系统怎样恢复误删文件_qqtool8的博客-程序员秘密

    大多数Windows用户都知道删除某个文件实际上并没有真正的删除了它们。文件有很大机会被找回,即使回收站已经被清空。    1、第一步:立即停止使用误删了文件的电脑,关掉所有开着的软件,停止所有实时编录文件索引的软件如X1、Google桌面或者Windows系统自带的索引服务,它们都有可能完全清除掉那些你想恢复的文件。    2、选用一种广受欢迎的文件恢复程序。QueTek的Fil

随便推点

SuperBrother打鼹鼠_打鼹鼠编程_睡神...的博客-程序员秘密

Vijos/ Vijos / 题库 /SuperBrother打鼹鼠这是一道二维树状数组的裸题目#include &lt;bits/stdc++.h&gt;using namespace std;int n,m;int c[1026][1026];int lowbit(int x){ return x&amp;(-x);}void update(int x,int y,int z)//将(x,y)的值+z{ for(int i=x;i&lt;=n;i+=lowbit(i))

一行python代码带你装B_【谭小谭】的博客-程序员秘密

一行代码,python就能让你玩出花来。今天给大家介绍几个有趣的一行代码。 1、心形字符,全中文的话可能会变形,大家可以试试中英文搭配。 print('\n'.join([''.join([('IloveU'[(x-y)%len('IloveU')]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3&amp;lt;=0 else'...

Vivado中增量编译与设计锁定_yundanfengqing_nuc的博客-程序员秘密

关于增量编译所谓增量实现,更严格地讲是增量布局和增量布线。它是在设计改动较小的情形下参考原始设计的布局、布线结果,将其中未改动的模块、引脚和网线等直接复用,而对发生改变的部分重新布局、布线。这样做的好处是显而易见的,即节省运行时间,能提高再次布局、布线结果的可预测性,并有助于时序收敛。增量实现由两个流程构成:原始流程和增量流程,如图所示。其中,原始流程提供网表。这里的网表可以是布局后的DCP文件,也可以是布线后的DCP文件。增量实现流程有两种模式:高复用模式和低复用模式。在高复用

PE格式系列_0x04:输入表查看(WinDbg+PEview+Stud_PE+Dependency+CFF)_Debug调试的博客-程序员秘密

目的:使用一个具体例子查询输入表的真实模样;notepad.exe加载到内存时,查询输入表的INT,用这个INT中的函数名对应的真实地址填充notepad.exe内存中IAT的过程;PE文件装在完后,通过IAT就可以找到函数在内存中真正的地址文章目录1.WinDbg查看输入表1.输入表起始地址2.IMAGE_IMPORT_DESCRIPTOR3.INT分析(得函数名)4.IAT分析(填充地址)5.总结2.常用PE工具查看输入表PEviewStud_PEDependency3.参考1.WinDbg查看.

Android-支持多屏幕[译文-2]_weixin_34040079的博客-程序员秘密

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

ADB操作大全_githubadb_开心辛宇的博客-程序员秘密

ADB (Android Debug Bridge)说明:下面一些命令需要有root权限才能执行成功快速启动dos窗口执行adb:1. adb.exe所在路径添加到系统环境变量中2. 配置快捷键启动dos进入C:\WINDOWS\system32目录下,找到cmd.exe.右击菜单 "发送到" -> 桌面快捷方式。在桌面上右击"快捷方式 到 cmd.exe" -> "属

推荐文章

热门文章

相关标签