Se la VM Linux non è accessibile per qualsiasi motivo, puoi provare a recuperarla seguendo i passaggi che seguono.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per recuperare una VM, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) -
VM che utilizzano un account di servizio:
Utente account di servizio (
roles/iam.serviceAccountUser
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per recuperare una VM. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per recuperare una VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
nel progetto -
compute.disks.create
nel progetto -
compute.instances.get
nel progetto -
compute.disks.createSnapshot
sui dischi -
compute.instances.attachDisk
sulla nuova VM -
compute.disks.use
su disco -
compute.instances.start
su una VM nuova e inaccessibile -
compute.instances.stop
su una VM nuova e inaccessibile
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Recupera una VM
Se non riesci a connetterti alla VM o se il disco di avvio è pieno, devi creare una VM temporanea per recuperare la VM inaccessibile.
- (Facoltativo) Arresta la VM inaccessibile.
- Crea uno snapshot dal disco di avvio della VM inaccessibile. Se il file system principale è suddiviso su più dischi, devi acquisire lo snapshot di ogni disco.
- Crea una VM temporanea utilizzando un'immagine pubblica più simile al sistema operativo della VM inaccessibile. In alcuni casi, i criteri per l'utilizzo di immagini attendibili potrebbero impedirti di creare dischi di avvio da immagini pubbliche. In questi casi, devi chiedere a un amministratore di rimuovere temporaneamente questa limitazione prima di poter creare una VM di recupero. Per ulteriori informazioni, consulta Impostare limitazioni di accesso alle immagini.
Per ciascuno degli snapshot dei dischi di avvio della VM inaccessibile che hai creato in precedenza, crea un nuovo disco dallo snapshot e collegalo alla VM di recupero nel seguente modo:
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome della VM temporanea che hai creato.
Fai clic su
Modifica.In Dischi aggiuntivi, fai clic su
Aggiungi nuovo disco e poi:- Aggiungi il nome del disco, ad esempio my-recovery-disk
- In Tipo di origine, seleziona la scheda Snapshot.
- Nel menu a discesa Snapshot di origine, seleziona lo snapshot della VM di origine che hai creato in precedenza in questi passaggi.
- Fai clic su Fine.
Fai clic su Salva.
Connettiti alla VM temporanea tramite SSH.
Identifica il nome di ciascuno dei dischi che hai collegato in precedenza alla VM eseguendo il seguente comando:
lsblk -d -o NAME,SERIAL
L'output è simile al seguente:
NAME SERIAL sda rescue-vm sdb my-recovery-disk
In questo esempio,
rescue-vm
è il disco di avvio della VM di recupero emy-recovery-disk
è il disco di avvio dello snapshot della VM inaccessibile. Prendi nota delNAME
della VM inaccessibile da utilizzare nel passaggio successivo.Per ciascuno dei dischi collegati in precedenza alla VM, svolgi quanto segue:
Identifica il file system di ogni partizione eseguendo il seguente comando:
fdisk -l /dev/NAME -o Device,Size,Type
Sostituisci
NAME
con il nome del disco di avvio della VM inaccessibile del passaggio precedente. In questo esempio, il nome saràsdb
.L'output è simile al seguente:
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: PersistentDisk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: B31430F1-F041-4555-96B9-B2F43DC057AD Device Size Type /dev/sdb1 2M BIOS boot /dev/sdb2 20M EFI System /dev/sdb3 10G Linux filesystem
La colonna
Type
elenca il file system di ogni partizione. Se il tipo di file system non è presente per alcune partizioni, esegui il seguente comando:file -sL /dev/PARTITION_NAME
Sostituisci
NAME
con il nome della partizione.L'output varia a seconda del tipo di file system:
Nessun file system: se l'output mostra solo
data
, la partizione non contiene un file system. Output di esempio:/dev/sdb1: data
File system EFI: se l'output descrive un settore di avvio DOS/MBR, la partizione ha un file system EFI. Output di esempio:
dev/sdb2: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 40960 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 40, sectors/ track 32, heads 64, serial number 0xf2af2664, label: "EFI ", FAT (16 bit)
File system Linux: se l'output descrive i dati del file system, la partizione è un file system Linux. Output di esempio:
/dev/sdb3: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
Prendi nota del nome della partizione del file system Linux.
Crea un punto di montaggio in
/rescue
:sudo mkdir /rescue
Monta la partizione del file system Linux su
/rescue
:sudo mount PARTITION_NAME /rescue
Sostituisci PARTITION_NAME con il nome del file system Linux che hai annotato in precedenza.
Se vuoi modificare la directory principale del file system utilizzando il comando
chroot
, devi montare anche il file system virtuale e i dispositivi eseguendo i seguenti comandi:sudo mount -t proc /proc /rescue/proc sudo mount -t sysfs /sys /rescue/sys sudo mount -o bind /dev /rescue/dev sudo mount -o bind /dev/pts /rescue/dev/pts sudo mount -o bind /run /rescue/run
Il file system del disco di avvio inaccessibile è ora montato in
/rescue
. Puoi navigare nel file system, modificare i file di configurazione, risolvere i problemi o recuperare i dati.
Ripristina le modifiche e riavvia la VM inaccessibile
Una volta risolto il problema o recuperati i dati, devi ripristinare la VM effettiva. Per ripristinare la VM originale:
Smonta il disco aggiuntivo montato su
/rescue
nella VM temporanea:cd ~ sudo umount /rescue
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona la VM temporanea che hai creato.
Fai clic su
Modifica.In Dischi aggiuntivi, fai clic su
per il disco creato nei passaggi precedenti per scollegare il disco aggiuntivo dalla VM temporanea.Fai clic su Salva.
Vai alla pagina Istanze VM nella console Google Cloud.
Se la VM inaccessibile è ancora in esecuzione, arrestala.
Fai clic sul nome della VM che hai appena interrotto e poi su
Modifica.In Disco di avvio, fai clic su
Scollega disco di avvio per scollegare il disco di avvio esistente dalla VM inaccessibile.Poi, fai clic su Recupero di una VM in questa pagina.
CONFIGURA BOOT per collegare il disco che hai creato e riparato in precedenza in- Nella sezione Disco di avvio, fai clic sulla scheda Dischi esistenti.
- Nell'elenco a discesa, seleziona il disco creato nella sezione precedente, ad esempio
my-recovery-disk
. - Fai clic su Seleziona e poi su Salva.
Ora dovresti essere in grado di connetterti alla VM tramite SSH.