Linux 命令速查
系统管理 man mkinitcpio

mkinitcpio

生成 Linux initramfs 镜像(Arch Linux 工具)。

返回

补充说明

mkinitcpio 是 Arch Linux 使用的 initramfs(早期用户空间)生成器。它根据配置文件收集内核模块、固件、二进制工具和钩子脚本,打包成一个压缩的 cpio 镜像,供内核在挂载真正的根文件系统之前使用。

主配置文件为 /etc/mkinitcpio.conf,其中 MODULES、BINARIES、FILES、HOOKS、COMPRESSION 决定镜像内容。HOOKS 的顺序至关重要:base、udev、autodetect、block、filesystems 是基础,加密、LVM、RAID 等钩子必须放在 filesystems 之前。

预设文件位于 /etc/mkinitcpio.d/,例如 linux.preset,定义内核版本、配置文件和输出路径。内核或相关包升级时,pacman 钩子会自动调用 mkinitcpio -P 重新生成;手工修改配置后也应重新生成,否则改动不会生效。

语法

mkinitcpio [选项]

选项

  • -c 文件:使用备用配置文件
  • -g 路径:指定生成的镜像路径
  • -k 版本:指定内核版本
  • -p 预设:构建 /etc/mkinitcpio.d 中的指定预设
  • -P:处理全部预设
  • -S 钩子:跳过指定钩子,逗号分隔
  • -A 钩子:临时追加钩子,逗号分隔
  • -I 路径:向镜像添加文件或目录
  • -D 目录:指定钩子所在目录
  • -L:列出所有可用钩子
  • -M:显示自动探测到的模块
  • -U 路径:构建统一内核镜像(UKI)
  • -z 程序:指定压缩程序,如 zstd、xz、lz4、cat
  • -n:关闭彩色输出
  • -v:输出详细信息

实例

# 按全部预设重新生成(升级内核后常用)
sudo mkinitcpio -P

# 只重建 linux 预设
sudo mkinitcpio -p linux

# 临时跳过 fsck 钩子,输出到测试文件
sudo mkinitcpio -S fsck -g /boot/initramfs-test.img

# 查看可用钩子及说明
mkinitcpio -L

# 查看某个钩子的帮助
mkinitcpio -H encrypt

配置文件片段

# /etc/mkinitcpio.conf
MODULES=(btrfs)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt lvm2 filesystems fsck)
COMPRESSION="zstd"

参考链接