Nutanix Technology Champion - Nutanix Solution Architect

Julien DUMUR
Infrastructure in a Nutshell

Nutanix Move 6.3.3 was released on October 12, 2026 and brings a new migration method, DirectPath, which migrates virtual machines from ESXi to AHV without the VMware VDDK. In this article, I go through what the release notes contain, including what you should know before downloading the appliance.

DirectPath: ESXi to AHV migration without VDDK

The VDDK (Virtual Disk Development Kit) is the VMware library Move relied on to read the disks of virtual machines hosted on ESXi. Since Move 5.30, you had to download it yourself from Broadcom and upload it into the appliance, which I covered in my article Nutanix Move 5.30+: Download VMware VDDK Files!.

I watched that download close step by step: first open to anyone who registered, then restricted to customers and partners, then to partners only, and finally blocked altogether. Migrating away from VMware was apparently not one of the use cases Broadcom wanted to encourage.

The stats of that article tell the story: it was sitting at 19 views per month on average from January to July 2026, then reached 191 in August and 283 in September, its best month since it was published.

With Move 6.3.3, the problem goes away. The release notes describe DirectPath as a method that directly transfers VM disk data from ESXi to AHV, “eliminating the requirement for VMware Virtual Disk Development Kit (VDDK)”. They say nothing more about how it works, and since I have not deployed this version in my lab yet, I am not going to make it up.

Move 6.3.3 cannot be upgraded, it has to be redeployed

The release notes state it in an “Important” box: “Nutanix Move 6.3.3 supports new deployments only. You cannot upgrade to or from this version.” Your current appliance will therefore not move to 6.3.3, and the “to or from” means that the one you deploy today will not upgrade to the next version either.

On the Nutanix portal, the 6.3.3 download page currently offers a single appliance file, “Move OVA file for ESXi”, with no dedicated AHV image:

I have not deployed this OVA on an AHV cluster yet, so my earlier procedure (Nutanix Move – Part 4: Deployment) should be taken with caution for this version.

Two new vCenter permissions

Migrations from ESXi require two additional privileges on the vCenter account used by Move:

  • Provisioning: Allow virtual machine download
  • Cryptographic Operations: Direct Access

The release notes require them for any migration “with ESXi as source”, without limiting them to DirectPath. I listed the other prerequisites in Nutanix Move – Part 3: Prerequisites.

Versions supported by Nutanix Move 6.3.3

  • AOS: 6.10, 7.0, 7.3, 7.5 and 7.6
  • Prism Central: pc.2024.3, pc.7.3, pc.7.5 and pc.7.6
  • ESXi hosts: 6.5, 6.7, 7.0 up to Update 3, 8.0, 8.0 Update 1 and 8.0 Update 3
  • vCenter: 6.7, 7.0 up to Update 3, 8.0, 8.0 Update 3 and 9.0

The list has gaps: vCenter 9.0 is in it while ESXi 9.0 is not, ESXi 8.0 Update 2 is missing on the host side, and so are vCenter 8.0 Update 1 and Update 2. I do not know whether these are omissions or versions that were not qualified.

ESXi hosts with a free license are not supported, and the supported VirtIO version is 1.2.5, which I wrote about in Nutanix AHV: VirtIO v1.2.5 is available!.

Known issues to read before you migrate

The list of known issues is long, so I am keeping five that directly affect a migration from ESXi:

  • ENG-981753: with DirectPath, the migration fails with the message “Invalid configuration for device ‘0’” when two clusters in the same datacenter have datastores with the same name and different contents. The workaround is to rename the datastores.
  • ENG-992713: after the cutover of multiple VMs migrated without VDDK, the source agent does not release the memory it consumed.
  • ENG-983434: Move marks VMs as unmigratable when they sit on a shared datastore mounted on ESXi hosts in different datacenters.
  • ENG-993473: Move attaches a maximum of 16 disks during migrations, even when free slots remain.
  • ENG-992495: the CPU of the Move VM reaches its limit during migration.

All that is left for me is to deploy this version in my lab and see what DirectPath does on a real migration… In the meantime, my ultimate migration guide to AHV covers the rest of the journey.

Read More

Ever since I started writing about my certifications on this blog, I keep getting asked the same question: “how did you study?” I ended up answering with something more than an article, and since July 2026, ntnx-mastery.com lets you prepare for a Nutanix certification for free, with courses and practice questions built on the official blueprints. The portal already has 25 users, even though I haven’t talked about it anywhere yet.

ntnx-mastery.com home page, a free portal to prepare for Nutanix certifications

Why a portal to prepare for Nutanix certifications

In 2023, in Prepare your Nutanix certifications well (but not only that), I shared my ten-step method: break down the blueprint, take notes, practice with quizzes, sit mock exams, spot your weak areas… The method held up, but it was then up to everyone to find their own resources, between Nutanix University, the official documentation and whatever they could dig up elsewhere to practice.

So I wanted to bring the courses, the resources and the way to organize your revision together in one place, and I built the portal on my own with Claude Code. The site is not official in any way: it is a personal project, with no ties to Nutanix.

The content is AI-assisted as well: for each certification, the AI relies on all the documentation associated with the blueprint, and I then do a quick check of the courses and questions it produces.

Courses and mock exams on Nutanix Mastery

Seven certifications are available today: the NCA (Nutanix Certified Associate, the entry level) and six NCPs (Nutanix Certified Professional), namely NCP-MCI, NCP-BC, NCP-NS, NCP-US, NCP-MCA and NCP-DB. Each one has its own course, split into chapters that follow the blueprint objectives one by one, with links to the official documentation: for NCP-DB, for example, 4 sections and 18 objectives give 18 chapters. In total, the portal has 96 chapters and 1800 practice questions.

Every chapter follows the same structure: why the objective matters, how it works, the exam traps and the look-alike values that lead you astray, then the figures and limits to remember. When a piece of information cannot be verified in the documentation, the course flags it instead of making it up, which is no small detail when the content is AI-generated.

Nutanix certification path on Nutanix Mastery, from Associate to Expert

Chapter 1.1 Foundation of the NCP-MCI 7.5 course on Nutanix Mastery

Two modes are available to practice:

  • Mock exam: timed, with questions distributed according to the blueprint, to put yourself in real exam conditions.
  • Random questions: unlimited, to review at your own pace.

