解决双系统(ubuntu与windows)中的时间同步问题

我在同一台机器上同时运行Ubuntu和其他操作系统(如Windows),遇到由于不同的RTC处理方式导致的时间不同步问题

使用下面的指令查看系统时间状态,Local time实际上是RTC time

sudo timedatectl status

在这里插入图片描述

Windows默认假设RTC是以本地时间为基准设置的,而大多数Linux发行版(包括Ubuntu)则通常配置成认为RTC保存的是UTC协调世界时15。这种差异会导致每次切换操作系统后看到的时间不一致。

下面我将调整Ubuntu以匹配Windows的RTC设置:

方法一:通过timedatectl设置

在Ubuntu 24.04中,推荐使用timedatectl命令来调整RTC的行为,而不是传统的hwclock工具。具体操作如下:

  1. 打开终端并输入以下命令来让Ubuntu将RTC视为本地时间:

    sudo timedatectl set-local-rtc 1 --adjust-system-clock
    

    这个命令会告诉Ubuntu将RTC视为保存的是本地时间而非UTC,并且还会根据这个设定调整系统时钟。

  2. 验证更改是否生效:

    timedatectl status
    

    在输出中,能看到相关的RTC设置已经更新为本地时间。

方法二:修改GRUB加载器设置

另一种更推荐的做法是仅改变GRUB加载器如何解释RTC数据而不影响其他任何地方。这样可以在不影响Ubuntu内部逻辑的前提下实现与Windows相同的时间表示法:

  1. 编辑GRUB配置文件 /etc/default/grub :

    sudo nano /etc/default/grub
    
  2. 添加或修改这一行:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash clock=tz=localtime"
    
  3. 更新GRUB并将改动应用:

    sudo update-grub
    reboot
    

这种方法的好处是它不会改变整个系统的全局行为,而是仅仅改变了GRUB加载器如何解释RTC数据。

注意事项

  • 如果选择方法一,请注意这会影响所有基于该RTC运行的操作系统,因此如果除了Windows之外还有其他的Linux发行版也依赖于相同的RTC,则需要确保它们也都被正确配置。
  • 方法二更适合那些希望最小化对现有系统影响的情况,因为它只修改了启动加载器的行为,而没有改变底层的RTC配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值