双启动时时钟时间关闭

Bil*_*den 369 dual-boot windows timezone

双启动系统 Windows XP Pro 和 Ubuntu 12.04。

我将 bios 设置为正确的时间,将 Ubuntu 设置为美国东部时间。Ubuntu 将启动,时间将减少 -4 小时。如果我在 Ubuntu 中更正时间,那么当我在 Windows XP 中启动时,时间将减少 + 4 小时。

这是 12.04 的全新安装。在重新安装 Ubuntu 之前我没有这个问题。

Eri*_*lho 332

https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts

多个引导系统时间冲突

操作系统在位于主板上的硬件时钟中存储和检索时间,以便即使在系统断电时它也可以跟踪时间。大多数操作系统(Linux/Unix/Mac)默认将硬件时钟上的时间存储为UTC,尽管有些系统(特别是 Microsoft Windows)将硬件时钟上的时间存储为“本地”时间。如果两个系统以不同的方式查看硬件时钟,这会导致双引导系统出现问题。

将硬件时钟设为 UTC 的优势在于,在时区之间移动或夏令时 (DST) 开始或结束时,您无需更改硬件时钟,因为 UTC 没有 DST 或时区偏移。

将 Linux 改为使用本地时间比将 Windows 改为使用 UTC 更容易也更可靠,因此双引导 Linux/Windows 系统倾向于使用本地时间。

自 Intrepid (8.10) 起,UTC=yes 是默认值。

让 Windows 使用 UTC

注意:此方法最初在 Windows Vista 和 Server 2008 上不受支持,但在 Vista SP2、Windows 7、Server 2008 R2 和 Windows 8/8.1 上又回来了。

使 MS Windows 将硬件时钟的时间计算为 UTC。

使用以下内容创建一个名为WindowsTimeFixUTC.reg的文件,然后双击它以将内容与注册表合并:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001
Run Code Online (Sandbox Code Playgroud)

注意: Windows 时间服务仍会在关机时将本地时间写入 RTC,无论上述注册表设置如何,因此使用此命令禁用 Windows 时间服务很方便(如果在 Windows 中使用任何第三方时间时仍需要时间同步)同步解决方案):

sc config w32time start= disabled
Run Code Online (Sandbox Code Playgroud)

撤消更改
您可以创建一个包含以下内容的文件,然后双击它以合并原始更改,如上:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-
Run Code Online (Sandbox Code Playgroud)

如果禁用了 Windows 时间服务,请使用以下命令再次启用它:

sc config w32time start= demand
Run Code Online (Sandbox Code Playgroud)

让 Linux 使用“本地”时间

告诉您的 Ubuntu 系统硬件时钟设置为“本地”时间:

Ubuntu 15.04 之前的系统(例如 Ubuntu 14.04 LTS):

  1. 编辑 /etc/default/rcS
  2. 添加或更改以下部分

    # Set UTC=yes if your hardware clock is set to UTC (GMT)
    UTC=no
    
    Run Code Online (Sandbox Code Playgroud)

Ubuntu 15.04 及以上系统(例如 Ubuntu 16.04 LTS):

  1. 打开终端并执行以下命令

    timedatectl set-local-rtc 1
    
    Run Code Online (Sandbox Code Playgroud)

  • 我的天。我无法*相信*他们愚蠢到在硬件时钟上使用当地时间。为什么你会,永远这样做? (75认同)
  • @twome 因为在 MS-DOS 的早期,联网方式并不多,而且移动 PC 到移动时区的情况并不常见。(是的,即使考虑到那段历史,这仍然不是最好的举动)。 (28认同)
  • 对于那些略读文本的人,您只需更改其中一个操作系统的设置,而不是同时更改两者。 (11认同)
  • @twome 虽然我同意您将硬件时钟保持为 Universal,但由于它不保留时区信息,因此几乎没有问题:A) BIOS/UEFI 具有各种功能,例如自动唤醒/睡眠定时器,您可以在其中为这些触发器设置时间。在 UTC 中设置这些时间会很奇怪 - 至少对于普通用户来说。B) 正如上面 Jon 所说,向后兼容的原因。 (10认同)
  • 在 Windows PowerShell 中运行此命令以更新上述注册表属性:`New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001` (8认同)
  • @AndyP 这只是 unix 迷们迂腐。只要它是您所期望的,这并不重要。 (3认同)