Wherever possible, each answer comes with an explanation drawn from the official documentation, because a right answer found by chance teaches you nothing.

Timed NCP-MCI mock exam on Nutanix Mastery, 75 questions

Each course shows your progress, your profile keeps the history of your mock exams, and 9 trophies (more will come with a future overhaul of the trophy system) are waiting to be unlocked by those who like that kind of carrot. A button lets you report an error on a question, and you can delete your account whenever you want.

Trophies and mock exam history on Nutanix Mastery

It is all free and will stay that way: no ads, no subscription, no data resold. In 2024, I explained how to pass your Nutanix NCA / NCP certification for free, and now you also have what you need to prepare for it without spending a cent.

The portal is English-only, and that is deliberate: the exams are taken in English, so you might as well get used to the terms and phrasing you will find on exam day from the very start of your revision.

You will not find actual exam questions there. I do not reproduce the ones I got when taking my certifications, and that is not the point anyway: the questions cover the whole blueprint and target the subtleties that make you hesitate between two answers. If you are looking for dumps, you are in the wrong place…

A busy first July

The courses came out almost one a day in early July: NCP-BC on the 8th, NCP-NS on the 9th, NCP-US on the 10th, NCP-MCA on the 14th and NCP-DB on the 16th. And the first mistakes were not long in coming.

The silliest one concerned multiple-response questions: on some of them, the question text announced three answers while the instruction displayed above the choices said “choose 2”. Alas! There is no way to correctly answer a question that contradicts itself. Guillaume Mesplin, one of my colleagues at Inetum, reported it to me, and I fixed it with Claude Code. Another rework: the NCP-US question bank was redone on July 11, the day after its release, so that every answer would carry its explanation.

And then Nutanix moved its certifications from 6.10 to 7.5, right after the launch. NCP-DB, published on July 16 on NDB 2.6 and AOS 6.10, had to be rebuilt on the 7.5 blueprint, meaning NDB 2.10 and Prism Central pc.7.5: the new version has been online since August 5, twenty days later, still with 18 chapters and 300 questions. Today, NCA, NCP-MCI, NCP-BC, NCP-NS and NCP-DB are on 7.5 on the portal, while NCP-US and NCP-MCA are still on 6.10.

This will not be the last switch. Back in 2024, I was already announcing the release of NCA 6.10 and NCP-MCI 6.10, and with every new version, the portal will have to keep up.

What’s next for the portal

On the content side, NCP-MCI already has its infographics and videos, published on my YouTube channel Infra in a Nutshell. Those for NCP-BC are being generated, and the other courses will follow. Seven certifications are still waiting for theirs: NCP-CN, NCP-AI, NCP-CI AWS, NCP-CI Azure, NCP-EUC, NCM-MCI and NCS Core.

If the portal helped you and you want to encourage me to keep going, or support the blog along the way, I have a Ko-fi page.

And if you come across a dubious question, the report button is there for that, Guillaume showed the way… Let me know in the comments which certification you would like to see next!

Happy studying, and see you soon on ntnx-mastery.com…

Read More
Nutanix AOS 7.6, AHV 11.2 and PC 7.6 article header

The change I enjoyed the most while moving our production clusters and my homelab to the Nutanix AOS 7.6 upgrade takes two keystrokes: copy and paste finally works in the virtual machine console. It is far from the most significant part of this release, which mostly reshapes SSH access to the CVMs and turns Prism Central 7.6 into a much steadier version than 7.3 and 7.5 were at launch.

We started from AOS 7.5.1.8 and AHV 11.0.1.8 and landed on AOS 7.6.0.6, AHV 11.2.0.2 and Prism Central pc.7.6.0.6, across several production clusters hosted at OVHcloud and on the Supermicro 5019D-FN8TP node of my homelab (8 cores, 128 GB of RAM, 2 TB raw).

For that node, no Foundation on unsupported hardware like last year: I went through Nutanix CE this time. I covered the previous release in my article on AOS 7.5 and AHV 11.0.

Upgrading to AOS 7.6.0.6: order and rollout

I followed the order Nutanix recommends, the one I detail in my article on LCM: Prism Central first, then AOS, then AHV. On the production clusters everything went through LCM with the versions it offered that day, and I timed nothing: I start the job and let it live its own life.

On the homelab I had to download the files and upload them to the cluster before I could start the upgrade, on the same principle as for Prism Central 2024.2.

After the upgrade, the LCM inventory shows the following versions:

LCM inventory showing AOS 7.6.0.6, AHV 11.2.0.2 and NCC 6.0.0.1 after the upgrade

Taking the 7.6.0.6 that LCM offered instead of the initial 7.6 matters more than it looks. That patch clears two known blockers of 7.6: an AOS upgrade that freezes and never progresses (KB-22340), and a host stuck in “EnteringMaintenance” during the move to AHV 11.2 because the Narsil service keeps restarting. On the Prism Central side, pc.7.6.0.6 also fixes the login failures that could lock you out of the web console while upgrading from pc.7.3 or later.

The “Inconsistent Virtual Switch” alert after the upgrade

The only real snag of the whole operation: on two or three of our clusters, Prism raised an “Inconsistent Virtual Switch” alert once the upgrade was over. Nutanix documents it as a known issue of AOS 7.6, still open in 7.6.0.6: the VLAN configured on the AHV host bridge port no longer matches the one AOS stored for the virtual switch (KB-22397).

The vs0 virtual switch flagged as faulty after the upgrade to AOS 7.6.0.6

The same alert also shows up in the list of issues fixed by 7.6, for a different cause, an MTU mismatch between the hosts’ br0 bridge and the virtual switch. One variant goes away, another arrives. We fixed them.

Prism Central 7.6, steady at last

On our side, in production as well as on the homelab, pc.7.6.0.6 carries far fewer bugs than the first versions of 7.3 and 7.5 did. Two things are still worth checking before you start the upgrade.

First: pc.7.6 automatically moves every existing entity without a project into a system project, the “Default Project”, and that migration cannot be rolled back. Second: Nutanix Kubernetes Engine is not compatible with pc.7.6, so you need to move your workloads to NKP beforehand. Good news on the other hand, the local admin account lockout every ten minutes reported in pc.7.6 (KB-22348) no longer appears in the known issues of pc.7.6.0.6.

Copy and paste in the VM console

