Media penginstalan untuk aplikasi Windows sering kali disediakan sebagai file ISO, tetapi Compute Engine tidak mengizinkan 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 hal 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 melampirkan disk dalam mode hanya baca ke satu atau beberapa VM.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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
Di konsol Google Cloud, buat bucket Cloud Storage.
-
Bergantung pada ukuran file ISO, upload dapat memerlukan waktu beberapa menit atau jam.
Di Storage browser, buka objek yang diupload.
Di halaman Detail objek, salin URI objek. URI dimulai dengan
gs://
.Buka Cloud Shell dengan mengklik tombol Aktifkan Cloud Shell .
Buat variabel lingkungan untuk URL download. Ganti
URI
dengan URI yang Anda salin.ISO_URL=URI
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 kontennya 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, perlu waktu 5-15 menit lagi hingga operasi penyalinan file 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 disk tersebut dipasang dengan parameter
auto-delete=no
.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)
Hapus disk:
gcloud compute disks delete $DISK_NAME \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Menghapus gambar:
gcloud compute images delete $DISK_NAME
Pelajari cara membuat image kustom.
Pelajari cara mengelola akses ke image kustom.
Pelajari lebih lanjut beban kerja Windows di Compute Engine.
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
File ISO lokal
Membuat disk yang berisi konten file ISO
Untuk menyalin konten file ISO ke disk baru, buat VM sementara, lalu buat image dari disk:
Disk kini siap digunakan. Anda dapat melampirkan 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:
Pembersihan
Agar tidak menimbulkan biaya lebih lanjut setelah menyelesaikan proses ini, Anda dapat menghapus resource yang Anda buat:
Langkah selanjutnya
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 2024-12-22 UTC.
-