I supporti di installazione per le applicazioni Windows vengono spesso forniti come file ISO, ma Compute Engine non ti consente di esporre un file ISO come unità DVD virtuale a un'istanza VM.
Per accedere ai contenuti del file ISO su una singola VM Windows, puoi svolgere una delle seguenti operazioni:
Copia il file ISO nella VM e montalo localmente. Ti consigliamo di adottare questo approccio se devi accedere solo ai contenuti del file ISO su una singola istanza VM.
Crea un disco permanente dal file ISO e collegalo in modalità di sola lettura a una o più istanze VM. Ti consigliamo di adottare questo approccio se più VM devono accedere ai contenuti del file ISO.
Questo documento descrive come creare un disco permanente dal file ISO e collegarlo in modalità di sola lettura a una o più VM.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
- Set a default region and zone.
Prepara il file ISO
Se il file ISO è disponibile pubblicamente tramite HTTP, non devi scaricarlo prima. Per utilizzare un file ISO locale, puoi caricarlo su Cloud Storage.
URL HTTP
Nella console Trusted Cloud , apri Cloud Shell facendo clic sul pulsante Attiva Cloud Shell
.
Crea una variabile di ambiente per l'URL di download. L'URL può essere un URL HTTP o HTTPS, ma deve essere accessibile in modo anonimo.
ISO_URL=https://example.com/big.iso
File ISO locale
Nella console Trusted Cloud , crea un bucket Cloud Storage.
-
A seconda delle dimensioni del file ISO, il caricamento può richiedere diversi minuti o ore.
Nel browser di storage, vai all'oggetto caricato.
Nella pagina Dettagli oggetto, copia l'URI dell'oggetto. L'URI inizia con
gs://
.Per aprire Cloud Shell, fai clic sul pulsante Attiva Cloud Shell
.
Crea una variabile di ambiente per l'URL di download. Sostituisci
URI
con l'URI che hai copiato.ISO_URL=URI
Crea un disco contenente i contenuti del file ISO
Per copiare i contenuti del file ISO su un nuovo disco, crea prima una VM temporanea e successivamente un'immagine dal disco:
Da Cloud Shell, specifica il nome da assegnare al nuovo disco:
DISK_NAME=iso
Crea un nuovo disco su cui copiare i contenuti dei file ISO:
gcloud compute disks create $DISK_NAME \ --size=10GB \ --zone=$(gcloud config get-value compute/zone)
Se il file ISO supera i 9 GB, utilizza una dimensione del disco maggiore.
Crea uno script di avvio per la VM temporanea. Lo script di avvio esegue queste azioni:
- Formatta il disco secondario con il file system NTFS.
- Scarica il file ISO dall'URL HTTP o Cloud Storage specificato.
- Monta il file ISO e copiane i contenuti sul disco secondario.
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
Crea una VM Windows Server 2019 che utilizzi lo script di avvio e il disco che hai creato in precedenza:
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
L'avvio della VM richiede circa 2 minuti. A seconda delle dimensioni del file ISO, potrebbero essere necessari altri 5-15 minuti per completare l'operazione di copia del file. Puoi osservare l'avanzamento eseguendo questo comando:
gcloud compute instances tail-serial-port-output iso-copier \ --zone=$(gcloud config get-value compute/zone)
Attendi che la VM finisca di eseguire lo script di avvio:
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
Arresta ed elimina la VM:
gcloud compute instances delete iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Tieni presente che il disco secondario non può essere eliminato perché è stato montato con il parametro
auto-delete=no
.
Il disco è ora pronto per essere utilizzato. Puoi collegare il disco in modalità di sola lettura a una o più istanze VM all'interno della stessa zona.
Condividi il disco tra zone e regioni creando un'immagine
Per rendere disponibili i contenuti del file ISO in altre zone o regioni, crea un'immagine Compute Engine:
Da Cloud Shell, genera un'immagine dal disco creato nella sezione precedente:
gcloud compute images create $DISK_NAME \ --source-disk=$DISK_NAME \ --source-disk-zone=$(gcloud config get-value compute/zone)
Esegui la pulizia
Per evitare di incorrere in ulteriori costi dopo aver completato questa procedura, puoi eliminare le risorse che hai creato:
Elimina il disco:
gcloud compute disks delete $DISK_NAME \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Elimina l'immagine:
gcloud compute images delete $DISK_NAME
Passaggi successivi
Scopri come creare immagini personalizzate.
Scopri come gestire l'accesso alle immagini personalizzate.
Scopri di più sui workload Windows su Compute Engine.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-08 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-08 UTC."],[[["Compute Engine cannot directly expose an ISO file as a virtual DVD drive to a VM instance, but provides two methods to access the ISO contents: locally mounting the file on a single VM or creating a Persistent Disk for read-only access by multiple VMs."],["To prepare an ISO file for use, it can either be accessed publicly via HTTP or uploaded to Cloud Storage if it's a local file."],["A temporary VM is used to copy the ISO file contents onto a new disk, which involves formatting the disk, downloading the ISO, mounting it, and copying its contents, handled by a startup script."],["After the contents are copied, the temporary VM can be shut down and deleted, and the new Persistent Disk can then be attached in read-only mode to one or more VM instances."],["To extend the availability of the ISO contents to other zones or regions, you can create a Compute Engine image from the disk."]]],[]] -