가상 머신 (VM) 인스턴스를 만들 때는 해당 VM의 부팅 디스크도 만들어야 합니다. 공개 이미지 또는 커스텀 이미지를 사용할 수 있습니다. VM 인스턴스를 만들면 GDC는 자동으로 부팅 영구 디스크를 만듭니다.
인스턴스에 데이터 저장 디스크가 추가로 필요한 경우 VM에 영구 디스크를 추가합니다.
이 페이지에 설명된 절차를 사용하여 나중에 VM을 만드는 데 사용할 수 있는 부팅 디스크를 만듭니다.
시작하기 전에
gdcloud 명령줄 인터페이스 (CLI) 명령어를 사용하려면 gdcloud CLI를 다운로드, 설치, 구성해야 합니다.
GDC 오프라인 어플라이언스의 모든 명령어는 gdcloud 또는 kubectl CLI를 사용하며 운영체제 (OS) 환경이 필요합니다.
이 안내에서 경로를 사용하여 MANAGEMENT_API_SERVER{"</var>"}}을 바꿉니다.
권한 및 액세스 요청
이 페이지에 나열된 작업을 수행하려면 VM 디스크에 액세스할 수 있어야 합니다.
단계에 따라 VM이 있는 프로젝트의 네임스페이스에서 확인하거나 프로젝트 IAM 관리자가 프로젝트 VirtualMachine 관리자 (project-vm-admin) 역할을 할당하도록 합니다.
GDC 콘솔 또는 gdcloud CLI를 사용하는 VM 작업의 경우 프로젝트 IAM 관리자에게 프로젝트 VirtualMachine 관리자 역할과 프로젝트 뷰어 (project-viewer) 역할을 모두 할당해 달라고 요청하세요.
이미지에서 부팅 디스크 만들기
인스턴스 만들기 절차와 별도로 독립 부팅 영구 디스크를 만들어 나중에 인스턴스에 연결할 수 있습니다. 이 섹션에서는 GDC 제공 OS 이미지 또는 커스텀 OS 이미지에서 부팅 디스크를 만드는 방법을 보여줍니다.
GDC 제공 이미지에서 부팅 디스크 만들기
GDC 제공 이미지를 사용하여 부팅 디스크를 만들기 전에 사용 가능한 이미지 목록을 검토하세요. 그런 다음 제공된 이미지로 부팅 디스크를 만듭니다.
gdcloud
사용 가능한 모든 이미지와 최소 디스크 크기를 나열합니다.
gdcloudcomputeimageslist
이 명령어에는 GDC 에어 갭 어플라이언스 제공 이미지와 맞춤 이미지가 모두 포함됩니다. vm-system 네임스페이스에서 하나를 선택합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eCreating a virtual machine (VM) requires a boot disk, which can be either a public image or a custom image.\u003c/p\u003e\n"],["\u003cp\u003eBoot disks can be created independently of VM creation and subsequently attached to a VM instance, offering flexibility in managing storage.\u003c/p\u003e\n"],["\u003cp\u003eYou can create a boot disk using either a GDC-provided image, which are listed using the \u003ccode\u003egdcloud compute images list\u003c/code\u003e command or through \u003ccode\u003ekubectl\u003c/code\u003e, or a custom image, belonging exclusively to your project, which requires having certain IAM roles.\u003c/p\u003e\n"],["\u003cp\u003eWhen creating a boot disk, the size of the disk must be at least the \u003ccode\u003eminimumDiskSize\u003c/code\u003e specified by the chosen image, and you will need to know the path of the \u003ccode\u003eADMIN_KUBECONFIG\u003c/code\u003e file.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egdcloud\u003c/code\u003e or \u003ccode\u003ekubectl\u003c/code\u003e command-line tools are used to create boot disks and to list the available images.\u003c/p\u003e\n"]]],[],null,["# Create a customized boot disk\n\nWhen you create a virtual machine (VM) instance, you must also create a boot\ndisk for that VM. You can use either a public image or a custom image. GDC\nautomatically creates a boot persistent disk when you\n[create a VM instance](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/create-a-vm/create-and-start).\nIf you require additional data storage disks for your instances,\n[add a persistent disk to your VM](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/manage-storage/add-a-vm-disk).\n\nUse the procedures described on this page to create boot disks that you can\nuse later to create VMs.\n\nBefore you begin\n----------------\n\nTo use `gdcloud` command-line interface (CLI) commands, ensure that you have downloaded, installed,\nand configured the [`gdcloud` CLI](/distributed-cloud/hosted/docs/latest/appliance/resources/gdcloud-overview).\nAll commands for GDC air-gapped appliance use the `gdcloud` or\n`kubectl` CLI, and require an operating system (OS) environment.\n\n### Get the kubeconfig file path\n\nTo run commands against the Management API server, ensure you have the following\nresources:\n\n1. Locate the Management API server name, or ask your Platform Administrator (PA)\n what the server name is.\n\n2. [Sign in and generate](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/iam/sign-in#cli) the\n kubeconfig file for the Management API server if you don't have one.\n\n3. Use the path to replace \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER{\"</var>\"}}\u003c/var\u003e in these instructions.\n\nRequest permissions and access\n------------------------------\n\nTo perform the tasks listed in this page, you must have access to VM disks.\nFollow the steps to either\n[verify](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/preparation)\nor have your Project IAM Admin\n[assign](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/preparation#grant-user-access-vm-resources)\nyou the Project VirtualMachine Admin (`project-vm-admin`) role in the namespace\nof the project where the VM resides.\n\nFor VM operations using the GDC console or the gdcloud CLI,\nrequest your Project IAM Admin to assign you both the\nProject VirtualMachine Admin role and the Project Viewer (`project-viewer`)\nrole.\n\nCreate a boot disk from an image\n--------------------------------\n\nYou can create a standalone, boot, persistent disk outside of instance creation\nand attach it to an instance afterwards. This section shows how to create a boot\ndisk from either a\n[GDC-provided OS image](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/create-a-vm/create-and-start#create-vm-from-provided-image)\nor a\n[custom OS image](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/create-a-vm/create-and-start#create-vm-from-custom).\n\n### Create a boot disk from a GDC-provided image\n\nBefore you create a boot disk by using a GDC-provided image,\nreview the list of available images. Then create a boot disk with the provided image. \n\n### gdcloud\n\n1. List all available images and their minimum disk size:\n\n gdcloud compute images list\n\n This command includes both GDC air-gapped appliance-provided and custom\n images. Choose either one in the `vm-system` namespace.\n2. Select a GDC air-gapped appliance-provided image to create the VM disk:\n\n gdcloud compute disks create \u003cvar translate=\"no\"\u003eBOOT_DISK_NAME\u003c/var\u003e \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e \\\n --size=\u003cvar translate=\"no\"\u003eDISK_SIZE\u003c/var\u003e \\\n --image=\u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e \\\n --image-project=vm-system\n\n Replace the variables using the following definitions:\n\n### kubectl\n\n1. List all available GDC-provided images:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system\n\n2. Get the `minimumDiskSize` of a specific GDC-provided\n image. The size of the created customized boot disk must be at least the\n `minimumDiskSize`:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system \\\n \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e -ojsonpath='{.spec.minimumDiskSize}'\n\n3. Create a `VirtualMachineDisk` object:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e apply -n \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e -f - \u003c\u003cEOF\n apiVersion: virtualmachine.gdc.goog/v1\n kind: VirtualMachineDisk\n metadata:\n name: \u003cvar translate=\"no\"\u003eBOOT_DISK_NAME\u003c/var\u003e\n spec:\n source:\n image:\n name: \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e\n namespace: vm-system\n size: \u003cvar translate=\"no\"\u003eDISK_SIZE\u003c/var\u003e\n EOF\n\n Replace the variables using the following definitions:\n\n### Create a boot disk from a custom image\n\nA custom image belongs exclusively to your project. To create a VM with a\ncustom boot disk image, if the image doesn't already exist in your project then\nyou must [create one](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/create-custom-images/create-custom-images).\n\nSet up the necessary [IAM roles](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/preparation)\nto access custom images in your project if you haven't done so yet. Then proceed\nwith these instructions. \n\n### gdcloud\n\n1. List all custom images and their minimum disk size:\n\n gdcloud compute images list \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e \\\n\n2. Select a custom image to create the VM disk:\n\n gdcloud compute disks create \u003cvar translate=\"no\"\u003eBOOT_DISK_NAME\u003c/var\u003e \\\n --project=\u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e \\\n --size=\u003cvar translate=\"no\"\u003eDISK_SIZE\u003c/var\u003e \\\n --image=\u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e \\\n --image-project=\u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e\n\n Replace the variables using the following definitions:\n\n### kubectl\n\n1. List all custom images:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n get virtualmachineimages.virtualmachine.gdc.goog --namespace \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e\n\n2. Get the `minimumDiskSize` of a specific customized image. The size of the\n created customized boot disk must be at least the `minimumDiskSize`:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system \\\n \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e -ojsonpath='{.spec.minimumDiskSize}'\n\n3. Create a `VirtualMachineDisk` object:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n apply --namespace \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e -f - \u003c\u003cEOF\n apiVersion: virtualmachine.gdc.goog/v1\n kind: VirtualMachineDisk\n metadata:\n name: \u003cvar translate=\"no\"\u003eBOOT_DISK_NAME\u003c/var\u003e\n spec:\n source:\n image:\n name: \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e\n namespace: \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e\n size: \u003cvar translate=\"no\"\u003eDISK_SIZE\u003c/var\u003e\n EOF\n\n Replace the variables, using the following definitions:\n\nTo replace a boot disk, see the [Replace a boot disk](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/vms/manage-vm-boot-disks/replace-a-boot-disk)\npage."]]