microsoft/navcontainerhelper

The virtual machine could not be started because a required fe ature is not installed.

Opened this issue · 7 comments

Hi, im trying to create a new docker environment but get the error: "The virtual machine could not be started because a required feature is not installed". What am I doing wrong?

Scripts used to create container and cause the issue

$containerName = 'name'
$password = 'zzz'
$securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$credential = New-Object pscredential 'xxx', $securePassword
$auth = 'UserPassword'
$artifactUrl = Get-BcArtifactUrl -type 'OnPrem' -country 'se' -select 'Latest' -version '23.2'


New-BcContainer `
    -accept_eula `
    -containerName $containerName `
    -credential $credential `
    -auth $auth `
    -artifactUrl $artifactUrl `
    -updateHosts

Full output of scripts
$containerName = 'name'
$password = 'zzz'
$securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$credential = New-Object pscredential 'xxx', $securePassword
$auth = 'UserPassword'
$artifactUrl = Get-BcArtifactUrl -type 'OnPrem' -country 'se' -select 'Latest' -version '23.2'

New-BcContainer -accept_eula
-containerName $containerName -credential $credential
-auth $auth -artifactUrl $artifactUrl
-updateHosts
BcContainerHelper is version 6.0.15
BcContainerHelper is running as administrator
HyperV is Enabled
UsePsSession is True
UsePwshForBc24 is True
Host is Microsoft Windows 10 Business - 10.0.19045.4291
Docker Client Version is 26.0.0
Docker Server Version is 26.0.0
Removing Desktop shortcuts
Fetching all docker images
Fetching all docker volumes
Using image mcr.microsoft.com/businesscentral:ltsc2019
Creating Container name
Style: onprem
Multitenant: No
Version: 23.2.14098.14562
Platform: 23.0.14532.0
Generic Tag: 1.0.2.19
Container OS Version: 10.0.17763.5696 (ltsc2019)
Host OS Version: 10.0.19045.4291 (22H2)
Using hyperv isolation
Using locale sv-SE
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Files in C:\ProgramData\BcContainerHelper\Extensions\name\my:

  • AdditionalOutput.ps1
  • HelperFunctions.ps1
  • MainLoop.ps1
  • SetupVariables.ps1
  • updatehosts.ps1
    Creating container name from image mcr.microsoft.com/businesscentral:ltsc2019
    a06e5db6d5e0e1d5af0f8a27cfe9f3b8bc86b6e7db16e545b751652f3c0c8453
    New-BcContainer Telemetry Correlation Id: 124ac95a-2990-459a-8c69-cbc91b0626b5
    DockerDo : docker: Error response from daemon: hcs::CreateComputeSystem a06e5db6d5e0e1d5af0f8a27cfe9f3b
    8bc86b6e7db16e545b751652f3c0c8453: The virtual machine could not be started because a required feature
    is not installed.
    ExitCode: 125
    Commandline: docker run --volume "c:\bcartifacts.cache:c:\dl" --label nav= --env isBcSandbox=N --label
    version=23.2.14098.14562 --label platform=23.0.14532.0 --label country=se --env artifactUrl=https://bca
    rtifacts-exdbf9fwegejdqak.b02.azurefd.net/onprem/23.2.14098.14562/se --env licenseFile="" --name name -
    -hostname name --env auth=NavUserPassword --env username="xxx" --env ExitOnError=N --env locale=sv-SE -
    -env databaseServer="" --env databaseInstance="" --volume "C:\ProgramData\BcContainerHelper:C:\ProgramD
    ata\BcContainerHelper" --volume "C:\ProgramData\BcContainerHelper\Extensions\name\my:C:\Run\my" --isola
    tion hyperv --restart unless-stopped --env filesOnly=False --memory 8G --env enableApiServices=Y --env
    useSSL=N --volume "c:\windows\system32\drivers\etc:C:\driversetc" --env securePassword=76492d1116743f04
    23413b16050a5345MgB8AFMAQgA4ADgAYgBOADUATwBZAEcARwB6AGIAZgB5AGsASQBGAEcAeQB6AHcAPQA9AHwAYgA5AGQANgAyAGU
    AZQA1AGQANQBjAGEAMwAyADMAMwA2AGIAYQBhADMANAA5AGYAYgA3AGIAMABhAGUANQBhAA== --env passwordKeyFile="c:\run
    \my\aes.key" --env removePasswordKeyFile=Y --env accept_eula=Y --env accept_outdated=Y --detach mcr.mic
    rosoft.com/businesscentral:ltsc2019
    At C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\6.0.15\ContainerHandling\New-NavContain
    er.ps1:1954 char:15
  • ... if (!(DockerDo -accept_eula -accept_outdated:$accept_outdated - ...
  •             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
    • FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,DockerDo

You need HyperV in order to run Business Central containers on Windows 10.

I have HyperV, It says "HyperV is Enabled" in the Output of the script and HyperV is checked in Enable or disable windows functions

OK, I can see that - that error is usually because of hyperv.
Maybe a restart of the host? can you run a windows servercore image using hyperv isolation?

I did restart it and upgrade docker to the latest version but this did not make any difference sadly

Are you able to run a normal windows servercore image using hyperv?

When i try that it only sais, Failed to run image. (HTTP code 500) server error - hcs::CreateComputeSystem 506118e023663355bd7bf4b8c2caa720dfa2b03661ce9708cba7adddecaa31c5: The virtual machine could not be started because a required feature is not installed.

Which is the same as when trying to run Business Central using hyperv.
I don't know what you are missing or how you can fix it - but it is something local to your machine, not something I can troubleshoot from here.