ESXi 6 AHCI - hpaluch/hpaluch.github.io GitHub Wiki

ESXi 6 + AHCI Drivers

WARNING!

In my case I have problem - my ASMedia AHCI (Class: 0106, VID:DID 1b21:1164) is not listed on https://vibsdepot.v-front.de/wiki/index.php/Sata-xahci so it will be not detected. But you aye have more luck than me... (at least for driver 1.42).

My AHci controller is:

lspci -v | grep "Class 0106" -B 1

0000:03:00.0 SATA controller Mass storage controller:
	 Class 0106: 1b21:1164

This may help to build custom driver package:

Here is my step-by-step guide how to prepare necessary environment to create customized ESXi 6.0 ISO with AHCI driver using Andreas's Peetz ESXi-Customizer-PS script from v-front.de.

As discussed on several websites:

ESXi 5.5+ removed universal AHCI driver. Because I now use additional PCIe AHCI (from ASMedia) I need AHCI driver (I can still use sata_nv for onboard NVidia Ultra MCP55, but I want to make things simpler in future).

There is perfect guide and PowerShell script "ESXi Customizer" that will do it:

However for inexperienced VMware user (as I'm) I have found that it is not easy to install all necessary Dependencies. You need:

  • Proper Python Version (3.7.1+ recommended)
  • Proper Python Modules
  • install VI PowerShell modules

Installing Python

We have to follow:

I decided to use latest 3.7 series Python

Once Python is installed you have to:

  • Upgrade PIP to latest version:
    c:\python37\python.exe -m pip install --upgrade pip
    
  • Install python dependencies for VMware PowerShell modules (yes PowerShell will call Python)...
    c:\Python37\Scripts\pip.exe install six psutil lxml pyopenssl
    

Now python3.7 should be ready for Powershell modules

Installing PowerShell modules

Downloads these two files:

Run Powershell and enter these commands (you will likely need to Update some paths).

# see where PowerShell Expects modules
$env:PSModulePath
# here is target module Path I selected for installation:
[string]$Target = "$HOME\Documents\WindowsPowerShell\Modules"
mkdir $Target
Expand-Archive -Path ..\VMware-PowerCLI\VMware-PowerCLI-13.1.0-21624340.zip -DestinationPath $Target
Get-ChildItem -Path $Target -Recurse | Unblock-File
# May take long
Get-Module VMware* -ListAvailable
# May take long
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
Set-PowerCLIConfiguration -PythonPath c:\python37\python.exe -Scope User

Downloading all required files

Before running script (I strongly recommend run it in offline mode) you need:

  1. ESXi ZIP bundle (customized ISO will be created from it)

To download it do this:

  1. "backported" SATA AHCI Driver:

  2. Customized ISO creation script:

Running Customize PS script

Now we can follow great guide and script from

In my case ensure that you put sata-xahci-1.42-1-offline_bundle.zip (or other bundles) into subdirectory drivers.

Really important:

Close all your CMD and PowerShell windows and open fresh one directly from Explorer menu. You will save lot of problems with strange errors by doing this!

Here is example command I used to generate customized ISO:

.\ESXi-Customizer-PS-v2.6.0.ps1 -v60 -izip  ..\ESXi600-202002001.zip -pkgdir .\drivers

Log output should look like:

Running with PowerShell version 5.1 and VMware PowerCLI version 13.1.0.21606170

Adding base Offline bundle ..\ESXi600-202002001.zip ...
 [OK]

Getting Imageprofiles, please wait ...
 [OK]

Using Imageprofile ESXi-6.0.0-20200204001-standard ...
(dated 02/07/2020 11:37:43, AcceptanceLevel: PartnerSupported,
Updates ESXi 6.0 Image Profile-ESXi-6.0.0-20200203001-standard)

Loading Offline bundles and VIB files from .\drivers\ ...
   Loading C:\PUBLIC\Hypervisor\ESXi5or6-AHCI-Driver\Example\drivers\sata-xahci-1.42-1-offline_bundle.zip ...
 [OK]
      Add VIB sata-xahci 1.42-1
 [New AcceptanceLevel: CommunitySupported]
 [OK, added]

Exporting the Imageprofile to 'C:\PUBLIC\Hypervisor\ESXi5or6-AHCI-Driver\Example\ESXi-6.0.0-20200204001-standard-customized.iso'. Please be patient ...


All done.

And there should be created new ISO file:

ESXi-6.0.0-20200204001-standard-customized.iso

Tips

Directly Downloading Ubuntu Server ISO to datastore:

cd /vmfs/volumes/datastore1
mkdir INSTALL
cd INSTALL
esxcli network firewall ruleset set -e true -r httpClient
wget http://ftp.linux.cz/pub/linux/ubuntu-releases/22.04.3/ubuntu-22.04.3-live-server-amd64.iso

Export/Import of VM:

  • the only relibable way, in case of ESX 6.0, is ovftool. Please see Ovftool for details.

SSD on ESXi:

  • comprehensive article: https://www.v-front.de/2013/10/faq-using-ssds-with-esxi.html

  • however in case of my hardware (or software? - free licensse - so no vSphere) it does not support VAAI and so UNMAP:

    esxcli storage core device vaai status get -d t10.ATA_____KINGSTON_SA400S37480G___________________XXXXX____
    
    t10.ATA_____KINGSTON_SA400S37480G___________________XXXXX____
       VAAI Plugin Name: 
       ATS Status: unsupported
       Clone Status: unsupported
       Zero Status: unsupported
       Delete Status: unsupported
    
    esxcli storage filesystem list
    esxcli storage vmfs unmap -l datastore1
    
    Devices backing volume 6579681d-e7ec1e41-d3d1-605040302010 do not support UNMAP
    
    • in that case I don't care much (Kingston SA400 480G is crap anyway - it slows down access to old data to 20MB/s - see SSD.
  • example getting partitions - default ESXI 6.0U3 install:

    partedUtil getptbl /dev/disks/t10.ATA_____KINGSTON_SA400S37480G___XXXXX
    gpt
    58369 255 63 937703088
    1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
    5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
    6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
    7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
    8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
    9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
    2 7086080 15472639 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
    3 15472640 937703054 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
    
  • getting ESXi version:

    vmware -v
    
    VMware ESXi 6.0.0 build-15517548