Installationsmedien für Windows-Anwendungen werden häufig als ISO-Datei bereitgestellt. In Compute Engine können Sie aber eine ISO-Datei nicht als virtuelles DVD-Laufwerk für eine VM-Instanz bereitstellen.
So können Sie auf den Inhalt der ISO-Datei auf einer einzelnen Windows-VM zugreifen:
Kopieren Sie die ISO-Datei auf die VM und stellen Sie sie lokal bereit. Dieser Ansatz eignet sich gut, wenn Sie nur auf den Inhalt der ISO-Datei auf einer einzelnen VM-Instanz zugreifen müssen.
Erstellen Sie aus der ISO-Datei einen nichtflüchtigen Speicher und hängen Sie das Laufwerk im Lesemodus an eine oder mehrere VM-Instanzen an. Dieser Ansatz eignet sich gut, wenn mehrere VMs Zugriff auf den Inhalt der ISO-Datei benötigen.
In diesem Dokument wird beschrieben, wie Sie einen nichtflüchtigen Speicher aus der ISO-Datei erstellen und das Laufwerk im Lesemodus an eine oder mehrere VMs anhängen.
Hinweise
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud -Dienste und ‑APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
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.
Öffnen Sie in der Google Cloud -Konsole Cloud Shell. Klicken Sie dazu auf die Schaltfläche Cloud Shell aktivieren .
Erstellen Sie eine Umgebungsvariable für die Download-URL. Die URL kann eine HTTP- oder HTTPS-URL sein, muss aber anonym zugänglich sein.
ISO_URL=https://example.com/big.iso
Erstellen Sie in der Google Cloud -Konsole einen Cloud Storage-Bucket.
-
Je nach Größe der ISO-Datei kann der Upload einige Minuten oder Stunden dauern.
Rufen Sie im Storage-Browser das hochgeladene Objekt auf.
Kopieren Sie auf der Seite Objektdetails den URI des Objekts. Der URI beginnt mit
gs://
.Öffnen Sie Cloud Shell. Klicken Sie hierzu auf die Schaltfläche Cloud Shell aktivieren .
Erstellen Sie eine Umgebungsvariable für die Download-URL. Ersetzen Sie
URI
durch den kopierten URI.ISO_URL=URI
Geben Sie in Cloud Shell den Namen ein, den Sie dem neuen Laufwerk zuweisen möchten:
DISK_NAME=iso
Erstellen Sie ein neues Laufwerk, auf das der Inhalt der ISO-Dateien kopiert werden soll:
gcloud compute disks create $DISK_NAME \ --size=10GB \ --zone=$(gcloud config get-value compute/zone)
Falls Ihre ISO-Datei größer als 9 GB ist, verwenden Sie ein größeres Laufwerk.
Erstellen Sie ein Startskript für die temporäre VM. Das Startskript führt die folgenden Aktionen aus:
- Formatieren Sie das sekundäre Laufwerk mit dem NTFS-Dateisystem.
- Laden Sie die ISO-Datei von der angegebenen HTTP- oder Cloud Storage-URL herunter.
- Stellen Sie die ISO-Datei bereit und kopieren Sie ihren Inhalt auf das sekundäre Laufwerk.
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
Erstellen Sie eine Windows Server 2019-VM, die das Startskript und das Laufwerk verwendet, das Sie zuvor erstellt haben:
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
Der Start der VM dauert etwa zwei Minuten. Je nach Größe der ISO-Datei kann es weitere fünf bis fünfzehn Minuten dauern, bis der Kopiervorgang abgeschlossen ist. Mit dem folgenden Befehl können Sie den Fortschritt beobachten:
gcloud compute instances tail-serial-port-output iso-copier \ --zone=$(gcloud config get-value compute/zone)
Warten Sie, bis die VM das Startskript ausgeführt hat:
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
Fahren Sie die VM herunter und löschen Sie sie:
gcloud compute instances delete iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Beachten Sie, dass das sekundäre Laufwerk nicht gelöscht wird, da es mit dem Parameter
auto-delete=no
bereitgestellt wurde.Erstellen Sie in Cloud Shell ein Image von dem Laufwerk, das Sie im vorherigen Abschnitt erstellt haben:
gcloud compute images create $DISK_NAME \ --source-disk=$DISK_NAME \ --source-disk-zone=$(gcloud config get-value compute/zone)
Löschen Sie das Laufwerk:
gcloud compute disks delete $DISK_NAME \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Löschen Sie das Image:
gcloud compute images delete $DISK_NAME
Weitere Informationen zum Erstellen benutzerdefinierter Images
Weitere Informationen zu Windows-Arbeitslasten in Compute Engine
ISO-Datei vorbereiten
Wenn die ISO-Datei öffentlich über HTTP verfügbar ist, müssen Sie sie nicht zuerst herunterladen. Wenn Sie eine lokale ISO-Datei verwenden möchten, können Sie die ISO-Datei in Cloud Storage hochladen.
HTTP-URL
Lokale ISO-Datei
Laufwerk mit dem Inhalt der ISO-Datei erstellen
Wenn Sie den Inhalt der ISO-Datei auf ein neues Laufwerk kopieren möchten, erstellen Sie erst eine temporäre VM und dann ein Image von dem Laufwerk:
Das Laufwerk kann jetzt verwendet werden. Sie können das Laufwerk im Lesemodus an eine oder mehrere VM-Instanzen innerhalb derselben Zone anhängen.
Laufwerk für Zonen und Regionen freigeben, indem ein Image erstellt wird
Wenn Sie den Inhalt der ISO-Datei in anderen Zonen oder Regionen verfügbar machen möchten, sollten Sie ein Compute Engine-Image erstellen:
Bereinigen
Damit Ihnen nach Abschluss des Vorgangs keine weiteren Kosten entstehen, können Sie die erstellten Ressourcen löschen:
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-01-14 (UTC).
-