mkinitcpio Hooks¶
配置文件位于 graceful-linux-tools 项目中 config/rootfs/etc/mkinitcpio.conf.d/graceful-linux.conf
hooks¶
Hook分类¶
构建Hook¶
构建Hook是指在执行 mkinitcpio 时候要执行的脚本,其脚本内部必须包含两个函数:build 和 help。build 函数中描述了哪些 内核模块、文件、二进制文件要被安装到 initrmfs 中,help函数用来输出 build 中要做的信息。构建Hook脚本被放置在/etc/initcpio/install(用户自定义)和/usr/lib/initcpio/install(系统默认)两个目录中。
运行时Hook¶
梅核运行时Hook都有一个同名的构建Hook与之对应,与之对应的构建Hook将会调用add_runscript函数将运行时Hook添加到镜像中。这些运行时Hook一般被busybox等提供,并且按照HOOKS设置的顺序进行执行。运行时Hook一般包含以下几个函数:
run_earlyhook:此名称的函数将在挂载API文件系统和解析内核命令行之后运行。run_hook:此函数在run_earlyhook运行之后不久运行run_latehook:此名称的函数在根设备挂载后运行run_cleanuphook:此函数尽可能晚的执行,且于配置文件中HOOKS数组列出的顺序相反的方向运行。
运行时Hook放置路径:/usr/lib/initcpio/hooks/和/etc/initcpio/hooks/
默认Hook¶
| busybox init | systemd init | build Hook | Runtime Hook(busybox init only) |
|---|---|---|---|
| base | 可选 | ||
| udev | systemd | ||
| usr | systemd | ||
| resume | systemd | ||
| btrfs | - | ||
| autodetect | autodetect | ||
| modconf | modconf | ||
| kms | kms | ||
| block | block | ||
| net | 未实现 | ||
| dmraid | ? | ||
| mdadm_udev | mdadm_udev | ||
| keyboard | keyboard | ||
| keymap | sd-vconsole | ||
| consolefont | sd-vconsole | ||
| encrypt | sd-encrypt | ||
| lvm2 | lvm2 | ||
| filesystems | filesystems | ||
| fsck | fsck |