Questa breve guida descrive cos'è il Virt-rescue , come salvare le macchine virtuali con l'utilità della riga di comando Virt-rescue nei sistemi operativi Linux.
Cos'è Virt-rescue?
Virt-soccorso è come un CD di ripristino, ma solo per macchine virtuali. Fornisce una semplice shell di ripristino e alcuni strumenti di ripristino per ispezionare e correggere i problemi in una macchina virtuale o nelle immagini del disco.
Si prega di notare che Virt-rescue è diverso da guestfish. Guestfish è una shell interattiva per modificare e apportare modifiche a macchine virtuali e immagini disco.
Al contrario, Virt-rescue è particolarmente adatto per il salvataggio di una macchina virtuale che non si è avviata. Se una VM non si avvia, puoi semplicemente avviare una shell di ripristino sulla VM o sull'immagine del disco utilizzando virt-rescue e provare a risolverlo utilizzando i comandi Linux standard.
Puoi utilizzare virt-rescue su qualsiasi file immagine disco o dispositivo, non solo su una macchina virtuale. Ad esempio, può essere utilizzato su unità USB, schede SD e dischi rigidi. Non richiede il permesso di root a meno che tu non abbia bisogno di root per aprire l'immagine del disco.
Virt-rescue fa parte di libguestfs che fornisce molte utilità da riga di comando per accedere e modificare le immagini del disco della macchina virtuale.
Salvataggio di macchine virtuali con Virt-rescue
Assicurati che le macchine virtuali siano spente. Non devi eseguire la shell di ripristino su nessun live macchine virtuali o immagini disco.
Per eseguire una shell di ripristino sulla macchina virtuale problematica, eseguire:
$ virt-rescue -d centos8-uefi -i
Sostituisci "centos8-uefi"
con il nome della tua macchina virtuale. Puoi trovare l'elenco delle macchine virtuali disponibili utilizzando "virsh list --all"
comando.
Puoi anche eseguire una shell di ripristino direttamente su qualsiasi immagine disco come di seguito:
$ virt-rescue -a CentOS_8_Server.img -i
Qui, -i
(--inspector
) viene utilizzato per montare automaticamente i filesystem delle macchine virtuali. Se non lo usi, dovrai montare manualmente i filesystem della macchina virtuale in una directory vuota chiamata /sysroot
.
Verrai ora inserito in una shell bash interattiva in cui puoi utilizzare molti normali comandi Linux per salvare le macchine virtuali.
[...] Welcome to virt-rescue, the libguestfs rescue shell. Note: The contents of / (root) are the rescue appliance. Use 'cd /sysroot' or 'chroot /sysroot' to see guest filesystems. groups: cannot find name for group ID 0 ><rescue> The virt-rescue escape key is ‘^]’. Type ‘^] h’ for help.

Dalla shell di ripristino, puoi iniziare a utilizzare i tradizionali comandi Linux per riparare la VM.
Come indicato sopra, i filesystem della macchina ospite sono montati in /sysroot
directory.
Puoi verificarlo con "ls"
comando:
><rescue> ls /sysroot/ bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
Per eseguire il chroot nel /sysroot
prima la directory:
><rescue> chroot /sysroot
Per uscire dalla shell di ripristino, digita exit
e premi invio o premi Ctrl+d
.
Avvia le VM in modalità di sola lettura
Come affermato in precedenza, non dovresti eseguire la shell di ripristino su nessuna macchina virtuale attiva. Ma se vuoi comunque farlo per qualsiasi motivo, usa --ro
opzione per utilizzare "virt-rescue"
in modo sicuro su un'immagine disco live o VM.
$ virt-rescue -d centos8-uefi -i --ro
Oppure,
$ virt-rescue -a CentOS_8_Server.img -i --ro
Il --ro
l'opzione avvierà la macchina virtuale o l'immagine del disco in modalità di sola lettura. È ideale per sperimentare macchine virtuali o immagini disco. Nessuna modifica verrà effettivamente salvata. Una volta usciti dalla shell, tutte le modifiche andranno perse!
Abilita l'accesso alla rete per le macchine virtuali
Se desideri scaricare file o pacchetti nella macchina virtuale, puoi utilizzare --network
opzione durante l'esecuzione del comando virt-rescue:
$ virt-rescue -d centos8-uefi -i --network
Oppure,
$ virt-rescue -a CentOS_8_Server.img -i --network
Questa opzione abilita l'accesso alla rete all'interno della shell di ripristino, così puoi scaricare materiale da Internet.
Virt-rescue ha molte opzioni. Per maggiori dettagli, fare riferimento alle pagine man:
$ man virt-rescue
Immagine in primo piano di Miguel Á. Padrino da Pexel .