This one is my favourite of the release! Pasting a long password or a license key into a virtual machine console, instead of typing it character by character, now works from the console launched by Prism Central:

The "Paste to Console" button in the console of an AHV 11.2 VM

You will need both AHV 11.2 and pc.7.6: a cluster left on AHV 11.0 behind an up-to-date Prism Central gets nothing. On a related note, the “Console” tab of a VM is deprecated in Prism Central, the workflow now goes through the “Launch Console” action.

Secure Access and the end of direct SSH

With Secure Access, the admin user who connects over SSH to a CVM no longer lands on a bash prompt: the session opens the NuService Menu, a restricted shell that runs allow-listed commands on the CVM or the AHV host, shows the cluster logs, opens a bash session (admin shell) and manages local LDAP authentication. It is surprising at first, and I have not needed to type a single command in it yet.

NuService Menu displayed on an SSH connection as admin to an AOS 7.6 CVM

The nutanix user, for its part, keeps a regular bash session. For support work, the “Support-only Login” requires a token exchange with Nutanix and opens bash access for a 72-hour window. External SSH access is turned on or off cluster by cluster from Prism Central, through the “NuService Mode”, with a confirmation prompt on every switch:

NuService Mode disable confirmation dialog in Prism Central

On the host side, AHV 11.2 closes external SSH access on port 22 by default: you go through the CVM to reach the host, and the external SSH setting now applies to the CVMs only. What I described in The end of SSH on Nutanix keeps coming true release after release.

One last change under the hood: the CVM and the Prism Central VM now run on RHEL 9, aligned with the RHEL 9 STIG hardening guide. Day to day, it makes very little difference.

What I have not tested yet

Several notable features of this release are still waiting for me to try them, so I am simply listing them:

  • Cluster fault tolerance: the new 1N/2D mode (one node or two disks), and 1N&1D now possible beyond three nodes, with conversion from Prism Central.
  • Cluster expansion: moving an AHV cluster from two to three nodes.
  • Live migration across clusters: from an older AHV version to a newer one, with a choice of destination storage.
  • BIOS UUID: preserved through failover and restore, so third-party backup software keeps its chain intact.
  • Memory metrics: ballooned memory is now reported separately from what the VMs really consume.
  • Capacity per node: 307 TB on all-flash NVMe against 185 TB before, only for new deployments that start on 7.6. An upgraded cluster keeps its former limits.

Planning ahead: the end of the legacy APIs

API versions v0.8, v1, v2 and v3 lose support with the AOS and Prism Central release planned for Q2 2027. The first effect is visible in pc.7.6 already: Nutanix Guest Tools actions move to v4 permissions, and custom roles built on v3 permissions have to be updated. If your scripts still talk to the v2 or v3 APIs, you have less than a year to move them to the v4 APIs…

Now you know everything, all that is left is to launch your LCM upgrades!

Read More
State of the Lab: my Nutanix homelab before the rebuild

In September 2024, I published an article about building a homelab on Nutanix CE in which I wrote that the first question to answer was the one about usage: throwaway virtual machines to build up skills, or services for yourself and your family? I answered “tests”, and I built my whole infrastructure around that answer.

Two years later, the answer has changed and the infrastructure has not moved an inch. Before starting the work, here is what my Nutanix homelab looked like on 1 July 2026.

My Nutanix homelab as of 1 July 2026

On that date, everything running at home sat on three machines. The network first, installed four years ago when the house was built and entirely Ubiquiti: a Dream Machine Pro, a USW Pro 24 PoE switch and a few Flex units spread across the rooms, all connected to a Freebox Delta on 10 Gb/s fibre.

Home network topology: Freebox Delta, Dream Machine Pro and USW Pro 24 PoE, with the Nutanix CE cluster and Mainsail behind the garage switch, Home Assistant on the USW 24 and AdGuard in a Freebox VM

The cluster next, an Intel S2600WTTR chassis installed in the garage because it is not allowed inside the house, on sliding rails screwed straight into the joists for lack of a proper rack, a single node running Nutanix CE 2.1, with two or three test virtual machines on it. I described its hardware configuration back then, and I invite you to read my article on the subject.

The Intel S2600WTTR chassis running my Nutanix CE cluster, mounted on rails under the timber structure of the garage

I recovered this 2016 server from a previous job. It had suffered a hardware failure and the administration did not want to pay for the repair, given its age and the infrastructure replacement already under way towards brand new Nutanix clusters. So I took it out and brought it back to life at my own expense.

Every other hardware decision follows from that starting point. Only one power supply connected out of two, on purpose, because nothing critical runs on it and a failure means at worst a cluster down for a weekend, then partial disk redundancy which I already accepted back then as a compromise. On sizing, however, I never hit the slightest limit: 384 GB of RAM, four 800 GB SAS SSDs and six 10k drives for two or three test virtual machines, headroom that served no purpose.

And that is all, or nearly. Two services live outside the cluster: Home Assistant on a Raspberry Pi, which already collects the consumption of the Meross plug connected to the server and the output of my photovoltaic installation, and AdGuard on a virtual machine hosted by the Freebox. DNS resolution for the entire house therefore relied on my ISP’s box: one slightly long reboot, one change of subscription, and nothing resolves any more.

What the network audit showed

Before touching the cluster, I went through the UniFi configuration in detail, on a version older than UniFi OS 5.1.33. The result is less flattering than the hardware.

The native network is 192.168.2.0/24 and carries VLAN ID 1 in the controller, a gap between naming and reality that stings as soon as you read your own configuration again six months later. Then four SSIDs, all on 2.4 GHz and all on WPA2, one of them hidden for the video surveillance, which has never protected anyone and mostly makes life harder for the devices that have to associate with it. The Tapo cameras, precisely, sit on Wi-Fi on that same native network: the devices I have the fewest guarantees about share the segment with everything else.

Network list in the UniFi controller: the LAN on 192.168.2.0/24 carries VLAN ID 1, and three of the four other VLANs have never handed out a single DHCP lease

The inventory turned up the rest. Four VLANs declared next to the native one, ALARM on 192.168.90.0/29, VIDEO on 192.168.100.0/24, NTNX on 192.168.84.0/24 and IOT on 192.168.99.0/24, three of which have never handed out a single DHCP lease. Meanwhile twenty-five devices share the LAN, cameras included, while the VIDEO VLAN meant for them has been sitting there empty since day one.