mur*_*uru 74

要将 BIOS 时钟设置为本地时间而不是基于 systemd 的版本(15.04 及更高版本)中的 UTC,您必须使用该timedatectl命令。根据Arch 维基

您可以通过命令行设置硬件时钟时间标准。您可以通过以下方式检查已设置使用的内容:

$ timedatectl | grep local
Run Code Online (Sandbox Code Playgroud)

可以通过timedatectl 命令查询和设置硬件时钟。要将硬件时钟时间标准更改为本地时间,请使用:

# timedatectl set-local-rtc 1
Run Code Online (Sandbox Code Playgroud)

如果要恢复为 UTC 的硬件时钟,请执行以下操作:

# timedatectl set-local-rtc 0
Run Code Online (Sandbox Code Playgroud)

  • 在 Ubuntu 16.10 上,它有助于执行“hwclock --systohc --localtime”。这会将“本地部分”写入 /etc/adjtime,从而使其永久化。 (4认同)
  • @user1050755 是在 timedatectl 命令之前、之后还是代替 timedatectl 命令? (2认同)

Eli*_*gan 36

您的时区是Eastern,目前是 EDT(东部夏令时间)。EDT 是UTC减去四小时,与您遇到的偏移量相同。

在双引导系统上发生这种情况时,通常是因为一个操作系统认为硬件时钟跟踪本地时间,而另一个操作系统认为硬件时钟跟踪 UTC。

在您的情况下,您的硬件时钟可能设置为本地时间,并且:

  • Windows 设置为使用本地时间,这(给定您的时间设置)是正确的
  • Ubuntu 设置为使用 UTC,这(根据您的时间设置)是不正确的

如果您只是在 Ubuntu 系统中手动或自动重置时间,那么在 Windows 中就会出错,因此这不是一个好的解决方案。

相反,最好的解决方案可能是重新配置 Ubuntu 以将硬件时钟时间视为本地时间(然后您可以单独保留 Windows 配置和硬件时钟时间)。

为此,请/etc/default/rcS以 root 身份进行编辑并确保它具有UTC=no

  1. Alt+ F2

  2. 键入gksu gedit /etc/default/rcS并按Enter

  3. 你可能会看到这个:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    Run Code Online (Sandbox Code Playgroud)
    • 如果这样做,请更改UTC=yesUTC=no。(或者,您可能还想添加注释,将其更改为类似UTC=no # changed to accommodate Windows system.#字符后的行上的所有内容都是注释,只是为了使您的设置更具可读性。)
    • 如果没有,请查找任何UTC=一行。如果它没有注释(即,#开头没有 a ),则相应地更改它。如果它被注释,通过删除前导来取消注释#并确保它显示为UTC=no
  4. 保存文件并退出文本编辑器。

  5. 重新启动以应用您的更改并检查时间现在在两个操作系统上是否正常工作。

来源: https : //help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time

(但这很笼统;我写了这个答案专门适用于您的情况,这是一个比较常见的问题。)


Ope*_*ool 15

/etc/rcS 修复在我的 Win7 / Ubuntu 14.04x64 安装上不起作用,也没有通过时钟 GUI 进行任何修复。因为问题的根源是 BIOS 时间 VS UTC 时间,而 Windows 在使用 UTC 时很麻烦,我只是在地图上选择了一个使用 UTC+0 的点(BIOS 和 UTC 时间之间没有变化) .

尝试将您的位置更改为雷克雅未克(冰岛首都)。瞧!您的 Ubuntu 时间将更改以匹配您的 BIOS 时间。