5 Compute Images

An image is a required resource for creating an instance. Private Cloud Appliance provides some images and enables you to use other images that you create:

  • Platform images: Private Cloud Appliance includes some images such as Oracle Linux and Oracle Solaris images. These included images are called platform images. Platform images are available in every compartment of every tenancy. Platform images do not need to be downloaded or imported by a Compute Enclave user in order to access them to create an instance.

    To make platform Images available in the Compute Enclave, a Service Enclave administrator must import images as described in "Providing Platform Images" in the Hardware Administration chapter of the Oracle Private Cloud Appliance Administrator Guide.

  • Custom images from existing instances: You can create a custom image of the boot disk of an instance. Instances that you launch from such an image include the customizations, configuration, and software installed on the instance when you created the image. See Creating an Image from an Instance.

  • Bring your own image: You can use your own versions of operating systems to create instances if the Private Cloud Appliance hardware supports it. See Bring Your Own Image (BYOI).

Note:

Images for Private Cloud Appliance must have paravirtualized network devices and boot volumes. Otherwise, image import will fail.

For conceptual information and important limitations, refer to "Compute Images" in the Compute Instance Concepts chapter of the Oracle Private Cloud Appliance Concepts Guide.

Initial User Account for Platform Images

After you launch an instance from a platform image, you initially connect to the instance using ssh with initial user account opc.

The SSH connection is authenticated using your SSH key pair that is used during instance launch. For more information, see Connecting to a Compute Instance.

Managing Images

In addition to viewing, editing, and deleting images, and moving images to a different compartment, you can also do the following:

  • Upload an image from a local file system to an Object Storage bucket

  • Import an image from an Object Storage bucket to a compartment

  • Export an image to an Object Storage bucket

  • Export an image to a URL

  • Import an image from a URL

Listing Images and Viewing Details

In both the Compute Web UI and the OCI CLI, platform images are listed first, followed by custom images. The list of platform images includes the three most recently published versions of each major distribution. Any older versions that were previously listed are still available by specifying the image OCID.

Using the Compute Web UI

  1. On the Dashboard, click the Compute/View Images button.

  2. Use the Compartment drop-down menu above the image list to select the compartment where you want to list images.

  3. To see details of an image, click the name of the image in the list.