That is what happens when you draw a segmentation on installation day and never read it again afterwards.

So there is no segmentation, only declared VLANs. And the reason is the same as for the cluster: my time went elsewhere.

What a Nutanix homelab costs when you only power it on demand

In 2024, I plugged a Meross smart plug into the cluster and fed it into Home Assistant to know exactly what this machine was costing me. Around 5,850 Wh per day with the cluster powered on, which projects to 2,138.9 kWh over a full year and close to 535 euros at the regulated tariff, assuming the server is on every single day of the year.

Daily consumption of the cluster measured in Home Assistant from 18 August to 17 September 2024: a low plateau with the server off, then days close to 5,850 Wh from 10 September onwards

The number I was not expecting is the other one: with the server switched off, it still draws between 300 and 400 Wh per day, only to keep the IPMI and the power supplies alive. Over a year that is 110 to 146 kWh and around thirty euros for a machine that does nothing. The details of the measurement are in the article I wrote on the subject.

The rule imposed itself: the cluster only powers on for tests and for writing articles. And that is exactly what blocks everything else, since an infrastructure you boot on the evening you need it cannot host any service that has to answer around the clock, which rules out pretty much everything a house expects from a server.

I left things as they were for two years because I had other projects on my plate.

What did not exist

On 1 July 2026, I had no internal DNS, no reverse proxy, no monitoring, no secrets management, and no backup system at all.

Each of those gaps is painless as long as the virtual machines are disposable. You reach a VM by its IP address because you only have three of them, you monitor nothing because an outage bothers nobody, and you do not back up what you plan to destroy at the end of the test.

Over time my needs changed, and today I want to run local applications that the whole family will use. The five gaps then show up all at once, because none of them is visible until something has to survive a reboot.

The only addition in two years: Mainsail

Between my 2024 article and today, one single thing has moved. In December 2025, I installed Klipper and Mainsail to drive my 3D printer, on a Raspberry Pi sitting next to it.

I did not even consider another option. AHV does not do USB passthrough, the Nutanix KB is clear on that, and the cluster spends most of its time powered off anyway. There is one avenue I am keeping for the rebuild, VirtualHere, which exposes a USB device over the network and presents it to a virtual machine without any hardware passthrough. I have not tested it yet.

The electricity bill ended up dictating the architecture, and for two years it produced the same decision every time a new need came up.

So there is the inventory. A test cluster switched off almost all the time, two Raspberry Pi boards hosting applications and an ISP box acting as a DNS server. It works, and it cannot carry anything more.

That is where the work starts. I need a base that stays on and stays frugal, a DNS and a reverse proxy that belong to me, verified backups, monitoring, somewhere to keep secrets… and a Nutanix cluster that goes back to what it is good at: breaking things. That is what I will be writing about in the articles to come.

Read More
Finding an unreachable IPMI over IPv6 link-local

This weekend I set out to move the IPMI of my lab Nutanix node onto my management segment. I changed the card’s address and the switch port’s VLAN profile within the same minute. The node had just been wiped, it had no operating system left, so there was no way to fix anything from the inside, and the card vanished from the network.

What gave me back the controls came down to an IPv6 link-local address and two commands, a quarter of an hour all told. Here is the method, on Windows 11 and on Rocky Linux.

The evening my IPMI vanished from the network

Two changes in the same minute left me no way of telling which one had broken what. I plugged a laptop straight into the dedicated IPMI port of this Supermicro SYS-5019D-4C-FN8TP to get back in.

On a running node, ipmitool locally settles that kind of blunder in a single command through the KCS interface, without going anywhere near the network, but a freshly wiped server closes that door. If you are in the opposite situation, with the card reachable and the password lost, I covered that case here: lost IPMI password on a Nutanix or Supermicro node.

Why link-local answers when IPv4 stays silent

Every active IPv6 interface carries an address starting with fe80::, which it builds on its own from its MAC and without DHCP. A machine whose IPv4 is wrong or missing therefore keeps a reachable identity on its segment. The ff02::1 address is the all-nodes multicast group: a ping to that group makes everything living at the end of the cable answer, and an IPMI powered in standby answers even with the server switched off. Multicast does not cross a router, so you do have to sit on the same segment as the card.

One detail settles the case for this method, which I only saw later while reading back my card’s configuration on firmware 01.74.13: the line “ARP Responses Enabled, Gratuitous ARP Disabled”. The IPMI never announces itself on the network, so listening passively on the segment gets you nowhere.

Finding the card on the cable

The principle is the same on both systems: identify the interface, send the multicast, read the neighbour cache.

On Windows 11

  • Spotting the adapter and its index:
Get-NetAdapter

The ifIndex column gives you the number to reuse afterwards, index 3 in my case.

On a direct link there is no DHCP server at all, and an interface left on automatic falls back to APIPA on 169.254.x.x, in which case nothing will ever ping, even against an IPMI in perfect health. Set a static address:

New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.10.50 -PrefixLength 24
  • Sending the multicast, with the interface index as the zone suffix:
ping -6 ff02::1%3
  • Reading the discovered neighbours, with their MAC address:
Get-NetNeighbor -InterfaceIndex 3

On Rocky Linux

  • Identifying the interface:
ip link show
  • Sending the multicast:
ping6 -c4 ff02::1%ens0
  • Command output:
PING ff02::1%ens0(ff02::1%ens0) 56 data bytes
64 bytes from fe80:0:0:0:225:90ff:feb8:f313%ens0: icmp_seq=1 ttl=64 time=0.659 ms
64 bytes from fe80:0:0:0:225:90ff:feb8:f313%ens0: icmp_seq=2 ttl=64 time=0.288 ms
  • Matching the addresses to their MAC:
ip -6 neigh show dev ens0

One subtlety costs time when you move from one system to the other: the zone suffix takes an interface name on Linux and a numeric index on Windows, and an address copied from one console to the other fails without any explicit message.

Reading the vendor straight from the address

When a link-local address carries ff:fe in the middle, it derives from the MAC through the EUI-64 method, and the operation reverses in your head. Drop the two ff:fe bytes from the middle of fe80::225:90ff:feb8:f313, you are left with 02:25:90:b8:f3:13, then flip the second bit of the first byte: 02 becomes 00, which is a Super Micro Computer OUI.

Opening the web interface over link-local

The address you have recovered goes straight into a browser, in square brackets and followed by its zone suffix:

