%general-entities; ]> 配置系统时钟 clock configuring 本节讨论如何配置 systemd-timedated 系统服务, 它的作用是配置系统时钟和时区。 如果您不确定您的硬件时钟是否设置为 UTC ,运行 hwclock --localtime --show 命令, 它会显示硬件时钟给出的当前时间。如果这个时间和您的手表显示的一致, 则说明硬件时钟被设定为本地时间。相反,如果 hwclock 输出的时间不是本地时间,则硬件时钟很可能被设定为 UTC 时间。 根据您的时区,在 hwclock 显示的时间上加减对应的小时数,进行进一步的验证。 例如,如果您现在处于莫斯科时区,即 GMT -0700 ,在本地时间上加 7 小时,再进行比较。 译注 Windows 会将硬件时钟设定为本地时间,因此如果您要同时安装 Windows 和 Linux,就要将 Linux (包括 LFS 和其他发行版) 配置为使用本地时间,除非能够忍受 Windows 和 Linux 显示的不同时间 (必有一个是错误的)。 systemd-timedated 读取 /etc/adjtime, 并根据其内容将硬件时钟设定为 UTC 或本地时间。 如果您的硬件时钟设置为本地时间,以下列内容创建 /etc/adjtime 文件: cat > /etc/adjtime << "EOF" 0.0 0 0.0 0 LOCAL EOF 如果 /etc/adjtime 在初次引导时不存在, systemd-timedated 会假设硬件时钟使用 UTC , 并据此调整该文件。 您也可以使用 timedatectl 工具告诉 systemd-timedated 您的硬件时钟是 UTC 还是本地时间: timedatectl set-local-rtc 1 timedatectl 也能修改系统时间和时区。 如果要修改系统时间,执行以下命令: timedatectl set-time YYYY-MM-DD HH:MM:SS 硬件时钟也会同时被更新。 要修改当前时区,执行以下命令: timedatectl set-timezone TIMEZONE 您可以通过运行以下命令查看可用的时区列表: timedatectl list-timezones 注意 timedatectl 命令只能用于 systemd 引导的系统。 译注 timedatectl 在 chroot 环境中无法使用, 如果需要重新设定系统时间,要么在引导进入 LFS 系统后再使用 timedatectl ,要么使用传统的 hwclock --set 命令。系统时区可以按照 中的方法设置。 网络时钟同步 从版本 213 开始,systemd 附带了一个名为 systemd-timesyncd 的守护进程, 可以用于将系统时间与远程 NTP 服务器同步。 该守护进程没有被设计为替代现有的 NTP 守护进程, 而是一个仅仅实现了 SNTP 协议的客户端,可以被用于一些不太复杂的任务, 或是资源紧张的系统。 从 systemd 版本 216 开始,systemd-timesyncd 守护进程被默认启用。如果希望禁用它,执行以下命令: systemctl disable systemd-timesyncd 可以在 /etc/systemd/timesyncd.conf 中修改 systemd-timesyncd 使用的服务器。 译注 提供了 NTP 服务器的域名和 IP 地址列表。 注意,当系统时钟设定为本地时间时, systemd-timesyncd 不会更新硬件时钟。