4.8.17. 指定自定义文件系统配置
您可以在蓝图中指定一个自定义文件系统配置,因此创建带有特定磁盘布局的镜像,而不是默认的布局配置。通过使用蓝图中的非默认布局配置,您可以受益于:
- 安全基准合规性
- 防止磁盘不足错误
- 提高的性能
- 与现有设置的一致
OSTree 系统不支持文件系统自定义,因为 OSTree 镜像有自己的挂载规则,如只读。不支持以下镜像类型:
-
image-installer -
edge-installer -
edge-simplified-installer
另外,以下镜像类型不支持文件系统自定义,因为这些镜像类型不创建分区的操作系统镜像:
-
edge-commit -
edge-container -
tar -
container
但是,以下镜像类型支持文件系统自定义:
-
edge-raw-image -
edge-ami -
edge-vsphere
除了 OSTree 系统的一些其他例外情况外,您可以在文件系统的 /root 级别中选择任意目录名称,例如:' /local',' /mypartition', /$PARTITION。在逻辑卷中,这些更改是在 LVM 分区系统之上进行的。支持以下目录:单独的逻辑卷上的 /var、' /var/log' 和 /var/lib/containers。以下是在根级别上的例外:
- "/home": {Deny: true},
- "/mnt": {Deny: true},
- "/opt": {Deny: true},
- "/ostree": {Deny: true},
- "/root": {Deny: true},
- "/srv": {Deny: true},
- "/var/home": {Deny: true},
- "/var/mnt": {Deny: true},
- "/var/opt": {Deny: true},
- "/var/roothome": {Deny: true},
- "/var/srv": {Deny: true},
- "/var/usrlocal": {Deny: true},
对于 RHEL 8.10 和 9.5 之前的发行版本,蓝图支持以下 挂载点 及其子目录:
-
/- root 挂载点 -
/var -
/home -
/opt -
/srv -
/usr -
/app -
/data -
/tmp
从 RHEL 9.5 和 8.10 发行版本开始,您可以指定任意自定义挂载点,除了为操作系统保留的特定路径之外。
您不能在以下挂载点及其子目录中指定任意自定义挂载点:
-
/bin -
/boot/efi -
/dev -
/etc -
/lib -
/lib64 -
/lost+found -
/proc -
/run -
/sbin -
/sys -
/sysroot -
/var/lock -
/var/run
您可以在蓝图中为 /usr 自定义挂载点自定义文件系统,但不允许对其子目录自定义文件系统。
从 RHEL 9.0 发行版开始,才支持使用 CLI 自定义挂载点。在之前的发行版本中,您只能将 root 分区指定为挂载点,并将 size 参数指定为镜像大小的别名。
如果您在自定义镜像中有多个分区,您可以在 LVM 上创建带有自定义文件系统分区的镜像,并在运行时调整这些分区大小。为此,您可以在蓝图中指定自定义文件系统配置,因此创建具有所需磁盘布局的镜像。默认文件系统布局保持不变 - 如果您使用没有文件系统自定义的普通镜像,cloud-init 会调整 root 分区的大小。
蓝图会自动将文件系统自定义转换为 LVM 分区。
您可以使用自定义文件蓝图自定义来创建新文件或替换现有文件。您指定的文件的父目录必须存在,否则镜像构建会失败。通过在 [[customizations.directories]] 自定义中指定它来确保父目录存在。
如果您将文件自定义与其他蓝图自定义相结合,这可能会影响其他自定义的功能,或者可能会覆盖当前的文件自定义。
4.8.17.1. 在蓝图中指定自定义文件 复制链接链接已复制到粘贴板!
使用 [[customizations.files]] 蓝图自定义,您可以:
- 创建新文本文件。
- 修改现有文件。警告:这可能会覆盖现有内容。
- 为您要创建的文件设置用户和组所有权。
- 以八进制格式设置模式权限。
您不能创建或替换以下文件:
-
/etc/fstab -
/etc/shadow -
/etc/passwd -
/etc/group
您可以使用 [[customizations.files]] 和 [[customizations.directories]] 蓝图自定义在镜像中创建自定义文件和目录。您只能在 /etc 目录中使用这些自定义。
这些蓝图自定义被所有镜像类型支持,但部署 OSTree 提交的镜像类型除外,如 edge-raw-image、edge-installer 和edge-simplified-installer。
如果您将已设置了 mode、user 或 group 的镜像中已存在的目录路径与 customizations.directories 一起使用,则镜像构建无法防止更改现有目录的所有权或权限。