https://[fe80::225:90ff:feb8:f313%3]

The suffix is mandatory, a link-local address being unique only on a given segment. If your browser refuses that format, curl will at least confirm the service answers, with the % escaped as %25 and the -g option, without which the brackets are treated as globbing:

curl -k -g "https://[fe80::225:90ff:feb8:f313%25ens0]/"

What the IPMI told me

Once the interface was open, the answer came down to one line on its network page: the card was carrying 192.168.10.11, when I thought I had configured 192.168.10.1. The port’s VLAN profile had nothing to do with it, and the address I had typed belongs to the machine hosting my DNS. Reconfigured on the right address, and it was back.

My management cards now live in a reserved range at the bottom of the segment, with a matching DHCP exclusion, the lab node on .1 and the production node on .2. And I have stuck to a simple rule since: one change at a time, checked before the next one.

Read More
Nutanix Community Edition reinstallation issue

Reinstalling a Nutanix Community Edition node on hardware that already hosted an AHV. The Phoenix installer boots, detects the hardware, then halts on a Python traceback:

FATAL An exception was raised: Traceback (most recent call last):
  File "/root/phoenix/./phoenix", line 155, in <module>
    main()
  ...
  File "/root/phoenix/sysUtil.py", line 2086, in mount_ahv_lvm_volumes
    shell_cmd(['mount', '-t ext4', dev, target + mntpnt])
Exception: Failed command: [mount -t ext4 /dev/mapper/ahv-varlog /mnt/stage/var/log]
with error: [mount: /mnt/stage/var/log: special device /dev/mapper/ahv-varlog does not exist.]

The message seems perfectly accurate, and that is what makes it misleading: the device does not exist. The real question is why Phoenix is looking for it.

Understanding Why the Nutanix Installer Crashes

The call stack tells the whole story, provided you read it from bottom to top:

get_params → determine_actions → get_hyp_state
get_hyp_state → customize_kvm.get_state → __mount_kvm_partition → mount_ahv_lvm_volumes

Phoenix does not crash during the installation. It crashes beforehand, during the detection phase, when it tries to determine which actions to offer. It found an existing hypervisor on the disk, so it switched to its customize path (the one that updates an AHV in place rather than installing a fresh one), and this path requires mounting the volumes of the existing installation.

The preceding log lines confirm this reasoning:

INFO Calling dmsetup remove /dev/mapper/ahvstorage-varlogaudit
INFO Calling dmsetup remove /dev/mapper/ahvstorage-varlog
INFO LVM volume group ahv detected
INFO Found block device entry /dev/mapper/ahv-root, calling vgchange -an ahv

Two distinct volume groups appear: ahv and ahvstorage. An lvs command from the rescue shell confirms the layout:

LVVGSize
homeahv200 MB
rootahv6.84 GB
tmpahv1.95 GB
varahv2.93 GB
varlogahvstorage39.06 GB
varlogauditahvstorage1000 MB

There is the discrepancy. On the disk, varlog lives in the ahvstorage VG. The Phoenix ISO, however, is looking for /dev/mapper/ahv-varlog, meaning varlog inside the ahv VG. It is applying an LVM schema that does not match what is present on the machine.

The most likely explanation is a generational gap: the AHV layout evolved toward a separate storage VG, and the media used for the reinstallation expects the older layout. As a result, Phoenix recognizes the existing installation well enough to want to reuse it, but not well enough to know how to mount it.

The Solution: Wiping the System Disk Clean

Since the blockage stems entirely from the detection of a pre-existing installation, the solution is to ensure there is nothing left to detect.

Phoenix leaves a root shell accessible after the failure. We start by mapping the layout before destroying it:

lsblk
pvs
vgs
lvs

In my case, there were two PVs on a single disk: /dev/sda3 for ahv, and /dev/sda5 for ahvstorage.

Next, we deactivate and remove the VGs:

vgchange -an ahvstorage
vgremove -f ahvstorage

ahvstorage disappears without resistance. ahv, however, is stubborn:

Logical volume ahv/root contains a filesystem in use.
Can't deactivate volume group "ahv" with 2 open logical volume(s)

The Second Problem: Volumes Left Mounted

This message is the real turning point of the procedure, and the lvs output provides the key:

root  ahv  -wi-ao----
var   ahv  -wi-ao----

The o attribute means open. These two logical volumes are mounted. They are the “2 open logical volume(s)” from the error message, and this is what subsequently causes the whole chain to fail:

pvremove -ff -y /dev/sda3
  Can't open /dev/sda3 exclusively. Mounted filesystem?
  Cannot use /dev/sda3: device has a signature

wipefs -a /dev/sda
  wipefs: error: /dev/sda: probing initialization failed: Device or resource busy

The cause is simple: Phoenix had mounted root and var under /mnt/stage before crashing on varlog, and it unmounted nothing upon exiting. The failure left the disk in an intermediate state.

Therefore, unmounting must be done before anything else:

findmnt -R /mnt/stage
umount -R /mnt/stage

If a process is still holding the partition:

fuser -vm /mnt/stage
fuser -km /mnt/stage

Verify that the LVs are properly closed; the attribute should be -wi-a-----, without the o:

lvs

And only then, proceed with the complete wipe:

vgchange -an ahv
vgremove -f ahv
pvremove -ff -y /dev/sda3
wipefs -a /dev/sda
sgdisk --zap-all /dev/sda
dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fsync

The sgdisk --zap-all is not decorative. A GPT table has a backup copy at the end of the disk, which the dd on the first 100 megabytes leaves perfectly intact. This is why volume groups often “come back” after a wipe you thought was complete.

If the CVM data disks also hold remnants, apply the same treatment to them: run wipefs -a then sgdisk --zap-all on each.

Reboot, restart the installer, and Phoenix will no longer detect anything: it will offer a fresh installation.

My Takeaways from this Reinstallation

An accurate error message can point to the wrong problem:

“ahv-varlog does not exist” is literally true and completely beside the point. The problem is not the missing volume; it is that the installer is applying a schema that doesn’t match the disk. Without reading the call stack, you set out looking for a missing volume instead of realizing you are in the wrong branch of the program.

An installer failure leaves state behind:

Phoenix crashed after mounting two volumes, and these mounts survived its termination. All the subsequent sequence failures (pvremove, wipefs) stemmed directly from this. Before fighting against a “Device or resource busy” error, you must find out what is holding the device.

