linux内核生成img,redhat/centos 6 linux下mkinitrd 生成initramfs.img文件过大原因及dracut使用...

centos 6下自己编译linux内核,完了创建initrd文件,依据以前的的经验mkinitrd

#mkinitrd -v ../initramfs-3.0.32.img 3.0.32

但是输出的消息却与以前的版本不太一样,好像打包进去了很多模块,生成花费时间也很长,完成后,看initramfs文件有100多M,OMG,这么大的文件 /boot目录可放不下(/boot挂在单独的分区下,该分区只有100M大小)。

经过N久的折腾,才发现原来redhat/centos6不再使用原来的mkinitrd,而是使用dracut代替了,mkinitrd实际上只是调用dracut的功能。研究dracut才弄明白,如果只是生成用于grub引导本地硬盘上的linux,需要使用一个参数--hostonly ,这样dracut就不会把过多不必要的模块加载到initramfs.img里,如下

dracut -f -v --hostonly -k '/lib/modules/3.0.32'  ../initramfs-3.0.32.img 3.0.32

这是通过查阅kernel 编译安装的 make install 使用是执行的以下脚本实现的:

sh /path/to/kernel-source/linux-3.0.32/arch/x86/boot/install.sh 3.0.32 arch/x86/boot/bzImage System.map "/boot"

查阅arch/x86/boot/install.sh 文件, 它调用/sbin/installkernel ,然后是/sbin/new-kernel-pkg ,接着是/sbin/dracut

通过分析 /sbin/new-kernel-pkg ,其中290行有如下代码

if [ -n "$dracut" ]; then

tool="/sbin/dracut $dracuthostonly -f $initrdfile $version"

else

tool="/sbin/mkinitrd --allow-missing -f $initrdfile $version"

fi

其中变量$dracuthostonly的值是 -H ,在dracut参数里与 --hostonly 同义。

问题至此得解。

延伸阅读coded by nessus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是 CentOS Linux release 7.3.1611 的一些常用操作指令及其使用方法和解释: 1. 查看当前系统版本信息: ``` cat /etc/redhat-release ``` 这个命令会输出系统的版本信息,包括 CentOS 的版本号和发行版号。 2. 更新系统软件包: ``` yum update ``` 这个命令会更新系统中所有的软件包到最新版本。 3. 安装软件包: ``` yum install <package-name> ``` 这个命令会安装指定的软件包。需要将 `<package-name>` 替换成要安装的软件包的名称。 4. 卸载软件包: ``` yum remove <package-name> ``` 这个命令会卸载指定的软件包。需要将 `<package-name>` 替换成要卸载的软件包的名称。 5. 查看系统中已安装的软件包: ``` yum list installed ``` 这个命令会列出当前系统中已安装的所有软件包。 6. 查找软件包: ``` yum search <keyword> ``` 这个命令会搜索包含 `<keyword>` 关键字的软件包,并列出搜索结果。 7. 启动、停止、重启服务: ``` systemctl start <service-name> systemctl stop <service-name> systemctl restart <service-name> ``` 这三个命令分别用于启动、停止和重启指定的服务。需要将 `<service-name>` 替换成要操作的服务的名称。 8. 查看服务状态: ``` systemctl status <service-name> ``` 这个命令会显示指定服务的状态,包括是否正在运行、最近一次启动时间等信息。 9. 查看网络接口信息: ``` ip addr show ``` 这个命令会列出当前系统中所有的网络接口信息,包括接口名称、IP 地址、MAC 地址等。 以上是 CentOS Linux release 7.3.1611 的一些常用操作指令及其使用方法和解释。如果需要执行其他操作或者有任何疑问,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值