Los medios de instalación para las aplicaciones de Windows suelen proporcionarse como archivos ISO, pero Compute Engine no permite exponer un archivo ISO como una unidad de DVD virtual a una instancia de VM.
Para acceder al contenido del archivo ISO en una sola VM de Windows, puedes realizar una de las siguientes acciones:
Copia el archivo ISO en la VM y actívalo de manera local. Este método funciona bien si solo necesitas acceder al contenido del archivo ISO en una sola instancia de VM.
Crea un Persistent Disk desde el archivo ISO y adjunta el disco en modo de solo lectura a una o más instancias de VM. Este método funciona bien si varias VM necesitan acceder al contenido del archivo ISO.
En este documento, se describe cómo puedes crear un disco persistente a partir del archivo ISO y conectar el disco en modo de solo lectura a una o más VM.
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Trusted Cloud by S3NS .
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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
-
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI ejecutando el siguiente comando:
gcloud init
- Set a default region and zone.
Prepara el archivo ISO
Si el archivo ISO está disponible de forma pública por medio de HTTP, no es necesario que primero descargues el archivo ISO. Para usar un archivo ISO local, puedes subir el archivo ISO a Cloud Storage.
URL HTTP
En la Trusted Cloud consola, haz clic en el botón Activar Cloud Shell
para abrir Cloud Shell.
Crea una variable de entorno para la URL de descarga. La URL puede ser una URL HTTP o una URL HTTPS, pero se debe poder acceder a ella de forma anónima.
ISO_URL=https://example.com/big.iso
Archivo ISO local
En la consola de Trusted Cloud , crea un bucket de Cloud Storage.
-
Según el tamaño del archivo ISO, la carga puede tomar varios minutos o incluso horas.
En el navegador de Storage, navega al objeto subido.
En la página Detalles del objeto, copia el URI del objeto. El URI comienza con
gs://
.Abre Cloud Shell haciendo clic en el botón Activar Cloud Shell
.
Crea una variable de entorno para la URL de descarga. Reemplaza
URI
por el URI que copiaste.ISO_URL=URI
Crea un disco con el contenido del archivo ISO
Para copiar el contenido del archivo ISO en un disco nuevo, crea una VM temporal y, luego, crea una imagen a partir del disco:
En Cloud Shell, especifica el nombre que deseas asignar al disco nuevo:
DISK_NAME=iso
Crea un disco nuevo en el que se copiará el contenido de los archivos ISO:
gcloud compute disks create $DISK_NAME \ --size=10GB \ --zone=$(gcloud config get-value compute/zone)
Usa un tamaño de disco más grande si el archivo ISO supera los 9 GB.
Crea una secuencia de comandos de inicio para la VM temporal. La secuencia de comandos de inicio realiza las siguientes acciones:
- Da formato al disco secundario con el sistema de archivos NTFS.
- Descarga el archivo ISO de la URL HTTP o la URL de Cloud Storage que especificaste.
- Activa el archivo ISO y copia el contenido en el disco secundario.
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 de Windows Server 2019 que use la secuencia de comandos de inicio y el disco que creaste anteriormente:
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
La VM toma unos 2 minutos en iniciarse. Según el tamaño del archivo ISO, la operación de copia de archivo puede tomar entre 5 y 15 minutos en completarse. Para observar el progreso, ejecuta el siguiente comando:
gcloud compute instances tail-serial-port-output iso-copier \ --zone=$(gcloud config get-value compute/zone)
Espera a que la VM termine de ejecutar la secuencia de comandos de inicio:
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
Apaga y borra la VM:
gcloud compute instances delete iso-copier \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Ten en cuenta que el disco secundario no se borra porque se activó con el parámetro
auto-delete=no
.
El disco ya está listo para usarse. Puedes conectar el disco en modo de solo lectura a una o más instancias de VM dentro de la misma zona.
Crea una imagen para compartir el disco entre zonas y regiones
Para que el contenido del archivo ISO esté disponible en otras zonas o regiones, crea una imagen de Compute Engine:
Desde Cloud Shell, crea una imagen a partir del disco que creaste en la sección anterior:
gcloud compute images create $DISK_NAME \ --source-disk=$DISK_NAME \ --source-disk-zone=$(gcloud config get-value compute/zone)
Limpia
Para evitar que se generen costos adicionales después de completar este proceso, puedes borrar los recursos que creaste:
Borra el disco:
gcloud compute disks delete $DISK_NAME \ --zone=$(gcloud config get-value compute/zone) \ --quiet
Borra la imagen:
gcloud compute images delete $DISK_NAME
¿Qué sigue?
Obtén más información para crear imágenes personalizadas.
Obtén información para administrar el acceso a imágenes personalizadas.
Obtén más información sobre las cargas de trabajo de Windows en Compute Engine.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-08 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]],[]] -