An explicitly destructible cluster changes the nature of the problem:

This procedure is brutal: it wipes everything. It is only acceptable because this node belongs to an environment designated as disposable, on which no irreplaceable data depends. Deciding in advance which cluster is disposable does not change the failure itself, but it completely changes the amount of time spent solving it.

Read More
Recovering a lost IPMI password on a Nutanix or Supermicro node

A little misadventure happened to me recently. After changing the IPMI password on my 1-node, I couldn’t log back into my node’s management interface. Forgot it instantly? Typo? Botched copy-paste? Whatever the reason, the access lockout was very real.

Losing your IPMI password (or BMC) is enough to make anyone break a sweat. But rest assured, experience has taught me a golden rule: as long as you still have access to the host operating system (whether it’s AHV, a standard Linux, or even ESXi), you can regain control without needing to perform a hardware reset.

However, the situation can be more critical than it seems. For the experts reading this, you know that in a Nutanix Single-Node environment, IPMI isn’t just an administrative convenience: it’s your one and only fail-safe. Without it, you can’t mount a Phoenix ISO via Remote Media during a major AOS crash or force a reboot. Losing BMC access on such a node quickly becomes a critical bottleneck for your production and remote console access.

In this guide, I’ll share the different methods to regain control of your node in a matter of minutes, from the gentlest approach to the last resort.

Method 1: In-band Reset via ipmitool

If you are running Nutanix AHV or a classic Linux distribution, you’re in luck: the ipmitool utility is usually available natively. The trick here relies on the KCS (Keyboard Controller Style) hardware channel. Simply put, this allows the host OS to communicate directly with the BMC chip via the motherboard bus (LPC/PCIe), entirely bypassing the management network.

Identify and Overwrite the Admin Account

Log in as root on your host. As a precaution, first ensure that the kernel modules managing IPMI are loaded:

modprobe ipmi_si
modprobe ipmi_devintf

Next, we’ll list the configured users (usually on channel 1) to spot the ID of our administrator account. In 99% of cases, the default account (ADMIN) corresponds to ID 2.

ipmitool user list 1

In my case, the ID is indeed 2:

ipmitool user list 1 output with the ADMIN account on ID 2

Once the ID is confirmed, the command to force a new password is child’s play:

ipmitool user set password 2 'MyNewPwd123!'

When entering the previous command, the terminal might throw a nasty Invalid data field in request error.

Don’t panic; it’s simply the security policy parser of some firmwares rejecting your request. Not only does it require a minimum complexity (8 characters, uppercase, lowercase, number), but it can also be picky about the request format.

To bypass (or rather, satisfy) this mechanism, force the encoding length to 20 bytes by simply appending 20 to the end of your command:

ipmitool user set password 2 'MyNewPwd123!' 20

Your password has now been overwritten. You can test the connection to the web interface.

Method 2: The IPMICFG Utility (The Solution for VMware ESXi)

If you are running VMware ESXi, the first method might leave you stranded. Why? Because ipmitool is not packaged natively, and resolving dependencies to compile it on a hypervisor is a waste of time that I wouldn’t recommend.

The workaround is called IPMICFG. This is the official tool provided by Supermicro (downloadable from their portal with a free account). Its massive advantage is that it comes as static binaries, ready to use for Linux, Windows, and crucially, ESXi.

Once the archive is transferred to your host and extracted, using it is very straightforward:

./IPMICFG-Linux.x86_64 -user list
./IPMICFG-Linux.x86_64 -user setpwd 2 MyNewPwd123!

Note: Adapt the binary name if you are using the Windows or ESXi version.

You can download the utility here: https://www.supermicro.com/wdl/utility/IPMICFG/

Extreme Case: The Node No Longer Has a Bootable OS

What if the OS won’t boot at all? This is usually where the sweating starts, thinking that without network access to the IPMI or a functional OS, the only remaining option is a factory reset.

Remember: the KCS interface is exposed at the hardware level as soon as the BIOS POST completes. It is completely independent of your storage’s state.

All you have to do is boot the server from a USB stick containing a Linux Live CD (Ubuntu, Rocky Linux). Once on the live desktop, open a terminal, install the utility if it isn’t already there (e.g., apt install ipmitool), and run the exact same commands from Method 1.

Last Resort Method: The BMC Factory Reset

If for some obscure reason the previous methods fail, there is one ultimate resort left: resetting to factory settings.

With the Supermicro tool, the command is direct:

./IPMICFG-Linux.x86_64 -fd

And if you prefer the pure ipmitool method, you need to send a RAW command:

ipmitool raw 0x3c 0x40

⚠️ Warning, the consequences are heavy: Your entire BMC configuration is wiped clean. You will lose the static IP (the port reverts to DHCP), VLAN configurations, and user accounts. The BMC will then reboot (expect a good 2 to 3 minutes). Pay close attention to recent generations of servers: the password may not revert back to ADMIN/ADMIN. It defaults to the unique password printed on the OCP label (often stuck on the chassis or motherboard). Keep this in mind if your server is physically located on the other side of the world!

My Recommendations

Once access is recovered via method 1 or 2, here is what I systematically do to cover my back:

  1. The Password Manager: It’s basic, but save your creds immediately instead of keeping them in your copy-paste clipboard.
  2. The Backup Account: Create a second administrator account.
  3. The Slot ID Trick: Do not put your backup account on Slot ID 3. Force its creation on a higher Slot (like 5 or 6). Why? Because some infrastructure automation scripts have the annoying tendency to forcefully overwrite or modify the early Slots (2 and 3) during provisioning. By placing it further down, you safeguard it.

What about you? Have you ever locked yourself out of one of your nodes? Share your worst nightmare in the comments below!

Read More
VM Startup Policies on Nutanix AHV

A few years ago, following a power outage at one of our two sites, I had to deal with some application issues after the Nutanix cluster restarted. On paper, everything should have gone smoothly: the UPS had taken over, causing no impact on production, but that was without counting on a mishandling by the technician who turned off the UPS. The cluster shut down abruptly.

Once the power returned, the cluster restarted automatically, and all the VMs restarted shortly after. The problem was that some database servers took their time… Too much time for certain business applications…

It’s exactly to save you from these late-night cold sweats that we are going to explore VM Startup Policies on Nutanix AHV today.

