Azure boot diagnostics
Applies to: ✔️ Linux VMs ✔️ Windows VMs ✔️ Flexible scale sets ✔️ Uniform scale sets
Boot diagnostics is a debugging feature for Azure virtual machines (VM) that allows diagnosis of VM boot failures. Boot diagnostics enables a user to observe the state of their VM as it is booting up by collecting serial log information and screenshots.
Boot diagnostics storage account
When creating a VM in Azure portal, boot diagnostics is enabled by default. The recommended boot diagnostics experience is to use a managed storage account, as it yields significant performance improvements in the time to create an Azure VM. This is because an Azure managed storage account will be used, removing the time it takes to create a new user storage account to store the boot diagnostics data.
Important
The boot diagnostics data blobs (which comprise of logs and snapshot images) are stored in a managed storage account. Customers will be charged only on used GiBs by the blobs, not on the disk's provisioned size. The snapshot meters will be used for billing of the managed storage account. Because the managed accounts are created on either Standard LRS or Standard ZRS, customers will be charged at $0.05/GB per month for the size of their diagnostic data blobs only. For more information on this pricing, see Managed disks pricing. Customers will see this charge tied to their VM resource URI.
An alternative boot diagnostic experience is to use a user managed storage account. A user can either create a new storage account or use an existing one.
Note
User managed storage accounts associated with boot diagnostics require the storage account and the associated virtual machines reside in the same region and subscription and accessible from all networks.
Boot diagnostics view
Located in the virtual machine blade, the boot diagnostics option is under the Support and Troubleshooting section in the Azure portal. Selecting boot diagnostics will display a screenshot and serial log information. The serial log contains kernel messaging and the screenshot is a snapshot of your VMs current state. Based on if the VM is running Windows or Linux determines what the expected screenshot would look like. For Windows, users will see a desktop background and for Linux, users will see a login prompt.
Enable managed boot diagnostics
Managed boot diagnostics can be enabled through the Azure portal, CLI and ARM Templates.
Enable managed boot diagnostics using the Azure portal
When creating a VM in the Azure portal, the default setting is to have boot diagnostics enabled using a managed storage account. To view this, navigate to the Management tab during the VM creation.
Enable managed boot diagnostics using CLI
Boot diagnostics with a managed storage account is supported in Azure CLI 2.12.0 and later. If you do not input a name or URI for a storage account, a managed account will be used. For more information and code samples see the CLI documentation for boot diagnostics.
Enable managed boot diagnostics using PowerShell
Boot diagnostics with a managed storage account is supported in Azure PowerShell 6.6.0 and later. If you do not input a name or URI for a storage account, a managed account will be used. For more information and code samples see the PowerShell documentation for boot diagnostics.
Enable managed boot diagnostics using Azure Resource Manager (ARM) templates
Everything after API version 2020-06-01 supports managed boot diagnostics. For more information, see boot diagnostics instance view.
"name": "[parameters('virtualMachineName')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2020-06-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('virtualMachineSize')]"
},
"storageProfile": {
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "[parameters('osDiskType')]"
}
},
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "18.04-LTS",
"version": "latest"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]"
}
]
},
"osProfile": {
"computerName": "[parameters('virtualMachineComputerName')]",
"adminUsername": "[parameters('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": true
}
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true
}
}
}
}
],
Limitations
- Managed boot diagnostics is only available for Azure Resource Manager VMs.
- Managed boot diagnostics does not support VMs using unmanaged OS disks.
- Boot diagnostics does not support premium storage accounts or zone redundant storage accounts. If either of these are used for boot diagnostics users will receive an
StorageAccountTypeNotSupportederror when starting the VM. - Managed storage accounts are supported in Resource Manager API version "2020-06-01" and later.
- Azure Serial Console is currently incompatible with a managed storage account for boot diagnostics. Learn more about Azure Serial Console.
- Portal only supports the use of boot diagnostics with a managed storage account for single instance VMs.
Next steps
Learn more about the Azure Serial Console and how to use boot diagnostics to troubleshoot virtual machines in Azure.