Dracut 配置

需要手动导入模块,不可以使用hostonly模式,即配置中hostonly="no"

/etc/dracut.conf
----------
hostonly="no"
add_drivers+=" squashfs overlay "
add_dracutmodules+=" dmsquash-live "

因为关闭了 hostonly 模式,所以 lvm 等配置需要手动写入内核参数。

准备镜像

镜像可以放入可挂载文件系统,或直接烧录进分区。在此介绍放入挂载文件系统情况。

镜像内部至少需要 proc,sys,dev。其中 90dmsquash-live 使用 /proc 检测是否为正确的系统格式。98dracut-systemd 使用 usable_root() 函数,该函数使用 /proc,/sys,/dev 检测是否和正确的系统格式。建议也创建 /run 文件夹。

镜像放在内核参数<rd.live.dir>/<rd.live.squashimg>。这两个参数默认值为 LiveOSsquashfs.img 即默认放入 LiveOS/squashfs.img 即可。

OverlayFS 持久化分区准备

该分区需要在根目录下创建内核参数 <rd.live.overlay> 目录作为 upperdir。并且在上级目录创建 ovlwork 文件夹作为 workdir。<rd.live.overlay>默认为`/<rd.live.dir>/overlay--",其中LABEL和UUID为ROOT分区的LABEL和UUID。持久化不仅可以用文件夹,也可以使用文件,在此不介绍。

内核参数

  • root=live:分区: 存放镜像的分区。
  • rd.live.overlay=分区:目录: OverlayFS 的 upperdir,目录必须由/开头。
  • rootfstype=ext4: root 分区的文件类型。