Linux mkinitrd命令教程:如何创建和管理initramfs映像(附实例详解和注意事项)

本文主要是介绍Linux mkinitrd命令教程:如何创建和管理initramfs映像(附实例详解和注意事项),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux mkinitrd命令介绍

mkinitrd(全称:make initial ramdisk),是一个兼容包装器,它调用dracut来生成initramfsmkinitrd创建一个用于内核预加载块设备模块(如IDE、SCSI或RAID)的初始映像,这些模块是访问根文件系统所必需的。mkinitrd自动加载文件系统模块(如ext3和jbd)、IDE模块、/etc/modprobe.conf中的所有scsi_hostadapter条目以及如果系统的根分区在raid上,则加载raid模块。这使得使用模块化设备驱动程序构建和使用内核变得简单。

Linux mkinitrd命令适用的Linux版本

mkinitrd命令是dracut包的一部分,可以从dracut的官方网站获取。大多数Linux发行版(如Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian)都支持mkinitrd命令。如果某些Linux发行版不支持,可以尝试安装dracut包。在CentOS 7和CentOS 8上,安装命令可能会有所不同,因为它们的包管理工具不同。在CentOS 7上,可以使用yum进行安装,而在CentOS 8上,可以使用dnf进行安装。

[linux@bashcommandnotfound.cn ~]$ sudo yum install dracut  # CentOS 7
[linux@bashcommandnotfound.cn ~]$ sudo dnf install dracut  # CentOS 8

Linux mkinitrd命令的基本语法

语法格式如下:

mkinitrd [OPTION...] [<initrd-image>] <kernel-version>

Linux mkinitrd命令的常用选项或参数说明

以下是mkinitrd命令的一些常用选项:

选项说明
–version打印版本信息
-v, --verbose增加详细程度
-f, --force覆盖现有的initramfs文件
–image-version将内核版本附加到目标映像<initrd-image>-<kernel-version>
–with=将内核模块<module>添加到initramfs
–preload=在加载任何其他内核模块之前,在initramfs中预加载内核模块<module>
–nocompress不压缩生成的映像
–help打印帮助信息并退出

Linux mkinitrd命令实例详解

下面是一些mkinitrd命令的使用实例。这些实例涵盖了无参数、单参数以及组合参数的常见用法。

实例1:创建initrd映像

这个实例展示了如何使用mkinitrd命令创建一个initrd映像。在这个例子中,我们将使用当前内核版本,并将映像命名为initrd-[kernel version].img

[linux@bashcommandnotfound.cn ~]$ mkinitrd /boot/initrd-$(uname -r).img $(uname -r)

实例2:创建initrd映像并包含特定模块

在这个例子中,我们将创建一个initrd映像,并在映像中包含特定的内核模块。我们将使用--with选项来指定要包含的模块。

[linux@bashcommandnotfound.cn ~]$ mkinitrd --with=module_name /boot/initrd-$(uname -r).img $(uname -r)

实例3:强制覆盖现有的initrd映像

如果你想覆盖现有的initrd映像,可以使用-f--force选项。

[linux@bashcommandnotfound.cn ~]$ mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)

实例4:创建未压缩的initrd映像

如果你想创建一个未压缩的initrd映像,可以使用--nocompress选项。

[linux@bashcommandnotfound.cn ~]$ mkinitrd --nocompress /boot/initrd-$(uname -r).img $(uname -r)

Linux mkinitrd命令的注意事项

  • 如果需要对生成的映像进行更细粒度的控制,应直接调用dracut
  • 如果在执行mkinitrd命令时遇到bash: mkinitrd: command not found错误,可以尝试安装dracut包。

Linux mkinitrd相关命令

mkinitrd 命令用于创建一个初始化RAM磁盘(initrd)映像,这个映像包含了启动系统所需的最小设备驱动和程序。以下是与 mkinitrd 相关或常用的Linux命令,以及其他推荐的系统维护和管理工具:

dracut 命令:代替 mkinitrd,用于创建initramfs映像
lsinitrd 命令:列出 initrd 映像的内容
update-initramfs 命令:更新 initramfs 映像
mkfs 命令:用于在设备上创建文件系统
fdisk 命令:磁盘分区表操纵工具
parted 命令:磁盘分区和分区大小调整工具
lsblk 命令:列出所有可用的块设备的信息
mount 命令:挂载文件系统
umount 命令:卸载已挂载的文件系统
chroot 命令:改变根目录
lvm 命令:逻辑卷管理器,用于创建和管理逻辑卷
mdadm 命令:用于管理MD设备即Linux的软RAID
blkid 命令:查看块设备的UUID等信息
dd 命令:用于复制文件和转换文件格式
fsck 命令:检查和修复文件系统错误
systemctl 命令:控制 systemd 系统和服务管理器
lsmod 命令:显示已加载的内核模块
modprobe 命令:添加或移除模块于Linux内核
dmesg 命令:显示或控制内核环形缓冲区
journalctl 命令:查询和显示systemd日志

这篇关于Linux mkinitrd命令教程:如何创建和管理initramfs映像(附实例详解和注意事项)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939966

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语