当 root 在 LVM 上时,是否可以通过排除 udev 钩子来修剪 initramfs?LVM2 安装指南(适用于 LVM)来自 arch维基百科站点 udev 和 lvm2 作为必要的两个钩子。
我已设法将 mkinitcpio.conf 精简为:
#MODULES=()
BINARIES=(fsck fsck.btrfs btrfsck)
HOOKS=(base udev lvm2)
下列的这指南。如果我从这里删除 udev 或 lvm2,它会中断,错误消息与以下行有关
can't find /dev/linux/arch`
这基本上是一个device mapper
映射路径。我想知道的是,我可以进一步修剪它并删除钩子udev
吗?有什么方法可以实现吗?到目前为止,我看过/读过的指南都是通用的(没有 LVM 的系统)。
输出lsinitcpio
:
❯ lsinitcpio -a /boot/initramfs-linux-clear.img
==> Image: /boot/initramfs-linux-clear.img
==> Created with mkinitcpio 30
==> Kernel: 5.9.16-1-clear
==> Size: 47.1 MiB
==> Included modules:
dm-bio-prison dm-cache dm-log dm-persistent-data dm-snapshot
dm-bufio dm-cache-smq dm-mirror dm-region-hash dm-thin-pool
==> Included binaries:
blkid dmsetup journalctl modprobe sulogin systemd-tmpfiles
btrfsck fsck kmod mount switch_root udevadm
busybox fsck.btrfs lvm pdata_tools systemctl umount
我到目前为止尝试过的事情:
break=postmount
通过将启动选项添加到后备映像并执行来 获取所需的必要模块列表'lsmod | awk 'NF==3{print $1}'
。 将它们添加到 MODULES 数组中。Included Modules
从输出中添加如下所列出的所有模块lsinitcpio
(例如dm-bio-prison
,等)。dm-cache
dm-log
注意:我知道 systemd 钩子可以替代 udev 钩子,但这不是我想要的。我希望将其简化为仅基础和 lvm2(如果需要)。