While the concept of sequencing the startup of your servers might seem simple, the underlying mechanics are worth a closer look.

What are “VM Startup Policies”?

VM Startup Policies are a native feature of the AHV hypervisor that acts as a scheduler when powering on your virtual machines. This feature was added with version 7.5, which I talked about a while ago on the blog.

VM Startup Policies welcome screen in Prism Central

Instead of suffering the startup order and leaving control to the cluster, you define precise groups of VMs and strict dependency rules. This way, you guarantee that your infrastructure services (like an Active Directory, for example) and your databases are fully operational before allowing the application servers to start.

To fully understand the importance of these rules, a quick reminder of Acropolis HA’s default behavior is necessary. In the absence of a Startup Policy, during a node crash or a cluster restart, the restart of VMs is done in best-effort mode. The Prism Element cluster focuses on rapid resource allocation (CPU/RAM) and triggers the power-on of VMs completely asynchronously and concurrently, and natively has no awareness of your application dependencies.

When do these rules really activate?

It is important to clarify that these strategies do not apply if you decide to restart a VM manually from the Prism Central interface in the middle of the day.

AHV orchestration wakes up and applies your Startup Policies in two critical scenarios:

  1. A High Availability (HA) event: One or more physical nodes in your cluster fail. The AHV hypervisor will migrate and restart the affected VMs on the surviving nodes, strictly respecting the order you defined.
  2. A Full Cluster Restart: Exactly the case of my anecdote! Following a total power outage, for example.

Decrypting the Mechanics: The 3 Fundamental Pillars

Nutanix’s approach has the merit of being extremely visual and very easy to grasp from Prism Central. It relies on three fundamental concepts.

1. Categories

Nutanix’s mechanics rely exclusively on Prism Central Categories. You don’t link “SQL-Server-01” to “Web-Server-01”, but you link the AppMetier:Database category, for example, to the VMs hosting databases and your application VMs to the AppMetier:Applicatif category.

This is where the true power of this architecture lies. If tomorrow you deploy three new application servers in scale-out to handle an unexpected load, you just need to assign them the right category. They will automatically be integrated into the correct order of your Startup Policy without you having to open or modify a single rule.

2. Dependency Levels

This is how you draw your logical chain: category B can only start if category A has finished. There is still a small subtlety to keep in mind: Nutanix allows a maximum of 6 consecutive dependency levels per policy. In 99% of cases, this is more than enough for a classic application (e.g., Infra > DB > Web), but it requires grouping your services well without micromanagement.

Cannot add more than six groups to a policy message

3. Start Conditions

That’s the million-dollar question: how does the AHV hypervisor know that the database is really ready to authorize the next step? The tool offers you 2 options:

  • VM Power On: As soon as the VM is powered on at the hardware level, the next step is launched. The Windows or Linux OS is not even loaded yet. To be avoided for strong dependencies.
  • Guest Boot up: The best of the best! Nutanix waits patiently for the OS to be fully loaded and the network layer to respond.

For the “Guest Boot up” condition to work, the Nutanix Guest Tools (NGT) must absolutely be installed and up to date on the VM. My advice (and the vendor’s recommendation): do not skip the NGT deployment!

There is also an option that complements either one:

  • Delay (in seconds): We “blindly” wait a given time (e.g., 60 seconds) before moving on.

Tutorial: Creating a Startup Policy

Let’s model the most common example: we want to start our domain controllers, wait for them to be ready, start our databases, and finally our application servers.

For this occasion, I created 3 categories: AppType:ActiveDirectory, AppMetier:Database, and finally AppMetier:Applicatif

  1. Log in to Prism Central.
  2. Go to the Infrastructure > Compute > VMs > Policies > VM Startup Policies menu.
  3. Click on Create VM Startup Policy.
  4. Give it an explicit name (e.g., Policy-Tiering-Metier).
  5. In the visual interface, add your first category (e.g., AppType:ActiveDirectory).
  6. Add a second block for AppMetier:Database and a third for AppMetier:Applicatif.
  7. Click on + Configure Start Conditions to define the startup conditions. Choose Guest Boot up and optionally add a 30-second safety delay to allow the internal OS services time to initialize properly.

Click on “Create”, and you’re done!

Creating a VM Startup Policy with three dependency groups

All that’s left is to add your VMs to the right categories.

Pitfalls to Avoid

The tool is great, but here is some field feedback to help you avoid falling into certain traps:

1. Manage the 6-Level Limit Intelligently

Don’t fall into the micromanagement trap! If you try to make a policy for every micro-application, you will quickly saturate the interface, reach the famous 6-level limit, and end up with a convoluted system that’s impossible to maintain over time. Group your resources intelligently and keep it simple!

2. Beware of the Interaction with DR Mechanisms

Startup Policies manage the local resilience of a cluster (HA or reboot). But beware, if you use Nutanix Disaster Recovery to failover to a remote site, this system has its own recovery plan mechanism. During an inter-site failover, it’s the Prism Central Recovery Plan that takes control of the startup order, and no longer your local Startup Policy. Therefore, ensure logical consistency between the two tools.

3. This Only Applies to Guest VMs

There is no need to try sequencing “Nutanix” VMs (Prism Central, CVM, or others…), it will not work. The mechanism is only applicable to your virtual machines, not system ones.

Conclusion

VM Startup Policies on Nutanix AHV are the kind of feature you configure once, forget about, and which can save precious time and provide peace of mind the day the unthinkable happens. Thanks to an intuitive visual interface based on categories, Nutanix has made application resilience accessible to everyone.

If you haven’t already done so, I strongly encourage you to check the status of your NGT (deployment status and versions) and categorize your most critical VMs today. Your future “you,” woken up at 3 AM during the next production incident, will thank you!

Read More
OpenClaw prerequisites on Nutanix AHV

In a previous article, we saw how to deploy OpenClaw on Nutanix AHV. However, before you can fully enjoy this autonomous AI agent, it is crucial to prepare the ground. OpenClaw is not just a simple script: it’s an ecosystem that relies on several technological building blocks to “think” (local LLM), “execute” (Node.js) and “search” (SearXNG).

OpenClaw prerequisites diagram: Ollama, SearXNG, Docker, Homebrew and GPU

In this article, we are going to detail the step-by-step installation of all the necessary prerequisites on your virtual machine (running Ubuntu), explaining for each one why it is essential for OpenClaw to work properly.

