Media penginstalan untuk aplikasi Windows sering disediakan sebagai file ISO, tetapi Compute Engine tidak memungkinkan Anda mengekspos file ISO sebagai drive DVD virtual ke instance VM.
Untuk mengakses konten file ISO di satu VM Windows, Anda dapat melakukan salah satu tindakan berikut:
Salin file ISO ke VM dan pasang secara lokal. Pendekatan ini berfungsi dengan baik jika Anda hanya perlu mengakses konten file ISO di satu instance VM.
Buat Persistent Disk dari file ISO dan pasang disk dalam mode hanya baca ke satu atau beberapa instance VM. Pendekatan ini berfungsi dengan baik jika beberapa VM memerlukan akses ke konten file ISO.
Dokumen ini menjelaskan cara membuat Persistent Disk dari file ISO dan memasang disk dalam mode hanya baca ke satu atau beberapa VM.
Sebelum memulai
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
- Set a default region and zone.
Menyiapkan file ISO
Jika file ISO tersedia secara publik melalui HTTP, Anda tidak perlu mendownload file ISO terlebih dahulu. Untuk menggunakan file ISO lokal, Anda dapat mengupload file ISO ke Cloud Storage.
URL HTTP
Di konsol Google Cloud , buka Cloud Shell dengan mengklik tombol Aktifkan Cloud Shell
.
Buat variabel lingkungan untuk URL download. URL dapat berupa URL HTTP atau HTTPS, tetapi harus dapat diakses secara anonim.
ISO_URL=https://example.com/big.iso
File ISO lokal
Di konsol Google Cloud , buat bucket Cloud Storage.
-
Bergantung pada ukuran file ISO, proses upload dapat memerlukan waktu beberapa menit atau jam.
Di Storage browser, buka objek yang diupload.
Di halaman Detail objek, salin URI objek. URI diawali dengan
gs://
.Buka Cloud Shell dengan mengklik tombol Activate Cloud Shell
.
Buat variabel lingkungan untuk URL download. Ganti
URI
dengan URI yang Anda salin.ISO_URL=URI
Buat disk yang berisi konten file ISO
Untuk menyalin konten file ISO ke disk baru, buat VM sementara, lalu buat image dari disk:
Dari Cloud Shell, tentukan nama yang ingin Anda tetapkan ke disk baru:
DISK_NAME=iso
Buat disk baru untuk menyalin konten file ISO:
gcloud compute disks create $DISK_NAME \ --size=10GB \ --zone=$(gcloud config get-value compute/zone)
Gunakan ukuran disk yang lebih besar jika file ISO Anda melebihi 9 GB.
Buat skrip startup untuk VM sementara. Skrip startup akan melakukan tindakan berikut:
- Format disk sekunder dengan sistem file NTFS.
- Download file ISO dari URL HTTP atau Cloud Storage yang Anda tentukan.
- Pasang file ISO dan salin isinya ke disk sekunder.
cat << "EOF" > startup.ps1 $DownloadDirectory = 'c:\download\' $ErrorActionPreference = 'Stop' $MetadataUrl = 'http://metadata.google.internal/computeMetadata/v1/instance' $DownloadUrl = (Invoke-RestMethod ` -Headers @{"Metadata-Flavor" = "Google"} ` -Uri "$MetadataUrl/attributes/iso") mkdir $DownloadDirectory\Source -Force Write-Host '== Formatting secondary disk... ===' -ForegroundColor Black -BackgroundColor Yellow Set-Disk -Number 1 -IsOffline $false Clear-Disk -Number 1 -RemoveData -Confirm:$false -ErrorAction SilentlyContinue Initialize-Disk -Number 1 -PartitionStyle MBR New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D -IsActive | Format-Volume -FileSystem 'NTFS' -Confirm:$false Write-Host '== Downloading ISO... =============' -ForegroundColor Black -BackgroundColor Yellow if ($DownloadUrl.StartsWith('gs:')) { & gcloud storage cp $DownloadUrl "$DownloadDirectory\Source\image.iso" | Out-Default } else { Import-Module BitsTransfer Start-BitsTransfer -Source $DownloadUrl -Destination "$DownloadDirectory\Source\image.iso" } Write-Host '== Mounting ISO... ================' -ForegroundColor Black -BackgroundColor Yellow Mount-DiskImage -ImagePath "$DownloadDirectory\Source\image.iso" -StorageType ISO Write-Host '== Copying ISO contents... ========' -ForegroundColor Black -BackgroundColor Yellow Copy-Item 'e:\*' 'd:\' -Force -Recurse -PassThru ` | Where-Object { -Not $_.PSIsContainer } ` | Set-ItemProperty -Name IsReadOnly -Value $False Write-Host '== Completed. =====================' -ForegroundColor Black -BackgroundColor Yellow Invoke-RestMethod ` -Headers @{'Metadata-Flavor'='Google'} ` -Method PUT ` -Uri "$MetadataUrl/guest-attributes/vm/ready" ` -Body true EOF
Buat VM Windows Server 2019 yang menggunakan skrip startup dan disk yang Anda buat sebelumnya:
gcloud compute instances create iso-copier \ --machine-type=n1-standard-2 \ --image-family=windows-2019-core \ --image-project=windows-cloud \ --disk=name=$DISK_NAME,auto-delete=no \ --metadata=enable-guest-attributes=true,iso=$ISO_URL \ --metadata-from-file=windows-startup-script-ps1=startup.ps1 \ --scopes=https://www.googleapis.com/auth/devstorage.read_only
VM memerlukan waktu sekitar 2 menit untuk dimulai. Bergantung pada ukuran file ISO, operasi penyalinan file dapat memerlukan waktu 5-15 menit lagi hingga selesai. Anda dapat mengamati progresnya dengan menjalankan perintah berikut:
gcloud compute instances tail-serial-port-output iso-copier \ --zone=$(gcloud config get-value compute/zone)
Tunggu hingga VM selesai menjalankan skrip startup:
until gcloud compute instances get-guest-attributes iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --query-path=vm/ready > /dev/null 2>&1 do sleep 5 && echo waiting for VM to finish... done
Matikan dan hapus VM:
gcloud compute instances delete iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Perhatikan bahwa disk sekunder tidak dihapus karena dipasang dengan parameter
auto-delete=no
.
Disk kini siap digunakan. Anda dapat memasang disk dalam mode hanya baca ke satu atau beberapa instance VM dalam zona yang sama.
Membagikan disk di seluruh zona dan region dengan membuat image
Agar konten file ISO tersedia di zona atau region lain, buat image Compute Engine:
Dari Cloud Shell, buat image dari disk yang Anda buat di bagian sebelumnya:
gcloud compute images create $DISK_NAME \ --source-disk=$DISK_NAME \ --source-disk-zone=$(gcloud config get-value compute/zone)
Pembersihan
Untuk menghindari timbulnya biaya lebih lanjut setelah menyelesaikan proses ini, Anda dapat menghapus resource yang Anda buat:
Hapus disk:
gcloud compute disks delete $DISK_NAME \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Hapus gambar:
gcloud compute images delete $DISK_NAME
Langkah berikutnya
Pelajari cara membuat gambar kustom.
Pelajari cara mengelola akses ke image kustom.
Pelajari lebih lanjut beban kerja Windows di Compute Engine.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-09-11 UTC.
-