{"id":452,"date":"2024-07-17T09:20:16","date_gmt":"2024-07-17T07:20:16","guid":{"rendered":"https:\/\/binaryvikings.io\/?p=452"},"modified":"2025-02-24T14:40:38","modified_gmt":"2025-02-24T12:40:38","slug":"nutanix-installer-timeout-retrying-at-2402-2430","status":"publish","type":"post","link":"https:\/\/binaryvikings.io\/?p=452","title":{"rendered":"Nutanix &#8211; Installer timeout, retrying at [2402\/2430]"},"content":{"rendered":"\n<p>I had several incidents, attempting various installation media when installing Nutanix CE2. Both installing to USB and directly to SSD got timeouts and did not work as expected.<\/p>\n\n\n\n<p>The assumption of this blog is that you&#8217;re installing from a USB. Other install media could pose different issues, but was not tested.<\/p>\n\n\n\n<p>If you want the TL;DR versions, go to <strong>Solution with USB<\/strong> or <strong>Solution with SSD<\/strong> whichever fits your need.<\/p>\n\n\n<div class=\"wp-block-table-of-contents-block-table-of-contents-block\"><div class=\"eb-parent-wrapper eb-parent-eb-toc-0t4jy \"><div class=\"eb-toc-container eb-toc-0t4jy  eb-toc-is-not-sticky eb-toc-not-collapsible eb-toc-initially-not-collapsed eb-toc-scrollToTop style-2 list-style-none\" data-scroll-top=\"false\" data-scroll-top-icon=\"fas fa-angle-up\" data-collapsible=\"false\" data-sticky-hide-mobile=\"false\" data-sticky=\"false\" data-scroll-target=\"scroll_to_toc\" data-copy-link=\"false\" data-editor-type=\"\" data-hide-desktop=\"false\" data-hide-tab=\"false\" data-hide-mobile=\"false\" data-itemCollapsed=\"false\"><div class=\"eb-toc-header\"><div class=\"eb-toc-title\">Table of Contents<\/div><\/div><div class=\"eb-toc-wrapper \" data-headers=\"[{&quot;level&quot;:2,&quot;content&quot;:&quot;1. Installation to USB&quot;,&quot;text&quot;:&quot;1. Installation to USB&quot;,&quot;link&quot;:&quot;1-installation-to-usb&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;1.1 Solution with USB&quot;,&quot;text&quot;:&quot;1.1 Solution with USB&quot;,&quot;link&quot;:&quot;11-solution-with-usb&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;1.1.1 Caveats with USB&quot;,&quot;text&quot;:&quot;1.1.1 Caveats with USB&quot;,&quot;link&quot;:&quot;111-caveats-with-usb&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;2. Installation to SSD&quot;,&quot;text&quot;:&quot;2. Installation to SSD&quot;,&quot;link&quot;:&quot;2-installation-to-ssd&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.1 Some observations &quot;,&quot;text&quot;:&quot;2.1 Some observations &quot;,&quot;link&quot;:&quot;21-some-observations&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;2.1.1 Why do we even retry?&quot;,&quot;text&quot;:&quot;2.1.1 Why do we even retry?&quot;,&quot;link&quot;:&quot;211-why-do-we-even-retry&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.2 Solution with SSD&quot;,&quot;text&quot;:&quot;2.2 Solution with SSD&quot;,&quot;link&quot;:&quot;22-solution-with-ssd&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;2.2.1 How to run the script&quot;,&quot;text&quot;:&quot;2.2.1 How to run the script&quot;,&quot;link&quot;:&quot;221-how-to-run-the-script&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;3. References&quot;,&quot;text&quot;:&quot;3. References&quot;,&quot;link&quot;:&quot;3-references&quot;}]\" data-visible=\"[true,true,true,true,true,true]\" data-delete-headers=\"[{&quot;label&quot;:&quot;1. Installation to USB&quot;,&quot;value&quot;:&quot;1-installation-to-usb&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.1 Solution with USB&quot;,&quot;value&quot;:&quot;11-solution-with-usb&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.1.1 Caveats with USB&quot;,&quot;value&quot;:&quot;111-caveats-with-usb&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2. Installation to SSD&quot;,&quot;value&quot;:&quot;2-installation-to-ssd&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.1 Some observations &quot;,&quot;value&quot;:&quot;21-some-observations&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.1.1 Why do we even retry?&quot;,&quot;value&quot;:&quot;211-why-do-we-even-retry&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.2 Solution with SSD&quot;,&quot;value&quot;:&quot;22-solution-with-ssd&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.2.1 How to run the script&quot;,&quot;value&quot;:&quot;221-how-to-run-the-script&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3. References&quot;,&quot;value&quot;:&quot;3-references&quot;,&quot;isDelete&quot;:false}]\" data-smooth=\"true\" data-top-offset=\"\"><div class=\"eb-toc__list-wrap\"><ul class='eb-toc__list'><li><a href=\"#1-installation-to-usb\">1. Installation to USB<\/a><ul class='eb-toc__list'><li><a href=\"#11-solution-with-usb\">1.1 Solution with USB<\/a><ul class='eb-toc__list'><li><a href=\"#111-caveats-with-usb\">1.1.1 Caveats with USB<\/a><\/li><\/ul><\/li><\/ul><li><a href=\"#2-installation-to-ssd\">2. Installation to SSD<\/a><ul class='eb-toc__list'><li><a href=\"#21-some-observations\">2.1 Some observations <\/a><ul class='eb-toc__list'><li><a href=\"#211-why-do-we-even-retry\">2.1.1 Why do we even retry?<\/a><\/li><\/ul><li><a href=\"#22-solution-with-ssd\">2.2 Solution with SSD<\/a><ul class='eb-toc__list'><li><a href=\"#221-how-to-run-the-script\">2.2.1 How to run the script<\/a><\/li><\/ul><\/li><\/ul><li><a href=\"#3-references\">3. References<\/a><\/ul><\/div><\/div><\/div><\/div><\/div>\n\n\n<h2 class=\"wp-block-heading\">1. Installation to USB<\/h2>\n\n\n\n<p>It is no longer recommended to install the Nutanix AHV to a USB, while I could not find any official documentation of this, this is what Nutanix Employees are saying on Reddit and on their Discord (references will be linked at the bottom of the page).<\/p>\n\n\n\n<p>However, installing to USB also caused a timeout as it would appear to not be fast enough, regardless of USB 2.0 or 3.2. Maybe there is a driver &#8220;issue&#8221; that limits it to slow speeds regardless. Attempted Kingston USBs and SanDisk USBs, all timed out.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"167\" src=\"https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1-1024x167.png\" alt=\"\" class=\"wp-image-454\" srcset=\"https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1-1024x167.png 1024w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1-300x49.png 300w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1-768x126.png 768w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1.png 1125w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Nutanix Installation to USB timeout &#8211; current retry 0<\/figcaption><\/figure>\n\n\n\n<p>A Reddit user told me to wait it out, as it&#8217;s not a &#8220;retry&#8221; that restarts the installation, it will indeed continue the installation. I left it running and at around 500\/2430 in retry 1, my installation was successful, on USB.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Solution with USB<\/h3>\n\n\n\n<p>Do not terminate the installation after it has failed its retry, just let it run and eventually it will install.<\/p>\n\n\n\n<p>As an additional thing, if you can SSH to the machine or have possibility to access <strong><code>\/tmp\/installer_vm.log<\/code><\/strong>, do <code><strong>tail -f \/tmp\/installer_vm.log<\/strong><\/code> and follow the actual installation progress.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1.1.1 Caveats with USB<\/h4>\n\n\n\n<p>Worth mentioning, again, Nutanix Employees have stated that they no longer recommend USB. <\/p>\n\n\n\n<p>If this is your only option, please make sure you understand that AHV updates (through LCM) is not supported (though can sometimes be done with some hackery). <br>And you will face USB storage driver issues, which you can read about here: <a href=\"https:\/\/binaryvikings.io\/?p=423\" target=\"_blank\" rel=\"noreferrer noopener\">Nutanix \u2013 Updating CE2 from LCM, server not coming back up<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Installation to SSD<\/h2>\n\n\n\n<p>After having successfully installed on USB, I figured I wanted to retry installing AHV onto my SSD to avoid the caveats listed above.<\/p>\n\n\n\n<p>I started out having the installation run through the night and woke up to the screen below. &#8220;InstallerVM timeout occurred, current retry 4&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"656\" src=\"https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1024x656.png\" alt=\"\" class=\"wp-image-453\" style=\"width:840px;height:auto\" srcset=\"https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1024x656.png 1024w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-300x192.png 300w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-768x492.png 768w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image-1536x985.png 1536w, https:\/\/binaryvikings.io\/wp-content\/uploads\/2024\/07\/image.png 1850w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Nutanix Installation to SSD timeout &#8211; current retry 4<\/figcaption><\/figure>\n\n\n\n<p>This screenshot shows it reaching its final retry and still not finishing installation, the python &#8220;crash&#8221; is simply due to poor error handling, as there is no error messages if the installer reaches 4 retries without succeeding. I then thoroughly investigated the logs, to figure out what is going on. The log at <strong>\/tmp\/installer_vm.log<\/strong> clearly showed the installation being finished, having run post-installation scripts, however never showed <strong>me<\/strong> that it had finished and finally crashed on retries. <\/p>\n\n\n\n<p>Excerpt from the <strong>installer_vm.log <\/strong>file here:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>Installation\n\n 1) [x] Language settings                 2) [x] Time settings\n        (English (United States))                (UTC timezone)\n 3) [x] Installation source               4) [x] Software selection\n        (Local media)                            (Custom software selected)\n 5) [x] Installation Destination          6) [x] Network configuration\n        (Warning checking storage                (Wired (enp0s2) connected)\n        configuration)\n 7) [ ] User creation\n        (No user will be created)\n\nProgress\nSetting up the installation environment\n.\nCreating disklabel on \/dev\/sda\n.\nCreating efi on \/dev\/sda1\n.\nCreating ext4 on \/dev\/sda2\n.\nRunning pre-installation scripts\n.\nStarting package installation process\nPreparing transaction from installation source\nInstalling libgcc (1\/517)\n... ((Commented out due to too big file))\nInstalling nutanix-ahv-release (515\/517)\nInstalling grub2-efi-x64 (516\/517)\nInstalling dosfstools (517\/517)\nPerforming post-installation setup tasks\nInstalling boot loader\n.\nPerforming post-installation setup tasks\n.\n\nConfiguring installed system\n.\nWriting network configuration\n.\nCreating users\n.\nConfiguring addons\n.\nGenerating initramfs\n.\nRunning post-installation scripts<\/code><\/pre><\/div>\n\n\n\n<p>So, the progress we are presented is not the <strong><em>actual<\/em><\/strong> installation progress.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Some observations<strong> <\/strong><\/h3>\n\n\n\n<p>(As I&#8217;ve posted it on <a href=\"https:\/\/www.reddit.com\/r\/nutanix\/comments\/1drxkr5\/setting_up_nutanix_ce2_failing_24022430\/\" data-type=\"link\" data-id=\"https:\/\/www.reddit.com\/r\/nutanix\/comments\/1drxkr5\/setting_up_nutanix_ce2_failing_24022430\/\">Reddit<\/a>). The installer starts an &#8220;Installer VM&#8221;.. So&#8230;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The installation takes place from the InstallerVM (from which we were reading logs doing&nbsp;<strong>tail -f \/tmp\/installer_vm.log<\/strong>)<\/li>\n\n\n\n<li>The script runs a default 40 minutes, before retrying ((2400 seconds) + 30 seconds interval), [30\/2430], at a default of 4 retries.<\/li>\n\n\n\n<li>To determine if the installation is successful, the loop checks if the InstallerVM is still on, if it&#8217;s on, it&#8217;s not done and runs another 30 seconds. If it&#8217;s done it says &#8220;Hypervisor installation is done, brother, we golden&#8221;.<\/li>\n<\/ol>\n\n\n\n<p>I noticed from my logs that my installation was indeed finished, all packages were transferred, but it never shut down the InstallerVM, hence never successful. But it&nbsp;<em><strong>appears<\/strong><\/em>&nbsp;some part of either the timeout or retry terminology in the script is making the InstallerVM &#8220;stall&#8221; or at least not shut down upon finishing. Not saying that&#8217;s definitely what happens, and it only failed this way when installing to SSD directly &#8211; but an observation nonetheless.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2.1.1 <strong>Why do we even retry?<\/strong><\/h4>\n\n\n\n<p>According to comments in the installation script:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># ESXi has a ~5% chance to stuck at writing to disk in QEMU, retries are helpful to recover.<\/pre>\n\n\n\n<p>Having changed too much of the script to dig deeper into what actually happens, my assumption is that some part of the &#8220;unstuck&#8221; fix for ESXi users are messing with us occasionally. My logs however reported nothing.<\/p>\n\n\n\n<p>I wonder though &#8211; How many Nutanix users are using ESXi? So in total of all Nutanix users, whether esx, hyperv, kvm or xen &#8211; how many % of all users combined is it really that had an issue that was solved with this retry?<\/p>\n\n\n\n<p>Additionally &#8211; The progress of 30 second interval increment up to a hardcoded of 2400 seconds, to then see a &#8220;failed&#8221; message after which it will continue and finish installation, masqueraded in a &#8220;retry&#8221; sequence seems like .. a&#8230; curious solution. Not hating, merely questioning &#8211; I would have loved to see the installer_vm.log output instead of the 2400 seconds.<\/p>\n\n\n\n<p>Oh well, maybe next release will measure [5\/290 miles per hour] &#8212; Obviously kidding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Solution with SSD<\/h3>\n\n\n\n<p>Welcome back from my observations\/rant.<\/p>\n\n\n\n<p>At this point I had removed some of the retry code of the installation script, while leaving as much as possible in the script to not hit other obstacles. (Why the script may also look a bit messy).<\/p>\n\n\n\n<p>I have chosen to share my installation file as I&#8217;m seeing so many poor, frustrated souls on Reddit and Discord, facing same issues as I did, hopefully this post will find its way onto Google. Unfortunately I&#8217;m seeing people who I know, now know, the solution, but misguiding these poor souls on Reddit and Discord.<\/p>\n\n\n\n<p><strong>Link to GitHub script<\/strong>: <a href=\"https:\/\/github.com\/Oreax\/nutanixinstaller\/tree\/main\">https:\/\/github.com\/Oreax\/nutanixinstaller\/tree\/main<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2.2.1 How to run the script<\/h4>\n\n\n\n<p>The process is also written in the script itself, but for good measure I will post it here as well:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Once the installer GUI has popped up, press CTRL + C to exit the installer.<\/li>\n\n\n\n<li>Type in the following command (optional &#8211; but easier for step 3): <br><strong><code>service sshd start<\/code><\/strong><\/li>\n\n\n\n<li>Replace the following file with the contents of this file <code><strong>\/phoenix\/imaging_helper\/installer_vm.py<\/strong><\/code><\/li>\n\n\n\n<li>Relaunch the installer (from server screen) in <strong><code>\/root\/<\/code><\/strong> with: <code><strong>.\/ce_installer &amp;&amp; screen -r<\/strong><\/code><\/li>\n\n\n\n<li>(Optional, but highly recommended) Follow the installer progress in SSH terminal with: <code><strong>tail -f \/tmp\/installer_vm.log<\/strong><\/code><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3. References<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reddit (Nutanix): <a href=\"https:\/\/www.reddit.com\/r\/nutanix\/\">https:\/\/www.reddit.com\/r\/nutanix\/<\/a> <\/li>\n\n\n\n<li>Discord (Nutanix): <a href=\"https:\/\/discordapp.com\/invite\/XkSDNWZ\">https:\/\/discordapp.com\/invite\/XkSDNWZ<\/a><\/li>\n\n\n\n<li>Reddit post: <a href=\"https:\/\/www.reddit.com\/r\/nutanix\/comments\/1drxkr5\/setting_up_nutanix_ce2_failing_24022430\/\">https:\/\/www.reddit.com\/r\/nutanix\/comments\/1drxkr5\/setting_up_nutanix_ce2_failing_24022430\/<\/a><\/li>\n\n\n\n<li>GitHub script: <a href=\"https:\/\/github.com\/Oreax\/nutanixinstaller\/tree\/main\">https:\/\/github.com\/Oreax\/nutanixinstaller\/tree\/main<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>I hope this helps some of you out!<\/p>\n\n\n\n<p>Over&#8217;n&#8217;Out,<\/p>\n\n\n\n<p>me.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had several incidents, attempting various installation media when installing Nutanix CE2. Both installing to USB and directly to SSD got timeouts and did not<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[12,34],"tags":[],"class_list":["post-452","post","type-post","status-publish","format-standard","hentry","category-guides","category-nutanix"],"_links":{"self":[{"href":"https:\/\/binaryvikings.io\/index.php?rest_route=\/wp\/v2\/posts\/452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/binaryvikings.io\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/binaryvikings.io\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/binaryvikings.io\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/binaryvikings.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=452"}],"version-history":[{"count":5,"href":"https:\/\/binaryvikings.io\/index.php?rest_route=\/wp\/v2\/posts\/452\/revisions"}],"predecessor-version":[{"id":472,"href":"https:\/\/binaryvikings.io\/index.php?rest_route=\/wp\/v2\/posts\/452\/revisions\/472"}],"wp:attachment":[{"href":"https:\/\/binaryvikings.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/binaryvikings.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/binaryvikings.io\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}