Using the OCI CLI

  1. Gather the information that you need to run the command:

    • Compartment OCID (oci iam compartment list)

  2. Run the image list command.

    Syntax:

    oci compute image list --compartment-id compartment_OCID

    The newest three published versions of each platform image are listed, and all custom images in the specified compartment are listed.

    Example:

    Platform images do not show a compartment OCID because platform images are available in all compartments.

    oci compute image list --compartment-id ocid1.compartment.unique_ID
    {
      "data": [
        {
          "agent-features": null,
          "base-image-id": null,
          "billable-size-in-gbs": null,
          "compartment-id": "",
          "create-image-allowed": true,
          "defined-tags": {},
          "display-name": "uln-pca-Oracle-Linux-8-2022.08.29_0.oci",
          "freeform-tags": {},
          "id": "ocid1.image.unique_ID",
          "launch-mode": "PARAVIRTUALIZED",
          "launch-options": {
            "boot-volume-type": "PARAVIRTUALIZED",
            "firmware": "UEFI_64",
            "is-consistent-volume-naming-enabled": false,
            "is-pv-encryption-in-transit-enabled": false,
            "network-type": "PARAVIRTUALIZED",
            "remote-data-volume-type": "PARAVIRTUALIZED"
          },
          "lifecycle-state": "AVAILABLE",
          "listing-type": null,
          "operating-system": "OracleLinux",
          "operating-system-version": "8",
          "size-in-mbs": 47694,
          "time-created": "2022-10-28T20:02:38.833966+00:00"
        },
    ...
        {
          "agent-features": null,
          "base-image-id": "ocid1.bootvolume.unique_ID",
          "billable-size-in-gbs": null,
          "compartment-id": "ocid1.compartment.unique_ID",
          "create-image-allowed": true,
          "defined-tags": {},
          "display-name": "Sales Team Image",
          "freeform-tags": {},
          "id": "ocid1.image.unique_ID",
          "launch-mode": "PARAVIRTUALIZED",
          "launch-options": {
            "boot-volume-type": "PARAVIRTUALIZED",
            "firmware": "BIOS",
            "is-consistent-volume-naming-enabled": false,
            "is-pv-encryption-in-transit-enabled": false,
            "network-type": "PARAVIRTUALIZED",
            "remote-data-volume-type": "PARAVIRTUALIZED"
          },
          "lifecycle-state": "AVAILABLE",
          "listing-type": null,
          "operating-system": "CUSTOM",
          "operating-system-version": "CUSTOM",
          "size-in-mbs": 51200,
          "time-created": "2021-09-17T18:26:03.221604+00:00"
        },
    }
  3. To see this information for just one image, run the image get command with the OCID of the image. You can use the image list command to get the OCID of the image.

    Syntax:

    oci compute image get --image-id ocid1.image.unique_ID

Editing the Image Name or Compatible Shapes

You can only edit custom images. You cannot edit platform images. Images that have a null compartment OCID are platform images.

Using the Compute Web UI

  1. On the Dashboard, click the Compute/View Images button.

  2. Use the Compartment drop-down menu above the image list to select the compartment where you want to list images.

  3. Use one of the following methods to open the Update Image dialog.

    • For the image that you want to update, click the Actions menu, and click the Edit option.

    • Click the name of the image that you want to update. On the image details page, click the Controls menu and click Edit Details.

  4. Make changes in the Update Image dialog.

    • Image name. The image name does not need to be unique.

    • Compatible shapes. Click the box to the left of the shape name to add or remove that shape as a compatible shape. Click the box at the top of the column to add or remove all listed shapes.

      To view the updated list of compatible shapes, scroll to the Resources section of the image details page and click Compatible Shapes.

  5. Click the Save Changes button.

  6. If you added support for a shape, test the image on the shape.

    Some images (especially Microsoft Windows) might not be cross-compatible with other shapes because of driver or hardware differences.

Using the OCI CLI

Use the image update command to change the display name of the custom image.

  1. Gather the information that you need to run the command:

    • Image OCID (oci compute image list)

  2. Run the image update command.

    Syntax:

    oci compute image update --image-id image_OCID --display-name new_name

Moving an Image to a Different Compartment

To move an image, you must use the OCI CLI.

Using the OCI CLI

  1. Get the following information:

    • The OCID of the current compartment, and the OCID of the destination compartment:

      # oci iam compartment list --compartment-id-in-subtree true
    • The OCID of the image that you want to move:

      # oci compute image list --compartment-id current_compartment_OCID
  2. Run the image change compartment command.

    Syntax:

    oci compute image change-compartment \
    --compartment-id destination_compartment_OCID \
    --image-id image_OCID

Deleting an Image

You can only delete custom images. You cannot delete platform images. Images that have a null compartment OCID are platform images.

Using the Compute Web UI

  1. On the Dashboard, click the Compute/View Images button.

  2. Use the Compartment drop-down menu above the image list to select the compartment where you want to list images.

  3. For the custom image that you want to delete, click the Actions menu, then click Delete image.

    The image is deleted.

Using the OCI CLI

  1. Gather the information that you need to run the command:

    • Image OCID (oci compute image list)

  2. Run the image delete command.

    Syntax:

    oci compute image delete --image-id image_OCID

    Example:

    $ oci compute image delete --image-id ocid1.image.unique_ID
    Are you sure you want to delete this resource? [y/N]: y
    {
      "etag": "bbb9a3df-8f9d-47df-a419-f9d2de912b57",
      "opc-work-request-id": "ocid1.workrequest.unique_ID"
    }

Uploading an Image to an Object Storage Bucket

Advantages of storing an image in an Object Storage bucket are that you can implement object versioning or pre-authenticated requests as described in Managing Object Versioning and Using Pre-Authenticated Requests.

  1. Create an Object Storage bucket as described in Creating a Bucket.

  2. Upload an image from a local file system to the bucket. See Uploading an Object.

  3. Import the image from the Object Storage bucket to a compartment so that the image is available to select when you launch an instance. See Importing an Image from an Object Storage Bucket.

Importing an Image from an Object Storage Bucket

You can import an image into a compartment from an Object Storage bucket.

Alternatively, you can import an image from a URL as described in Importing an Image from a URL.

Before You Begin

Ensure you have read access to the Object Storage bucket, and that the bucket contains the image that you want to use. See Managing Object Storage Buckets.

If the bucket does not contain the image that you want to use, perform the procedure described in Uploading an Image to an Object Storage Bucket.

Using the Compute Web UI

  1. Go to the Custom Images page.

    • On the Dashboard, click Compute/View Images. In the menu on the left side of the Images page, click Custom Images.

    • In the navigation menu, click Compute, then click Custom Images.

  2. On the Custom Images page, click the Import Image button.

  3. In the Import Image dialog, enter the following information:

    • Name: Enter a descriptive name for the image.

    • Create in Compartment: Select the compartment where the image will be placed.

    • Source Type: Select the Import from an Object Storage Bucket option.

    • Bucket: Select a bucket. You might need to change the compartment to locate the bucket.

    • Object Name: Select the name of an image object from the list.

    • Image Type: Select QCOW2. Images that are imported from the object store are always imported as QCOW2 images.

    • Launch Mode: Paravirtualized is the default and cannot be changed.

    • Tagging: Optionally, add one or more tags to this image as described in Adding Tags at Resource Creation. Tags can also be applied later.

  4. Click the Import Image button in the dialog.

    The imported image appears in the Custom Images list for the compartment, with a state of Importing. To track the progress of the operation, view the associated work request.

    When the import completes successfully, the image state changes to Available, and the image can be used to launch instances as described in Creating an Instance.

Using the OCI CLI

  1. Gather the information that you need to run the command:

    • Compartment OCID:

      oci iam compartment list --compartment-id-in-subtree true
    • Object Storage bucket name:

      oci os bucket list -c compartment_OCID
    • Name of the image object in the bucket:

      oci os object list --bucket-name bucket_name
    • Object Storage namespace. See Obtaining the Object Storage Namespace.

  2. Run the image import from object command.

    Syntax:

    oci compute image import from-object \
    --compartment-id compartment_OCID --bucket-name bucket_name \
    --name bucket_image_object_name --namespace namespace

    You can specify the --display-name option to give the imported image a custom name. The name does not need to be unique, and you can change it later. You cannot use a platform image name as a custom image name.

Sharing Custom Images Across Tenancies

You can use image import and export to share custom images across tenancies so that you don't need to recreate the image manually in each tenancy. You create the image in one of the tenancies, and then export the image, making it available for import in additional tenancies.

These are the high-level tasks:

  1. Export the image to an Object Storage bucket. See Exporting an Image to Object Storage.

  2. Create a pre-authenticated request with read-only access for the image in the bucket. See Using Pre-Authenticated Requests.

  3. In the destination tenancy, import the image. Use the pre-authenticated request URL as the Object Storage URL. See Importing an Image from a URL.

Exporting an Image to Object Storage

You can export images to an Object Storage bucket or to a URL. You need write access to the to the export location.

Exported images are a copy of the boot volume and metadata when the image was created.

Perform one of the following procedures.

Export to an Object (OCI CLI)

  1. Ensure that a bucket is available.

    See Listing Buckets and Creating a Bucket.

  2. Gather the information that you need to run the command:

    • Object Storage bucket name (oci os bucket list)

    • Image OCID (oci compute image list)

    • Object Storage namespace. See Obtaining the Object Storage Namespace.

    • The name you want to apply to the exported image.

      The name of the exported image is in the following form. Specify the .qcow2 extension.

      namespace,bucketname,file/objectname.qcow2
  3. Run the image export to object command.

    Syntax:

    oci compute image export to-object --bucket-name bucketname \
    --image-id image_OCID --namespace namespace \
    --name exported_image_name

Export to a URL (OCI CLI)

  1. Ensure that a bucket with a pre-authenticated request is available, and that you have the request URL. See:

  2. Gather the information that you need to run the command:

    • Image OCID (oci compute image list)

  3. Run the image export to object URI command.

    Syntax:

    oci compute image export to-object-uri --image-id image_OCID \
    --uri URL_to_export_to

    Example:

    Note:

    In some cases, you need to omit the slash at the end of the uri string. Refer to the Oracle Private Cloud Appliance Release Notes.

    oci compute image export to-object-uri \
    --image-id ocid1.image.unique_ID \
    --uri https://objectstorage.mypca01.example.com/oci/p/MrxLFkKlFkIlNDhvhcZnrjbUAlsoeah/n/mynamespace/b/my-bucket/o/
    {
      "data": {
        "agent-features": null,
        "base-image-id": null,
        "compartment-id": "ocid1.tenancy.unique_ID",
        "create-image-allowed": true,
        "defined-tags": null,
        "display-name": "PCA OL8 Image",
        "freeform-tags": null,
        "id": "ocid1.image.unique_ID",
        "launch-mode": "PARAVIRTUALIZED",
        "launch-options": {
          "boot-volume-type": "PARAVIRTUALIZED",
          "firmware": "UEFI_64",
          "is-consistent-volume-naming-enabled": false,
          "is-pv-encryption-in-transit-enabled": false,
          "network-type": "PARAVIRTUALIZED",
          "remote-data-volume-type": "PARAVIRTUALIZED"
        },
        "lifecycle-state": "EXPORTING",
        "listing-type": null,
        "operating-system": "OracleLinux",
        "operating-system-version": "8",
        "size-in-mbs": 47694,
        "time-created": "2022-01-18T16:29:13.114742+00:00"
      },
      "etag": "5d24f645-b446-42f2-a777-112457f0cafe",
      "opc-work-request-id": "ocid1.workrequest.unique_ID"
    }

Importing an Image from a URL

You can import an image into a compartment by specifying the URL of the image file.

Alternatively, you can import an image from an Object Storage bucket as described in Importing an Image from an Object Storage Bucket.

Before You Begin

Get the URL that you need for this procedure. Ensure that the URL is accessible from your tenancy.

Using the Compute Web UI

  1. Go to the Custom Images page.

    • On the Dashboard, click Compute/View Images. In the menu on the left side of the Images page, click Custom Images.

    • In the navigation menu, click Compute, then click Custom Images.

  2. On the Custom Images page, click the Import Image button.

  3. In the Import Image dialog, enter the following information:

    • Name: Enter a descriptive name for the image.

    • Create in Compartment: Select the compartment where the image will be placed.

    • Source Type: Select the Import from an Object Storage URL option.

    • Object Storage URL: Enter the URL of the image. The URL does not need to be an Object Storage URL. It can be any URL that provides access to the image.

    • Image Type: Select one of the following options based on the type of image you are importing.

      • VMDK: Virtual machine disk file format (.vmdk), used for virtual machine disk images.

      • QCOW2: For disk image files (.qcow2) used by QEMU copy on write, and for OCI images (.oci).

    • Launch Mode: Paravirtualized is the default and cannot be changed.

    • Tagging: Optionally, add one or more tags to this image as described in Adding Tags at Resource Creation. Tags can also be applied later.

  4. Click the Import Image button in the dialog.

    The imported image appears in the Custom Images list for the compartment, with a state of Importing. To track the progress of the operation, view the associated work request.

    When the import completes successfully, the image state changes to Available, and the image can be used to launch instances as described in Creating an Instance.

Using the OCI CLI

  1. Gather the information that you need to run the command:

    • Compartment OCID:

      oci iam compartment list --compartment-id-in-subtree true
    • The URL for the image. The URL does not need to be an Object Storage URL. It can be any URL that can be accessed from your tenancy.

  2. Run the image import from object URI command.

    Syntax:

    oci compute image import from-object-uri \
    --compartment-id compartment_OCID --uri URL_for_image

    You can specify the --display-name option to give the imported image a custom name. The name does not need to be unique, and you can change it later. You cannot use a platform image name as a custom image name.

    Example:

    $ oci compute image import from-object-uri \
    --compartment-id compartment_OCID \
    --uri http://fqdn_or_ip_address/compute_images/uln-pca-Oracle-Linux-8-2022.02.25_0.oci \
    --display-name "Oracle Linux 8 2-25-22"
    {
      "data": {
        "agent-features": null,
        "base-image-id": null,
        "billable-size-in-gbs": null,
        "compartment-id": "ocid1.compartment.unique_ID",
        "create-image-allowed": true,
        "defined-tags": {},
        "display-name": "Oracle Linux 8 2-25-22",
        "freeform-tags": {},
        "id": "ocid1.image.unique_ID",
        "launch-mode": "PARAVIRTUALIZED",
        "launch-options": null,
        "lifecycle-state": "IMPORTING",
        "listing-type": null,
        "operating-system": "UNAVAILABLE",
        "operating-system-version": "UNAVAILABLE",
        "size-in-mbs": 0,
        "time-created": "2022-04-19T20:44:35.163119+00:00"
      },
      "etag": "ab0c6265-c671-4ccb-a9b1-279d9437ba87",
      "opc-work-request-id": "ocid1.workrequest.unique_ID"
    }

Creating an Image from an Instance

You can create a custom image of a compute instance's boot disk and use that custom image to launch other compute instances. Instances that you launch from this image include the customizations, configuration, and software that were installed on the boot disk when you created the image.

Custom images do not include the data from any attached block volumes.

Custom images inherit the compatible shapes that are set by default from the base image. For additional details to consider, refer to "Custom Images Created From Instances" in the Compute Instance Concepts chapter in the Oracle Private Cloud Appliance Concepts Guide.

The instance you use to create this custom image must be in the Stopped state.

Once the new custom image reaches the Available state, you can use it to launch new instances. See Creating an Instance.

Using the Compute Web UI

  1. Click Dashboard, and click the Compute/View Instances button.

  2. Select the compartment where the source instance is located.

  3. Click the name of the instance that you want to use as the basis for the custom image.

  4. Ensure that the instance is in the Stopped state.

    On the details page for the instance, click the Controls menu, and then click Stop.

    Wait for the instance status to change to Stopped. The status is displayed above the icon of the object.

  5. Click Controls and then click Create Custom Image.

  6. In the Create Image From Instance dialog, enter the following information:

    • Name: Replace the name with the name you want for the image.

    • Create in Compartment: Select the compartment where the image will be stored.

  7. Click the Create Custom Image button in the dialog.

    The status of the instance changes to Creating Image.

  8. Monitor the image creation progress.

    The time required to create the custom image depends on the size of the instance's boot volume.

    To monitor the progress, on the navigation menu, click Compute and then click Custom Images. Select the correct compartment, and click on the image name in the list. On the details page for the image, under Resources click Work Requests.

  9. (Optional) Restart the instance.

    When the instance status changes from Creating Image to Stopped, you can restart the instance.

Using the OCI CLI

  1. Gather the information that you need to run the command:

    • The OCID of the compartment where the new image will be located (oci iam compartment list)

    • The OCID of the instance that will provide the boot volume image as the basis for the custom image (oci compute instance list)

    • Display name for the new image

  2. Ensure that the instance is in the Stopped state.

    List the instance as described in Listing Images and Viewing Details. If lifecycle-state is not STOPPED, stop the instance as described in Stopping, Starting, and Resetting an Instance.

  3. Run the image create command.

    Syntax:

    oci compute image create --compartment-id compartment_OCID \
    --instance-id base_instance_OCID --display-name display_name

    Example:

    $ oci compute image create \
    --compartment-id ocid1.compartment.unique_ID \
    --instance-id ocid1.instance.unique_ID \
    --display-name "Oracle Linux 8"
    {
      "data": {
        "agent-features": null,
        "base-image-id": "ocid1.bootvolume.unique_ID",
        "billable-size-in-gbs": null,
        "compartment-id": "ocid1.compartment.unique_ID",
        "create-image-allowed": true,
        "defined-tags": {},
        "display-name": "Oracle Linux 8",
        "freeform-tags": {},
        "id": "ocid1.image.unique_ID",
        "launch-mode": "PARAVIRTUALIZED",
        "launch-options": null,
        "lifecycle-state": "PROVISIONING",
        "listing-type": null,
        "operating-system": "Custom",
        "operating-system-version": "Custom",
        "size-in-mbs": 0,
        "time-created": "2022-02-17T18:26:03.221604+00:00"
      },
      "etag": "3c0e56a0-b58c-486b-b659-9f5b13f377ee",
      "opc-work-request-id": "ocid1.workrequest.unique_ID"
    }
  4. (Optional) Restart the instance.

    When the instance lifecycle-state returns to STOPPED, you can restart the instance as described in Stopping, Starting, and Resetting an Instance.

Bring Your Own Image (BYOI)

The Bring Your Own Image (BYOI) feature enables you to bring your own versions of operating systems to the appliance as long as the underlying hardware supports it. The Private Cloud Appliance services do not depend on the OS you run.

Important:

You must comply with all licensing requirements when you upload and start instances based on OS images that you supply.

For more conceptual information, refer to "Bring Your Own Image (BYOI)" in the Compute Instance Concepts chapter in the Oracle Private Cloud Appliance Concepts Guide.

Importing Custom Linux Images

Preparing Linux VMs for Import

Before you import a custom Linux image, you must prepare the image to ensure that instances launched from the image can boot correctly and that network connections will work.

Perform these steps.

  1. Review the requirements.

    Refer to "Linux Source Image Requirements" in the Compute Instance Concepts chapter of the Oracle Private Cloud Appliance Concepts Guide.

  2. Create a backup of the root volume.

  3. If the VM has remotely attached storage, such as NFS or block volumes, configure any services that rely on this storage to start manually. Remotely attached storage is not available the first time an imported instance boots on the appliance.

  4. Ensure that all network interfaces use DHCP, and that the MAC address and IP addresses are not hardcoded. See your system documentation for steps to perform network configuration for your system.

  5. Stop the VM.

  6. Clone the stopped VM as a VMDK or QCOW2 file, and then export the image from your virtualization environment.

    Refer to the tools documentation for your virtualization environment.

Importing a Linux Image

After you prepare a Linux image for import, follow these steps to import the image:

  1. Upload the image file to an Object Storage bucket.

    Ensure that you select a bucket where you have read and write access. See Exporting an Image to Object Storage.

  2. Import the image from the bucket to your tenancy.

    See Importing an Image from an Object Storage Bucket

  3. Complete the post-import tasks.

    See Post-Import Tasks for Linux Images.

Post-Import Tasks for Linux Images

After you import a custom Linux image, perform these steps.

  1. Use the imported image to launch an instance.

    For the image source, select Custom Images, and then select the image that you imported. See Creating an Instance.

  2. If the instance requires any remotely attached storage, such as block volumes, create and attach the storage.

    See Creating and Attaching Block Volumes.

  3. Create and attach any required secondary VNICs.

    See Configuring VNICs and IP Addressing.

  4. Test that all applications are working as expected.

  5. Reconfigure any services that were set to start manually.

Importing Custom Microsoft Windows Images

The Compute service enables you to import Microsoft Windows images and use them to launch instances. You can import images that you create from Microsoft Windows systems that are running on your on-premises physical or virtual machines (VMs).

Perform the procedures in this section to prepare, create, export, import, and perform post-import tasks.

Preparing Microsoft Windows Systems for Import

The configuration described in this section is required so that Compute instances that are launched from the Microsoft Windows system image can boot correctly and network connections will work.

Important:

The system drive configuration where the Microsoft Windows source system is installed will be imported to the image. All partitions on the drive will follow through the imported image. Any other drives will not be imported, and you must re-create them on the instance after they are launched from the image. You will then need to manually move the data on the non-system drives to storage on the instance.

You can perform this configuration on the running source system or after you have launched the Compute instance.

Preparing the Source System Prior to Creating the Image"

  1. Review the requirements.

    Refer to "Microsoft Windows Source Image Requirements" in the Compute Instance Concepts chapter of the Oracle Private Cloud Appliance Concepts Guide.

  2. Follow your organization's security guidelines to ensure that the Microsoft Windows system is secured. This can include, but is not limited to the following tasks:

    • Install the latest security updates for the operating system and installed applications.

    • Enable the firewall, and configure it so that you only enable the rules that are needed.

    • Disable unnecessary privileged accounts.

    • Use strong passwords for all accounts.

  3. Configure Remote Desktop Protocol (RDP) access to the image.

    1. Enable Remote Desktop connections to the image. See Enabling Remote Desktop Protocol Access.

    2. Modify the Microsoft Windows Firewall inbound port rule to allow RDP access for both Private and Public network location types. When you import the image, the Microsoft Windows Network Location Awareness service will identify the network connection as a Public network type.

  4. Determine whether the current Microsoft Windows license type is a volume license by running the following command in PowerShell:

    Get-CimInstance -ClassName SoftwareLicensingProduct | where {$_.PartialProductKey} | select ProductKeyChannel

    If the license is not a volume license, after you import the image, you will update the license type.

  5. If you plan to use this custom image to launch more than one instance, create a generalized image of the boot disk. A generalized image is cleaned of computer-specific information, such as unique identifiers. When you create instances from a generalized image, the unique identifiers are regenerated. This prevents two instances that are created from the same image from colliding on the same identifiers.

  6. Create a backup of the root volume.

  7. If the system has remotely attached storage, such as NFS or block volumes, configure any services that rely on this storage to start manually. Remotely attached storage is not available the first time an instance that was created from a custom image boots on Oracle Private Cloud Appliance.

  8. Ensure that all network interfaces use DHCP, and that the MAC address and IP addresses are not hardcoded. See your system documentation for steps to perform network configuration for your system.

  9. Install the Oracle VirtIO Drivers for Microsoft Windows.

    1. Downloading the Oracle VirtIO Drivers for Microsoft Windows

    2. Installing the Oracle VirtIO Drivers for Microsoft Windows

  10. Perform the Creating and Exporting an Image procedure unless you already followed the Preparing the Compute Instance After Instance Launch procedure.

Creating and Exporting an Image

  1. Stop the system.

  2. Clone the stopped system as a VMDK or QCOW2 file. Refer to the tools documentation for your system.

  3. Export the image from your physical system or virtualization environment.

  4. Perform the Importing a Microsoft Windows Image procedure to import the image into Oracle Private Cloud Appliance.

Preparing the Compute Instance After Instance Launch

  1. Perform as many of the Preparing the Source System Prior to Creating the Image" steps as you are comfortable performing.

  2. Perform the Creating and Exporting an Image procedure.

    After importing the image, do not perform the Post-Import Tasks for Microsoft Windows Images procedure.

  3. Use the imported image to launch an instance.

    For the image source, select Custom Images, and then select the image that you imported. See Creating an Instance.

  4. Connect to the console as described in Connecting to an Instance Using a Console Connection.

  5. Perform the Preparing the Source System Prior to Creating the Image" procedure.

  6. Perform the Post-Import Tasks for Microsoft Windows Images procedure.

Downloading the Oracle VirtIO Drivers for Microsoft Windows

The Oracle VirtIO Drivers for Microsoft Windows are paravirtualized drivers for Microsoft Windows instances. These drivers improve performance for network and block (disk) devices on Microsoft Windows instances and resolve common issues.

Download the Oracle VirtIO Drivers for Microsoft Windows from the Oracle Software Delivery Cloud website or from My Oracle Support (MOS).

Download the Oracle VirtIO Drivers for Microsoft Windows from Oracle Software Delivery Cloud

  1. Sign in to the Oracle Software Delivery Cloud site.

  2. In the All Categories list, select Release.

  3. Type Oracle Linux 7.9 in the search box and click Search.

  4. Click "REL: Oracle Linux 7.9.0.0.0" to add it to your cart.

  5. At the top right of the page, to the right of your cart, click Continue.

  6. In the Platforms/Languages list, select x86 64 bit. Click Continue.

  7. Review and accept the license agreement (click "I reviewed and accept the Oracle License Agreement."). Click Continue.

  8. Click the V1009702-01.zip filename to the left of "Oracle VirtIO Drivers Version for Microsoft Windows 1.1.7, 67.9 MB".

  9. Follow the prompts to save the V1009702-01.zip file.

Download the Oracle VirtIO Drivers for Microsoft Windows from MOS

  1. Sign in to My Oracle Support.

  2. Click the Patches & Updates tab.

  3. In the Patch Search pane, in the Patch Name or Number field, enter 27637937. Click the Search button.

  4. From the search results table, click the Patch Name to the left of "Oracle VirtIO driver version 1.1.7" for Release 7.9.0.0.0.

    A more detailed description of the patch is shown.

  5. In the box, click the Download button.

  6. In the File Download window, follow the prompts to save the p27637937_79000_MSWIN-x86-64.zip file.

Installing the Oracle VirtIO Drivers for Microsoft Windows

To install the Oracle VirtIO Drivers for Microsoft Windows, configure Microsoft Windows policies and then run the installation program.

Configuring Policies for Device Installation

Configure Microsoft Windows policies to allow the installation of the Oracle VirtIO Drivers for Microsoft Windows, if these policies are not already configured.

  1. Go to the Microsoft Windows system on which you want to install the Oracle VirtIO Drivers for Microsoft Windows.

  2. From the Start menu, select Run.

  3. Enter gpedit.msc and then click OK.

    The Local Group Policy Editor is displayed.

  4. From the Console Tree, display the list of Device Installation Restrictions as follows:

    1. Expand Computer Configuration, and then expand Administrative Templates.

    2. Expand System, and then expand Device Installation.

    3. Select Device Installation Restrictions.

  5. Edit the policy settings so that no device installation restrictions are configured.

  6. Close the Local Group Policy Editor.

  7. Restart the Microsoft Windows system.

After performing one of the procedures described in Downloading the Oracle VirtIO Drivers for Microsoft Windows, the Microsoft Windows system should have a copy of the Oracle VirtIO Drivers for Microsoft Windows installation program, Setup.exe.

You can use a graphical user interface (GUI) to install the drivers, or use the command line to install the drivers by using a response file that you previously created.

The Oracle VirtIO Drivers for Microsoft Windows are installed in the following directories:

  • On 32-bit systems: C:\Program Files\Oracle Corporation\Oracle Windows VirtIO Drivers

  • On 64-bit systems: C:\Program Files (x86)\Oracle Corporation\Oracle Windows VirtIO Drivers

Installing the Oracle VirtIO Drivers for Microsoft Windows by Using the GUI

This procedure installs the drivers on a single Microsoft Windows system. You can optionally record your responses for use on other systems.

  1. Run the Setup.exe driver installation program.

    • To install the drivers on only this system, double-click the Setup.exe file.

    • To record a response file for use on other systems, start the Setup.exe installer from the command line.

      1. Open a command-line window.

      2. Navigate to the directory where the Setup.exe file is located.

      3. Run Setup.exe -r to start the installer and create a response file.

  2. If prompted, select Yes in the User Account Control dialog to allow the installer to proceed.

    The Welcome window is displayed.

  3. Click Next.

    The "Start to install Oracle VirtIO Drivers for Microsoft Windows Release 2.0" window is displayed with information about your selection.

  4. Click Install to start the installation.

    The installer copies the Oracle VirtIO Drivers for Microsoft Windows files and installs the drivers on the system.

  5. Once the installation completes, click Finish.

    The system is restarted.

Installing the Oracle VirtIO Drivers for Microsoft Windows by Using an Existing Response File

This procedure uses a response file that was created in the Installing the Oracle VirtIO Drivers for Microsoft Windows by Using the GUI procedure.

  1. Locate the response file, setup.iss, in the C:\Windows directory.

  2. Copy the response file to the same directory where the Oracle VirtIO Drivers for Microsoft Windows installation program, Setup.exe, is located.

    Alternatively, you can specify the location of the response file at the command line.

  3. Open a command-line window.

  4. Run Setup.exe -s to install the drivers by using the response file.

    The following additional options to the Setup.exe -s command are available:

    • -f1c:path_to\setup.iss to specify the location of the setup.iss response file.

    • -f2c:path_to\setup.log to specify the location of the setup.log log file.

      By default, log files are written to the C:\Windows directory.

Importing a Microsoft Windows Image

After you prepare a Microsoft Windows image for import, follow these steps to import the image:

  1. Upload the image file to an Object Storage bucket.

    Ensure that you select a bucket where you have read and write access. See Exporting an Image to Object Storage.

  2. Import the image from the bucket to your tenancy.

    See Importing an Image from an Object Storage Bucket

  3. Complete the post-import tasks.

    See Post-Import Tasks for Microsoft Windows Images.

Post-Import Tasks for Microsoft Windows Images

After you import a custom Microsoft Windows image, perform these steps.

  1. Use the imported image to launch an instance.

    For the image source, select Custom Images, and then select the image that you imported. See Creating an Instance.

  2. Enable Remote Desktop Protocol (RDP) access to the Compute instance.

    See Enabling Remote Desktop Protocol Access.

  3. Connect to the instance using RDP.

    See Connecting with an RDP Client.

  4. If the instance requires any remotely attached storage, such as block volumes, create and attach the storage.

    See Creating and Attaching Block Volumes.

  5. Create and attach any required secondary VNICs.

    See Configuring VNICs and IP Addressing.

  6. Test that all applications are working as expected.

  7. Reconfigure any services that were set to start manually.

  8. Configure your instance to use the Network Time Protocol (NTP).

To avoid performing this post-launch configuration every time you launch an instance using this custom image, consider creating a new image from the fully configured instance. See Creating an Image from an Instance.