<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>chrony on levenzonLabs</title>
    <link>/tags/chrony/</link>
    <description>Recent content in chrony on levenzonLabs</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Wed, 13 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="/tags/chrony/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>If you ever pulled an Azure VM back to onprem ESXi, don&#39;t neglect the clock!!</title>
      <link>/posts/post-05-13-2026/</link>
      <pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-05-13-2026/</guid>
      <description>If you ever pulled an Azure VM back to onprem ESXi, don&amp;rsquo;t neglect the clock!! or your devs will remind you. :RHEL, Oracle Linux.
I use Veeam IR for this because it does the &amp;ldquo;conversion&amp;rdquo; for you..sort of.
When Veeam Instant Recovery (IR) performs a V2V (Virtual-to-Virtual) conversion from Azure, it essentially takes a &amp;ldquo;snapshot&amp;rdquo; of the OS as it lived in the cloud. Azure virtual machines are pre-configured to use the Hyper-V hardware clock because Azure runs on a modified Hyper-V hypervisor.</description>
      <content>&lt;h2 id=&#34;if-you-ever-pulled-an-azure-vm-back-to-onprem-esxi-dont-neglect-the-clock-or-your-devs-will-remind-you&#34;&gt;If you ever pulled an Azure VM back to onprem ESXi, don&amp;rsquo;t neglect the clock!! or your devs will remind you.&lt;/h2&gt;
&lt;p&gt;:RHEL, Oracle Linux.&lt;/p&gt;
&lt;p&gt;I use Veeam IR for this because it does the &amp;ldquo;conversion&amp;rdquo; for you..sort of.&lt;/p&gt;
&lt;p&gt;When &lt;strong&gt;Veeam Instant Recovery (IR)&lt;/strong&gt; performs a V2V (Virtual-to-Virtual) conversion from Azure, it essentially takes a &amp;ldquo;snapshot&amp;rdquo; of the OS as it lived in the cloud.
Azure virtual machines are pre-configured to use the Hyper-V hardware clock because Azure runs on a modified Hyper-V hypervisor. Now that the guest is sitting on ESXi, chronyd is still trying to talk to hardware that no longer exists.
Here is the &amp;ldquo;clean-up&amp;rdquo; checklist to finish the migration and stop those errors:&lt;/p&gt;
&lt;h3 id=&#34;1-strip-the-azure-specific-refclock&#34;&gt;1. Strip the Azure-specific Refclock&lt;/h3&gt;
&lt;p&gt;The most direct fix is removing the hardcoded reference to the Hyper-V device.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the config: sudo vi /etc/chrony.conf&lt;/li&gt;
&lt;li&gt;Find the line: refclock PHC /dev/ptp_hyperv &amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delete it.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Restart the daemon: sudo systemctl restart chronyd&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;2-check-for-drop-in-configs&#34;&gt;2. Check for &amp;ldquo;Drop-in&amp;rdquo; Configs&lt;/h3&gt;
&lt;p&gt;Azure images often use &amp;ldquo;drop-in&amp;rdquo; files that override the main chrony.conf. If you deleted the line and the error persists, check this directory:
ls /etc/chrony.d/
If you see a file like azure.conf or 10-azure-hwclock.conf, delete it or move it to a backup folder.&lt;/p&gt;
&lt;h3 id=&#34;3-load-the-vmware-driver&#34;&gt;3. Load the VMware Driver&lt;/h3&gt;
&lt;p&gt;To get the best performance on vSphere, you want the VM to recognize it&amp;rsquo;s on VMware hardware. Check if the VMware PTP driver is loaded:
lsmod | grep ptp_vmw
If it’s not there, you can load it:
sudo modprobe ptp_vmw
&lt;em&gt;(To make it permanent, add ptp_vmw to a new file in /etc/modules-load.d/vmware.conf.)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;4-installupdate-vmware-tools&#34;&gt;4. Install/Update VMware Tools&lt;/h3&gt;
&lt;p&gt;Since this was an Azure VM, it likely has hv-kvp-daemon-guest or other Hyper-V tools installed. You should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Uninstall Hyper-V tools:&lt;/strong&gt; sudo yum remove hyperv-daemons (or apt purge depending on the OS).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Install Open VM Tools:&lt;/strong&gt; sudo yum install open-vm-tools (or apt install).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable the service:&lt;/strong&gt; sudo systemctl enable &amp;ndash;now vmtoolsd.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;5-final-source-check&#34;&gt;5. Final Source Check&lt;/h3&gt;
&lt;p&gt;Run chronyc sources -v. You should now see it reaching out to standard NTP pools (like 2.pool.ntp.org) or your local domain controllers, rather than failing to open a local device.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quick Tip for the vSphere side:&lt;/strong&gt;
Make sure &amp;ldquo;Synchronize guest time with host&amp;rdquo; is &lt;strong&gt;disabled&lt;/strong&gt; in the VM settings (Edit Settings &amp;gt; VM Options &amp;gt; VMware Tools) if you plan on letting Chrony handle NTP over the network. Having both active can occasionally cause &amp;ldquo;time jumps.&amp;rdquo;&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
