或者

XMSDN
请提供您需要摘要的具体内容,发送后我将立即为您生成一段100-200字的摘要。

本文目录导读:

  1. 查看当前系统时间
  2. 修改时间的三种方法
  3. 虚拟机特有的“时间自动还原”问题

虚拟机安装的Linux怎么改时间?详解三种常用方法与注意事项

在使用虚拟机(如 VMware、VirtualBox 或 Hyper-V)运行 Linux 系统时,我们经常会遇到时间不准确的问题,这可能是因为安装时选择了错误的时区,或者是为了模拟特定时间场景进行测试,甚至是因为虚拟机与宿主机的时间同步机制导致了时间偏差。

或者

本文将详细介绍在虚拟机安装的 Linux 环境下,如何通过命令行修改时间,并解决虚拟机特有的时间同步问题。

查看当前系统时间

在修改时间之前,首先需要确认当前的系统时间和时区,在终端中输入以下命令:

date

该命令会显示当前的系统日期和时间。

timedatectl

(注:适用于 CentOS 7+、Ubuntu 16.04+ 等使用 systemd 的系统)该命令会显示更详细的信息,包括本地时间、通用时间(UTC)以及当前的时区。


修改时间的三种方法

根据你的具体需求(是只改日期、只改时间,还是改时区),可以选择以下不同的方法。

方法 1:使用 date 命令(临时修改,重启失效)

这是最传统的方法,适用于快速调整时间,但如果重启系统且未写入硬件时钟,时间可能会恢复。

语法: date -s "时间字符串"

  1. 设置具体日期和时间: 要将时间设置为 2023年10月1日 14:30:00,输入:

    date -s "2023-10-01 14:30:00"

    或者:

    date 100114302023.00  # 格式为 月日时分年.秒
  2. 只修改时间:

    date -s "14:30:00"
  3. 只修改日期:

    date -s "2023-10-01"

注意: 使用 date 命令修改后,建议执行以下命令将系统时间写入硬件时钟(BIOS),防止重启失效:

hwclock --systohcclock -w

方法 2:使用 timedatectl 命令(推荐,永久生效)

在现代 Linux 发行版中,timedatectl 是管理时间和时区的标准工具,更加直观且易于维护。

  1. 修改时区(最常见的需求): 很多时候“时间不对”其实是时区选错了,要设置为中国上海时间(UTC+8):

    timedatectl set-timezone Asia/Shanghai
  2. 修改日期和时间:

    timedatectl set-time "2023-10-01 14:30:00"

注意: 如果系统开启了 NTP(网络时间同步)自动同步,使用 timedatectl 修改时间可能会失败或被自动覆盖,你需要先关闭 NTP 同步:

timedatectl set-ntp no
# 修改完时间后,如果需要,可以再重新开启
timedatectl set-ntp yes

方法 3:修改时区文件(通用方法)

timedatectl 不可用,可以通过软链接修改时区文件。

  1. 备份原时区文件:
    mv /etc/localtime /etc/localtime.bak
  2. 创建软链接指向上海时区:
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  3. 同步硬件时钟:
    hwclock --systohc

虚拟机特有的“时间自动还原”问题

很多用户在虚拟机中按照上述方法修改了时间,但过了一会儿发现时间又自动变回了原来的时间,这是因为虚拟机工具默认开启了“时间同步”功能,虚拟机会定期与宿主机(你的物理电脑)同步时间。

如果你需要永久保持虚拟机内的修改时间(例如进行过期测试),必须关闭这个同步功能。

VMware 虚拟机解决方法

  • 方法 A(虚拟机设置): 关闭虚拟机,在 VMware 中找到该虚拟机的设置 -> 选项 -> VMware Tools -> 取消勾选“将客户机时间与主机同步”。

  • 方法 B(虚拟机内操作): 如果安装了 VMware Tools,可以在虚拟机内的 /etc/vmware/tools 目录下找到配置文件(通常是 tools.conf),添加或修改以下内容:

    [time]
    synchronize = "FALSE"

    然后重启 VMware Tools 服务:

    systemctl restart vmtoolsd  # 或根据系统不同使用 service 命令

VirtualBox 虚拟机解决方法

  • 关闭虚拟机。
  • 在 VirtualBox 管理器中,选中虚拟机 -> 设置 -> 系统 -> 取消勾选“启用时钟与主机时间同步”。

关闭系统内的 NTP 服务

除了虚拟机软件层面的同步,Linux 系统内部也可能有 NTP 服务在自动联网校准时间,如果需要手动控制时间,请确保停止相关服务:

# CentOS 7/8
systemctl stop chronyd
systemctl disable chronyd
# Ubuntu/Debian
systemctl stop ntp
systemctl disable ntp
# 或者对于 systemd-timesyncd
systemctl stop systemd-timesyncd
systemctl disable systemd-timesyncd

在虚拟机安装的 Linux 中修改时间,通常分为两步:

  1. 使用命令(如 datetimedatectl)修改系统当前时间。
  2. 关键步骤: 关闭虚拟机软件的时间同步以及 Linux 系统内部的 NTP 自动同步服务。

只有完成这两步,修改后的时间才能长久保持。

💡 温馨提示

📌 阅读须知 Rules & Notice

本站坚持免费分享,致力于为大家提供实用、优质的内容与资源。

🔗欢迎大家收藏与转发,转载请保留本站链接,请勿私自去除版权信息。

📚所有外部整理资源,仅作学习交流使用,请勿用于各类商业用途。

🤝网络相聚本是缘分,希望大家文明交流,理性浏览。

🛠️若发现内容有误或涉及侵权,我们将第一时间处理整改。

💖 感谢每一位朋友的陪伴与支持

✨ 用心分享,一路同行 ✨

取消
微信二维码
微信二维码
支付宝二维码