mkinitcpio详解
mkinitcpio详解
简介
initramfs映像是一个SVR4 CPIO归档文件,通过find和bsdcpio命令生成,可选择使用内核理解的压缩方案进行压缩
mkinitcpio是创建initramfs的bash脚本
每次升级内核,mkinitcpio都会默认创建两个内存盘镜像:默认镜像/boot/initramfs-linux.img
和fallback镜像/boot/initramfs-linux-fallback.img
。fallback镜像和默认镜像只有一个区别,就是创建时跳过了autodetect钩子扩展,因而它包含更多的内核模块。autodetect扩展会探测硬件信息,针对硬件向镜像添加需要的模块,因此缩小了镜像。
简单使用
使用默认内核linux
生成镜像:
mkinitcpio -p linux
-p
选项定义了要使用的预配置(preset);多数内核软件包都会提供一套mkinitcpio预配置文件,放在/etc/mkinitcpio.d
目录(比如,linux内核是/etc/mkinitcpio.d/linux.preset)。预配置文件中包含内存盘镜像的基本配置。
生成自定义initcpio
使用其他配置文件创建镜像,例如以/etc/mkinitcpio-custom.conf
配置的内容生成镜像/boot/linux-custom.img
mkinitcpio -c /etc/mkinitcpio-custom.conf -g /boot/linux-custom.img
使用指定内核创建镜像,可在/usr/lib/modules
目录下可查看支持的内核
mkinitcpio -g /boot/linux-custom2.img -k 4.19.69-1-MANJARO
mkinitcpio用法:
mkinitcpio [选项]
选项:
-A,--addhooks <hooks> 将指定的钩子(以逗号分隔)添加到映像
-c,--config <config> 使用备用配置文件。 (默认值:/etc/mkinitcpio.conf)
-g,--generate <路径> 生成cpio映像并写入指定的路径
-H,--hookhelp <hookname> 显示给定钩子和退出的帮助
-h,--help 显示此消息并退出
-k,--kernel <kernelver> 使用指定的内核版本(默认值:4.19.69-1-MANJARO)
-L,--listhooks 列出所有可用的钩子
-M,--automods 通过自动检测找到的显示模块
-n,--nocolor 禁用彩色输出消息
-p,--preset <文件> 从/etc/mkinitcpio.d构建指定的预设
-P,--allpresets 处理/etc/mkinitcpio.d中的所有预设文件
-r,--moduleroot <dir> 模块的根目录(默认值:/)
-S,--skiphooks <hooks> 在构建过程中跳过用逗号分隔的指定钩子
-s,--save 保存构建目录。 (默认值:否)
-d,--genicir <dir> 将生成的图像写入<dir>
-t,--builddir <dir> 使用DIR作为临时构建目录
-V,--version 显示版本信息并退出
-v,--verbose 详细输出(默认值:no)
-z,--compress <程序> 在映像上使用备用压缩器