5.17. 指定一个自定义文件系统配置


您可以在蓝图中指定自定义文件系统配置,因此可以创建具有特定磁盘布局,而不是默认布局配置的镜像。通过使用蓝图中的非默认布局配置,您可以受益于:

  • 安全基准合规性
  • 防止磁盘不足错误
  • 提高的性能
  • 与现有设置的一致性
注意

OSTree 系统不支持文件系统自定义,因为 OSTree 镜像有自己的挂载规则,如只读。不支持以下镜像类型:

  • image-installer
  • edge-installer
  • edge-simplified-installer

另外,以下镜像类型不支持文件系统自定义,因为这些镜像类型不创建分区的操作系统镜像:

  • edge-commit
  • edge-container
  • tar
  • container

对于 9.4 之前的发行版本,蓝图支持以下 挂载点 及其子目录:

  • / - root 挂载点
  • /var
  • /home
  • /opt
  • /srv
  • /usr
  • /app
  • /data
  • /tmp

从 RHEL 9.4 和 8.10 发行版本开始,您可以指定任意自定义挂载点,为操作系统保留的特定路径除外。

您不能在以下挂载点及其子目录中指定任意自定义挂载点:

  • /bin
  • /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]] 自定义中指定它来确保父目录存在。

警告

如果您将文件自定义与其他蓝图自定义相结合,这可能会影响其他自定义的功能,或者可能会覆盖当前的文件自定义。

5.17.1. 在蓝图中指定自定义文件

使用 [[customizations.files]] 蓝图自定义,您可以:

  • 创建新文本文件。
  • 修改现有文件。警告:这可能会覆盖现有内容。
  • 为您要创建的文件设置用户和组所有权。
  • 以八进制格式设置模式权限。

您无法创建或替换以下文件:

  • /etc/fstab
  • /etc/shadow
  • /etc/passwd
  • /etc/group

您可以使用 [[customizations.files]][[customizations.directories]] 蓝图自定义在镜像中创建自定义文件和目录。您只能在 /etc 目录中使用这些自定义。

注意

这些蓝图自定义被所有镜像类型支持,但部署 OSTree 提交的镜像类型除外,如 edge-raw-imageedge-installeredge-simplified-installer

警告

如果您将 customizations.directories 与设置了 modeusergroup 的镜像中已存在的目录路径一起使用,则镜像构建无法防止更改现有目录的所有权或权限。

5.17.2. 在蓝图中指定自定义目录

使用 [[customizations.directory]] 蓝图自定义,您可以:

  • 创建新目录。
  • 为您要创建的目录设置用户和组所有权。
  • 以八进制格式设置目录模式权限。
  • 确保根据需要创建父目录。

使用 [[customizations.files]] 蓝图自定义,您可以:

  • 创建新文本文件。
  • 修改现有文件。警告:这可能会覆盖现有内容。
  • 为您要创建的文件设置用户和组所有权。
  • 以八进制格式设置模式权限。
注意

您无法创建或替换以下文件:

  • /etc/fstab
  • /etc/shadow
  • /etc/passwd
  • /etc/group

以下自定义可用:

  • 在蓝图中自定义文件系统配置:

    [[customizations.filesystem]]
    mountpoint = "MOUNTPOINT"
    minsize = MINIMUM-PARTITION-SIZE
    Copy to Clipboard Toggle word wrap

    MINIMUM-PARTITION-SIZE 值没有默认大小格式。蓝图自定义支持以下值和单位:kB 到 TB 以及 KiB 到 TiB。例如,您可以以字节为单位定义挂载点大小:

    [[customizations.filesystem]]
    mountpoint = "/var"
    minsize = 1073741824
    Copy to Clipboard Toggle word wrap
  • 使用单位定义挂载点大小。例如:

    [[customizations.filesystem]]
    mountpoint = "/opt"
    minsize = "20 GiB"
    Copy to Clipboard Toggle word wrap
    [[customizations.filesystem]]
    mountpoint = "/var"
    minsize = "1 GiB"
    Copy to Clipboard Toggle word wrap
  • 通过设置 minsize 来定义最小分区。例如:

    [[customizations.filesystem]]
    mountpoint = "/var"
    minsize = 2147483648
    Copy to Clipboard Toggle word wrap
  • 使用 [[customizations.directories]],在 /etc 目录下为镜像创建自定义目录:

    [[customizations.directories]]
    path = "/etc/directory_name"
    mode = "octal_access_permission"
    user = "user_string_or_integer"
    group = "group_string_or_integer"
    ensure_parents = boolean
    Copy to Clipboard Toggle word wrap

    蓝图条目如下所述:

    • path - 必需 - 输入您要创建的目录的路径。它必须是 /etc 目录下的绝对路径。
    • mode - 可选 - 以八进制格式设置目录的访问权限。如果没有指定权限,则默认为 0755。前面的零是可选的。
    • user - 可选 - 将用户设置为目录的所有者。如果没有指定用户,则默认为 root。您可以将用户指定为字符串或整数。
    • group - 可选 - 将组设置为目录的所有者。如果没有指定组,则默认为 root。您可以将组指定为字符串或整数。
    • ensure_parents - 可选 - 指定是否要根据需要创建父目录。如果没有指定值,则默认为 false
  • 使用 [[customizations.directories]],在 /etc 目录下为镜像创建自定义文件:

    [[customizations.files]]
    path = "/etc/directory_name"
    mode = "octal_access_permission"
    user = "user_string_or_integer"
    group = "group_string_or_integer"
    data = "Hello world!"
    Copy to Clipboard Toggle word wrap

    蓝图条目如下所述:

    • path - 必需 - 输入您要创建的文件的路径。它必须是 /etc 目录下的绝对路径。
    • mode 可选 - 以八进制格式设置对文件的访问权限。如果没有指定权限,则默认为 0644。前面的零是可选的。
    • user - 可选 - 将用户设置为文件所有者。如果没有指定用户,则默认为 root。您可以将用户指定为字符串或整数。
    • group - 可选 - 将组设置为文件所有者。如果没有指定组,则默认为 root。您可以将组指定为字符串或整数。
    • data - 可选 - 指定纯文本文件的内容。如果没有指定内容,它会创建一个空文件。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat