SYSTEMD-FIRSTBOOT(1)

NAME
systemd-firstboot, systemd-firstboot.service - 初始化基本系统设置

SYNOPSIS

systemd-firstboot [OPTIONS...]

systemd-firstboot.service

描述

systemd-firstboot 既可以在系统首次启动时交互式的初始化最基本的系统设置， 也可以在创建新系统镜像时非交互式的初始化最基本的系统设置。 这些最基本的系统设置包括：

    • 本地化， 也就是 LANG= 与 LC_MESSAGES 两个环境变量。

    • 时区

    • 主机名

    • "machine ID"

    • root 用户的密码

所有上述设置既可以交互式的向用户询问， 也可以非交互式的通过命令行选项指定， 还可以从创建新系统镜像的主机复制而来。

如果某个设置已经被初始化， 那么将不会覆盖已有的设置， 并且不会提示用户设置此项。

与 localectl(1), timedatectl(1), hostnamectl(1) 不同，此工具直接操作文件系统上的配置文件， 并不需要任何系统服务的支持。 因此， systemd-firstboot 可用于设置一个已挂载(但未启动)的系统镜像。 不应该在运行中的系统上使用 systemd-firstboot 命令。

选项

能够识别的命令行选项如下：

--root=root
    指定已挂载(但未启动)的系统镜像的根目录位置， 所有其他路径都将以此 root 为前缀。 仅在为已挂载(但未启动)的系统镜像 初始化基本系统参数时才需要使用此选项。

--locale=LOCALE, --locale-messages=LOCALE
    分别设置 LANG= 与 LC_MESSAGES 环境变量。 例如 "zh_CN.utf8" 。此选项用于设置 locale.conf(5) 配置文件。

--timezone=TIMEZONE
    设置系统时区。 例如 "PRC" (北京时间)。此选项用于设置 localtime(5) 软连接的指向。

--hostname=HOSTNAME
    设置主机名。 此选项用于设置 hostname(5) 配置文件。

--machine-id=ID
    设置"machine ID"。 此选项用于设置 machine-id(5) 文件。

--root-password=PASSWORD, --root-password-file=PATH
    设置root用户的密码， 同时创建 shadow(5) 文件。既可以通过 --root-password= 选项直接在命令行上指定密码， 也可以通过 --root-password-file= 选项从指定的文件中读取密码。 出于安全考虑， 一般不建议直接在命令行上指定密码， 因为其他用户可以通过 ps(1) 命令看到密码。

--prompt-locale, --prompt-timezone, --prompt-hostname, --prompt-root-password
    以交互式对话询问用户特定的设置， 但不会提示已经在命令行上指定的设置(因为它们的优先级更高)。

--prompt
    以交互式对话询问用户本地化、时区、主机名、root密码。 相当于同时使用 --prompt-locale, --prompt-timezone, --prompt-hostname, --prompt-root-password 选项。

--copy-locale, --copy-timezone, --copy-root-password
    从主机复制特定的设置， 必须和 --root= 选项一起使用。

--copy
    从主机复制本地化、时区、root密码。 必须和 --root= 选项一起使用。相当于同时使用 --copy-locale, --copy-timezone, --copy-root-password 选项。

--setup-machine-id
    将"machine ID"初始化为一个随机值。 必须和 --root= 选项一起使用。

-h, --help
    显示简短的帮助信息并退出。

--version
    显示简短的版本信息并退出。

退出状态

返回值为 0 表示成功， 非零返回值表示失败代码。

参见

systemd(1), locale.conf(5), localtime(5), hostname(5), machine-id(5), shadow(5), systemd-machine-id-setup(1), localectl(1), timedatectl(1), hostnamectl(1)