5 Compute Images

Before you can launch an instance, you need to have an image in a compartment that you have access to.

Private Cloud Appliance provides these options for obtaining images:

  • Import images provided with Private Cloud Appliance: These include Oracle Linux and Oracle Solaris images. See Accessing the Management Node Images.

  • Create custom images within the tenancy: You can create a custom image of a compute instance's boot disk and use it to launch other compute instances. Instances you launch from your image include the customizations, configuration, and software installed when you created the image. See Creating an Image from an Instance.

  • Bring your own image: You can bring your own versions of operating systems to the cloud as long as the underlying 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.

Accessing the Management Node Images

Private Cloud Appliance includes Oracle Linux and Oracle Solaris images that you can import to your tenancies.

The images are located on management nodes. To use an image, you must import it from the management node into a compartment in a tenancy. Then you can use the image to launch an instance.

Initial User Account for Management Node Images

After you launch an instance from any of the images provided on the management node, 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.

Downloading an Image from the Management Node

Oracle images are hosted on the management node of your Private Cloud Appliance. See the images directory on port 8079 of the management node VIP:

https://mgmt_vip_hostname.pca_name.domain_name:8079/images/

Values for the mgmt_vip_hostname, pca_name, and domain_name are available in the Service Enclave.

The following table shows an example similar to what is shown on this images page. On the images page, the names of the images are clickable to download the image or copy the URL, and the column headings are clickable to sort the rows of the table.

Name Last modified Size Description

uln-pca-Oracle-Linux-7.9-2022.02.25_0.oci

2022-03-11 12:38

1.3G

uln-pca-Oracle-Linux-8-2022.02.25_0.oci

2022-03-11 12:39

1.6G

uln-pca-Oracle-Solaris-11.4.35-2021.09.20_0.oci

2022-01-10 09:11

1.3G

The images on your management node might be different from the image names in this example if you are running a different version of the OS.

Note:

The images on your management node might not be the most up-to-date versions that are available. When you log in to an instance, especially when you log in for the first time, check for and install operating system updates.

To use an image to create an instance, the image must be available in your tenancy. Use one of the following methods to make the image available in your tenancy.

Download and Upload to an Object Storage Bucket

  1. On the management node image list, click the name of the image file.

  2. Save the image file.

  3. Upload the image to an Object Storage bucket in your tenancy, as described in Uploading an Image to an Object Storage Bucket.

Import the image from that Object Storage bucket, as described in Importing an Image from an Object Storage Bucket.

Download to an HTTP-Accessible Location

  1. On the management node image list, right-click the name of the image file.

  2. Copy the URL of the image file.

  3. Use this management node URL to import the image to a compartment in your tenancy or to copy the image to another location.

    If your tenancy cannot access the management node location, use the URL of the image on the management node to download that image to a location that is accessible from your tenancy. For example, the bastion host might be configured to provide resources that are accessible through HTTP.

    The following example shows using the management node image URL to copy the image to a location that is HTTP-accessible to your tenancy:

    wget --no-check-certificate -P ./compute_images \
    https://mgmt_node_VIP_hostname.system_name.domain_name:8079/images/uln-pca-Oracle-Linux-8-2022.02.25_0.oci

    The following URL is the URL of the downloaded image that you can use to import the image to your tenancy:

    http://fqdn_or_ip_address/compute_images/uln-pca-Oracle-Linux-8-2022.02.25_0.oci

Import the image to a compartment, as described in Importing an Image from a URL.

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. Download an image from a management node to your local system. See Downloading an Image from the Management Node.

  2. Create an Object Storage bucket for the image. See Creating a Bucket.

  3. Upload the image to the bucket. See Uploading an Object.

  4. Import the image so that it 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.

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. To use an image that is hosted on the management node of your Private Cloud Appliance, see Downloading an Image from the Management Node.

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"
    }

Managing Images

Overview

You can create a custom image of a compute instance's boot disk and use it to launch other compute instances. Instances that you launch from your image include the customizations, configuration, and software that were installed 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.

Listing Images and Viewing Details

Using the Compute Web UI

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

  2. Use the Compartment drop-down menu above the image list to select the compartment where your image is located.

  3. To see details of a particular custom 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

    All images in the specified compartment are shown.

    Example:

    oci compute image list --compartment-id ocid1.compartment.unique_ID
    {
      "data": [
        {
          "agent-features": null,
          "base-image-id": "ocid1.bootvolume.unique_ID",
          "billable-size-in-gbs": null,
          "compartment-id": "ocid1.tenancy.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": {
            "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 instead of for all images in the compartment, run the image get command with the OCID of the image. Use the image list command to get the OCID of the image.

    Syntax:

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

Creating an Image from an Instance

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

The instance you use as the basis must be in a Stopped state, as described in the following procedure.

Once the custom image reaches the Available state, you can use it to launch new instances the same way you launch any other instance. 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. 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.

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

Using the OCI CLI

  1. Stop the instance that will provide the boot volume image as the basis for the custom image.

    See Stopping, Starting, and Resetting an Instance.

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

    • Compartment OCID (oci iam compartment list)

    • The OCID of the instance you want to use as the basis for the image. (oci compute instance list)

    • Display name of your choice

  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"
    }

Next Actions

Editing the Image Name or Compatible Shapes

Using the Compute Web UI

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

  2. Use the Compartment drop-down menu above the image list to select the compartment where your image is located.

  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

Best Practices for Sharing an Image Across Tenancies

You can use image import and export to share 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. Ensue 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.us.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"
    }

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

Using the Compute Web UI

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

  2. Use the Compartment drop-down menu above the image list to select the compartment where your image is located.

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

    The custom 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"
    }

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.