How to use boot diagnostics to troubleshoot Linux virtual machines in Azure

Support for two debugging features is now available in Azure: Console Output and Screenshot support for Azure Virtual Machines Resource Manager deployment model.

When bringing your own image to Azure or even booting one of the platform images, there can be many reasons why a Virtual Machine gets into a non-bootable state. These features enable you to easily diagnose and recover your Virtual Machines from boot failures.

For Linux Virtual Machines, you can easily view the output of your console log from the Portal:

Azure portal

However, for both Windows and Linux Virtual Machines, Azure also enables you to see a screenshot of the VM from the hypervisor:

Error

Both of these features are supported for Azure Virtual Machines in all regions. Note, screenshots, and output can take up to 10 minutes to appear in your storage account.

Common boot errors

Enable diagnostics on a new virtual machine

  1. When creating a new virtual machine from the Azure portal, select the Azure Resource Manager from the deployment model dropdown:

    Resource Manager

  2. In Settings, enable the Boot diagnostics, and then select a storage account that you would like to place these diagnostic files.

    Create VM

    Note

    The Boot diagnostics feature does not support premium storage account. If you use the premium storage account for Boot diagnostics, you might receive the StorageAccountTypeNotSupported error when you start the VM.

  3. If you are deploying from an Azure Resource Manager template, navigate to your virtual machine resource and append the diagnostics profile section. Remember to use the “2015-06-15” API version header.

    {
          "apiVersion": "2015-06-15",
          "type": "Microsoft.Compute/virtualMachines",
          … 
    
  4. The diagnostics profile enables you to select the storage account where you want to put these logs.

            "diagnosticsProfile": {
                "bootDiagnostics": {
                "enabled": true,
                "storageUri": "[concat('http://', parameters('newStorageAccountName'), '.blob.core.windows.net')]"
                }
            }
            }
        }
    

To deploy a sample virtual machine with boot diagnostics enabled, check out our repo here.

Enable Boot diagnostics on existing virtual machine

To enable Boot diagnostics on an existing virtual machine, follow these steps:

  1. Log in to the Azure portal, and then select the virtual machine.
  2. In Support + troubleshooting, select Boot diagnostics > Settings, change the status to On, and then select a storage account.
  3. Make sure that the Boot diagnostics option is selected and then save the change.

    Update Existing VM

  4. Restart the VM to take effect.

Next steps

If you see a "Failed to get contents of the log" error when you use VM Boot Diagnostics, see Failed to get contents of the log error in VM Boot Diagnostics.