1. NVIDIA Drivers: Unleashing GPU Power

OpenClaw can rely on large language models (LLMs) running locally. While it is technically possible to run these models on a processor (CPU), performance would be extremely slow. Installing NVIDIA drivers allows the system to leverage the graphics card (GPU) allocated to your VM via Nutanix AHV (vGPU or Passthrough), thereby ensuring fast and smooth AI inference.

Here is how to update your system and install the appropriate drivers:

# System update
sudo apt update && sudo apt upgrade -y

# NVIDIA server driver installation
sudo apt install nvidia-driver-535-server -y

# Reboot required to take effect
sudo reboot

After the reboot, check that your GPU is correctly recognized with the following command:

nvidia-smi

2. Node.js (v24): OpenClaw’s Execution Engine

The core logic of OpenClaw is developed in JavaScript/TypeScript. Node.js is the execution environment that allows running the agent’s code, managing its dependencies, and orchestrating calls between the interface, the AI model, and the various tools. We are targeting version 24.x here to ensure optimal compatibility.

# Adding the NodeSource repository and installing
curl -fsSL [https://deb.nodesource.com/setup_24.x](https://deb.nodesource.com/setup_24.x) | sudo -E bash -
sudo apt install -y nodejs

# Verifying the installed version
node --version  # should display v24.x

3. Ollama & Qwen 2.5: The Local Brain of the Operation

Ollama is the tool that will allow us to easily download and run our AI model locally. For OpenClaw, we are going to use the Qwen2.5 (7B) model. Why this choice? It’s a lightweight model (suitable for GPUs with about 8 GB of VRAM) and, above all, it is excellent at “Tool Calling”. It is this capability that allows OpenClaw to understand that it needs to execute a web search or run a script rather than simply generating text.

# Installing Ollama
curl -fsSL [https://ollama.ai/install.sh](https://ollama.ai/install.sh) | sh

# Start the Ollama service (in the background)
ollama serve &

# In another terminal, verify that Ollama detects the GPU:
nvidia-smi  # You should see ollama in the list of GPU processes

# Pull (download) the recommended model
ollama pull qwen2.5:7b

# Test the model and verify its execution on the GPU
ollama run qwen2.5:7b "say hello"

# While the model is generating a response, check VRAM usage
nvidia-smi

4. Docker: The Containerization Infrastructure

In order to extend OpenClaw’s capabilities (especially for web search which we will see next), we need third-party services. Docker allows these services to be deployed in an isolated, standardized, and fast manner, without polluting our host system with multiple complex dependencies.

# Installing initial dependencies
sudo apt update
sudo apt install -y ca-certificates curl gnupg

# Adding Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Configuring the Docker repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installing Docker packages
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Adding your user to the docker group to avoid using 'sudo' every time
sudo usermod -aG docker $USER
newgrp docker

# Verifying the installation
docker --version

5. SearXNG: Giving AI Access to the Web

For OpenClaw to be a truly performant search agent, it cannot rely solely on the data contained in the Qwen model (which stops at its training date). SearXNG is a privacy-respecting metasearch engine. By installing it via Docker, we provide OpenClaw with an API (on port 8080) that it can use to retrieve real-time information from the web and source its answers.

# Create a dedicated directory for configuration
mkdir -p ~/searxng && cd ~/searxng

# Run the SearXNG container
docker run -d \
  --name searxng \
  --restart unless-stopped \
  -p 8080:8080 \
  searxng/searxng

# Verify that the container is running correctly
docker ps

# Test that the SearXNG API is responding
curl http://localhost:8080

6. Homebrew & GCC: The Compilation Tools

The OpenClaw Node.js ecosystem sometimes relies on low-level libraries or native packages that need to be compiled directly on your machine during installation. Homebrew (the well-known package manager on macOS, also very handy on Linux) and the GCC compiler are essential to avoid errors during the final dependency installation phase (the famous npm install).

# Install the base Ubuntu compilation package
sudo apt-get install build-essential

# Install Homebrew
/bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))"

# The end-of-installation instructions for Homebrew will ask you
# to add Homebrew to your PATH. Generally, it looks like this:
# (Make sure to adapt the path if necessary)
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/$USER/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

# Install GCC via Homebrew
brew install gcc

Conclusion

Your virtual machine on Nutanix AHV is now a rich and complete environment, equipped with high-performance GPU drivers, an execution engine (Node.js), an LLM ready to answer (Ollama), web access (SearXNG), and the right compilation tools.

The groundwork is perfectly laid. All that’s left is for you to finalize the installation of the application itself by following the rest of our guide on OpenClaw.

Read More
header nutanix

A few months ago, I wrote an article about installing NGTs via the command line on Linux.

Having recently switched to Rocky Linux 10 for my lab VMs, I’ve run into a problem: the procedure I’ve been using doesn’t work!

NGT installation command output on Rocky Linux 10

Here’s how to work around the problem…

Installing Nutanix Guest Tools

Connect to your Nutanix cluster on Prism Central, go to the list of virtual machines, right-click on the virtual machine where you want to install NGT, and click “Install NGT”:

Install NGT menu in Prism Central

On the next screen, in my case there’s no need to change anything, click on “Confirm and Enter Password”:

NGT installation options

Do not touch anything on this screen, simply click on “Skip and Mount” in the bottom left corner:

Skip and Mount button in the NGT installation

The ISO is mounted; now we move on to the command lines!

Installing Nutanix Guest Tools

Here are the commands to run on the virtual machine to install Nutanix Guest Tools:

  • System update:
sudo dnf update -y && sudo dnf upgrade -y
  • Install Python (if not already installed):
sudo dnf install python3
  • Verify drive letter ID:
blkid -L NUTANIX_TOOLS
  • Command output:
/dev/sr0
  • Mount the ISO:
sudo mount /dev/sr0 /mnt
  • Enter root mode:
sudo su
  • Install NGTs:
dnf install /mnt/installer/linux/ngt_rpm_installer/ngt_repo/nutanix-guest-agent-4.5.1-1.x86_64.rpm
Installing the NGT package with dnf

  • Checking the installation via command line:
yum list installed | grep 'nutanix-guest-agent'
nutanix-guest-agent 4.5.1 package installed

On Prism Central side :

Rocky Linux 10.1 VMs in Prism Central
Read More