---
name: vpc-vsi_is_creating_generic_os_custom_image
title: Creating a generic operating system custom image
description: You can specify a generic operating system during image import to create an image that contains any operating system that you want. When you provision a server from a generic operating system custom image, the operating system-specific initialization actions aren't performed automatically. You must specify each specific action by using user data.
last-updated: 2024-06-14
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/vpc?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Creating a generic operating system custom image
{: #create-generic-os-custom-image}

You can specify a generic operating system during image import to create an image that contains any operating system that you want. When you provision a server from a generic operating system custom image, the operating system-specific initialization actions aren't performed automatically. You must specify each specific action by using user data.


For more information about custom images, see [Getting started with custom images](https://cloud.ibm.com/docs/vpc?topic=vpc-planning-custom-images&format=markdown).

For more information about generic operating system custom images, see [Generic operating system custom images](https://cloud.ibm.com/docs/vpc?topic=vpc-planning-custom-images&format=markdown#generic-os-custom-images) and [User data format considerations](https://cloud.ibm.com/docs/vpc?topic=vpc-planning-custom-images&format=markdown#generic-os-custom-images).

## Step 1 - Start with a single image file in qcow2 or VHD format
{: #generic-os-single-image-qcow2}

If you're creating your own generic operating system custom image, begin with a single image file in qcow2 or VHD format. It might be helpful to begin with a cloud-enabled vendor image.

Kernel logs are important in debugging boot-related issues. To make sure that kernel logs are printed to the serial console, use the `console=ttyS0` kernel command line argument. In addition, the `nomodeset` and `nofb` kernel parameters are used to resolve display-related issues during the boot process for older kernels that were released before mid 2021. The newer kernels use the video mode setting into the kernel.
{: note}

## Step 2 - Set up the specific operating system
{: #generic-os-os-setup}

Set up the image with the specific operating system that you choose. Make sure that you set up the network drivers and the cloud-init or cloudbase-init options for the operating system.

- [Creating a custom Linux image](https://cloud.ibm.com/docs/vpc?topic=vpc-create-linux-custom-image&interface=ui&format=markdown)
- [Creating a custom Windows image](https://cloud.ibm.com/docs/vpc?topic=vpc-create-windows-custom-image&format=markdown)

## Step 3 - Verify the boot disk size
{: #generic-os-boot-disk-size}

Make sure that the image has a boot disk size of 10 - 250 GB. Images that are less than 10 GB are rounded up to 10 GB.

If you are customizing a virtual server to migrate from the Classic infrastructure, return to [Migrating a virtual server from the classic infrastructure](https://cloud.ibm.com/docs/vpc?topic=vpc-migrate-vsi-to-vpc&format=markdown#migrate-customize-image-vpc) and continue the migration steps.
{: tip}

## Step 5 - Upload image to IBM Cloud Object Storage
{: #generic-os-upload-image-icos}

Upload your image to IBM Cloud Object Storage. On the **Objects** page of your IBM Cloud&reg; Object Storage bucket, click **Upload**. You can use the Aspera high-speed transfer plug-in to upload images that are larger than 200 MB. For more information about uploading to IBM Cloud Object Storage, see [Upload data](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-upload&format=markdown).

## Next steps
{: #next-steps-creating-generic-os-image}

When your generic operating system custom image is created and available in IBM Cloud Object Storage, you can [import the custom image into VPC](https://cloud.ibm.com/docs/vpc?topic=vpc-importing-custom-images-vpc&format=markdown) and [Onboard a virtual server image for VPC](https://cloud.ibm.com/docs/account?topic=account-catalog-vsivpc-tutorial&interface=ui&format=markdown). Make sure that you [Granted access to IBM Cloud Object Storage to import images](https://cloud.ibm.com/docs/vpc?topic=vpc-object-storage-prereq&format=markdown).

If you plan to use a private catalog to manage your custom images, you must first import that image into IBM Cloud VPC, and then onboard the virtual server image into a private catalog.
{: note}

After the custom image imports, you can then use the custom image to deploy a virtual server in the IBM Cloud&reg; Virtual Private Cloud infrastructure.