Guest environment

When you start a virtual machine (VM) instance using Google-provided public images, a guest environment is automatically installed on the VM instance. The guest environment is a set of scripts, daemons, and binaries that read the content of the metadata server to make a VM run properly on Compute Engine. A metadata server is a communication channel for transferring information from a client to the guest operating system.

This document provides an overview of the components of the guest environment, supported operating systems, and explains how to learn when you need to manually install or update the guest environment.

When to manually install or update the guest environment

VM instances created using Google-provided public images include a guest environment that is installed by default.

To check if the guest environment is running on your instance, see validate the guest environment.

In some cases, the installed guest environment can become outdated. If the guest environment is available on your instance but is outdated, update the guest environment.

Otherwise, you might need to manually install the guest environment under the following conditions:

  • You are importing a custom image or a virtual disk to the Compute Engine platform and choosing not to allow an automatic installation of the guest environment.

    When you import virtual disks or custom images, you have the option of letting Compute Engine install the guest environment for you. However, if you choose not to install the guest environment during the import process, then, to install the guest environment, you must follow the manual steps.

  • You are migrating VMs to Compute Engine using Migrate for Compute Engine.

  • You are using an image that doesn't have the guest environment optimizations for local SSD.

  • You have instances that are using an image that is earlier than v20141218.

If you need to manually install the guest environment, see Installing the guest environment.

Supported operating systems

Each supported operating system that is available on Compute Engine requires specific guest environment packages. Either Google or the owner of the operating system builds these packages. For information about who builds the guest environment packages, see the Notable differences from standard images sections in the Operating system details document.

The Linux guest environment

Whether the Linux guest environment is built by Google or the owner of the operating system, there are some key components that are applicable to all builds.

The base components of a Linux guest environment are provided as deb or rpm packages that are created with the appropriate configurations for the supported distributions.

The following list summarizes the main scripts, daemons, and packages that are packaged in the Linux guest environment:

  • Core Compute Engine components:

    • System init scripts for systemd
    • System configurations, such as udev rules, sysctl rules, rsyslog configs, and dhcp configs, that are used for hostname setting.
    • The metadata script runner and guest agent binaries. These are located in the /usr/bin directory.
    • Bash scripts that run during instance boot.
  • Compute Engine OS Login packages. OS Login lets you use Identity and Access Management (IAM) roles to manage access to VM instances.

    • NSS and PAM modules to enable OS Login functionality.
    • Helper binaries.
  • Disk partitioning scripts:

    • gce-disk-expand. The on-boot resize scripts for root partition.

For more information about the Linux guest environment, see compute-image-packages on GitHub.

The Windows guest environment

The following list summarizes the main scripts and binaries that are a part of the Windows guest environment packages:

  • A Windows agent executable: google-compute-engine-windows.
  • A utilities script for running sysprep on new Windows virtual machines: google-compute-engine-sysprep.
  • Windows .exe and .cmd files to run startup and shutdown scripts: google-compute-engine-metadata-scripts.
  • A PowerShell module containing common functions that are used by other packages: google-compute-engine-powershell.
  • An automatic updater for core Google packages: google-compute-engine-auto-updater.
  • A Compute Engine VSS agent and provider: google-compute-engine-vss.
  • A Windows agent executable: google-osconfig-agent.

For more information about the Windows guest environment, see compute-image-windows on GitHub.

Compute Engine Windows drivers

The following Compute Engine drivers are maintained for Windows images:

Driver type Package name
Ethernet adapter google-compute-engine-driver-netkvm
SCSI disk google-compute-engine-driver-vioscsi
Display adapter google-compute-engine-driver-gga
Crash handler google-compute-engine-driver-pvpanic

Each driver is packaged using GooGet and published to Google Cloud repositories. All Google Cloud Windows images are preconfigured with the GooGet tool and Google Cloud repositories. If you need to install GooGet and set up repositories yourself, see Packaging and package distribution.

To install or upgrade a specific driver, run following command:

googet install DRIVER_PACKAGE_NAME

What's next

For step-by-step instructions about installing the guest environment, see Installing the guest environment.