Se la tua VM Linux non è accessibile per qualsiasi motivo, puoi provare a recuperarla seguendo questi passaggi.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per ripristinare una VM, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
VM che utilizzano un account di servizio:
Service Account User (
roles/iam.serviceAccountUser
)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per ripristinare una VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per ripristinare una VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
sul progetto -
compute.disks.create
sul progetto -
compute.instances.get
sul progetto -
compute.disks.createSnapshot
sui dischi -
compute.instances.attachDisk
sulla nuova VM -
compute.disks.use
su disco -
compute.instances.start
sulla VM nuova e inaccessibile -
compute.instances.stop
sulla 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 root è suddiviso su più dischi, devi creare uno snapshot di ogni disco.
- Crea una VM temporanea utilizzando un'immagine pubblica più vicina al sistema operativo della VM inaccessibile. In alcuni casi, un criteri per l'utilizzo di immagini attendibili potrebbe 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 ripristino. Per saperne di più, consulta Impostare i vincoli di accesso alle immagini.
Per ognuno 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 ripristino procedendo 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 fai quanto segue:- 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 ripristino emy-recovery-disk
è il disco di avvio dello snapshot della VM inaccessibile. Prendi nota diNAME
della VM inaccessibile da utilizzare nel passaggio successivo.Per ciascuno dei dischi collegati in precedenza alla VM, segui questi passaggi:
Identifica il file system di ogni partizione eseguendo questo 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 sarebbesdb
.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 manca per alcune partizioni, esegui questo 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 radice del file system utilizzando il comando
chroot
, devi anche montare 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 su
/rescue
. Puoi navigare nel file system, modificare i file di configurazione, risolvere i problemi o recuperare i dati.
Annulla le modifiche e riavvia la VM inaccessibile
Dopo aver risolto il problema o recuperato i dati, devi ripristinare la VM effettiva. Per ripristinare la VM originale:
Smonta il disco aggiuntivo montato in
/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 scollegare il disco creato nei passaggi precedenti 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 arrestato, quindi fai clic su
Modifica.In Disco di avvio, fai clic su
Scollega disco di avvio per scollegare il disco di avvio esistente dalla VM inaccessibile.Successivamente, fai clic su Recuperare una VM in questa pagina.
CONFIGURA DISCO DI AVVIO per collegare il disco che hai creato e corretto 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 utilizzando SSH.