Oracle Cloud Infrastructure Documentation

Bring Your Own Custom Image for Paravirtualized Mode Virtual Machines

The Compute service enables you to import your images created outside of Oracle Cloud Infrastructure; for example, your on-premises physical or virtual machines (VMs).You can import a range of new and legacy production Linux-based operating systems, using the QCOW2 or VMDK formats, however they must support paravirtualized drivers. You can then run them on Compute virtual machines (VMs).


If your image supports paravirtualized drivers, it is easy to convert your existing emulated mode instances into paravirtualized instances. You can create a custom image of your instance, then export it to object storage, and re-import it using paravirtualized mode. For the OCI image format, which is a TAR file, extract the QCOW2 file and then re-import this file to change to paravirtualized mode.

Linux-based operating systems running the kernel version 3.4 or newer support paravirtualized drivers. Verify your system's kernel version using the uname command.

To verify the kernel version using the uname command



  • Importing Windows-based images using paravirtualized mode is not supported.
  • Support from Oracle Cloud Infrastructure in launching an instance from a custom operating system does not ensure that the operating system vendor will support the instance. Customers running Oracle Linux on Oracle Cloud Infrastructure automatically have access to Oracle Linux Premier Support, see Oracle Linux for more information.

Custom Image Requirements

Linux-based custom images imported for paravirtualized mode VMs must meet the following requirements:

  • The image must be set up for BIOS boot.

  • The maximum image size is 300 GB.

  • Only one disk is supported, and it must be the boot drive with a valid MBR and boot loader. You can migrate additional data volumes after the image's boot volume has been imported.

  • The boot process must not require additional data volumes to be present for a successful boot.

  • The disk image cannot be encrypted.

  • The disk image must be a VMDK or QCOW2 file. VMDK files must be either the "single growable" (monolithicSparse) type or the "stream optimized" (streamOptimized) type, both of which will consist of a single VMDK file. All other VMDK formats such as those that use multiple files, split volumes, or contain snapshots, are not supported.

  • Existing network interfaces will not be recreated. Instead, a single network interface will be created after the import process is complete. You should use DHCP on this interface to discover the network settings.

  • The boot loader should use LVM or UUID to locate the boot volume.

  • The network configuration should not hardcode the MAC address for the network interface.

We recommend that you enable certificate-based SSH, however this is optional. If you want your image to automatically use ssh keys supplied from the User Data field when you launch an instance, you can install Cloud-Init when preparing the image. See Creating an Instance for more information about the User Data field.

Custom Image Import Process

The following is a high-level outline of the steps required to import custom images for emulation mode VMs.

  1. Prepare the image for import. This includes enabling serial console access for all Linux-based custom images and configuring a network interface without a static MAC address and to support DHCP. For more information, see Preparing a Custom Linux Image for Import .

  2. Export the image as VMDK or QCOW2 format using existing virtualization tools. See the tools documentation for your virtualization environment.

  3. Upload the image to Oracle Cloud Infrastructure Object Storage. See Managing Objects and Overview of Object Storage for more information.

  4. Import the image. See Importing Custom Images.