GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come utilizzare gli strumenti libguestfs per modificare le immagini del disco della macchina virtuale (VM) in CentOS/RHEL/Fedora?

Domanda: Per errore avevo disabilitato l'account "root" in una macchina virtuale CentOS in esecuzione in VMWare. Successivamente, ho provato tutti i modi possibili per recuperare l'account "root" e alla fine ho deciso di riavviare la VM in una modalità utente singolo. Sfortunatamente, la VM non è riuscita ad avviarsi in modalità utente singolo e i messaggi di errore indicavano che il processo di avvio si aspetta root account e il processo si è bloccato a tempo indeterminato. Di seguito è riportato lo screenshot che spiega lo scenario:

Per risolvere il problema, devo modificare in qualche modo /etc/passwd file e abilita l'account root. Per questo, ho bisogno dell'immagine del disco della macchina virtuale:nel mio caso, la VM era in esecuzione su VMWare, quindi ho bisogno di vmdk file.

Soluzione:

In questo tutorial ti mostrerò come utilizzare gli strumenti libguestfs per accedere e modificare il file immagine disco della macchina virtuale (VM). libguestfs è una libreria C con un set di strumenti per visualizzare e modificare i file all'interno dei guest, apportare modifiche alle VM, monitorare l'utilizzo del disco, clonare VM, formattare dischi, ridimensionare i dischi e molto altro. Lo strumento è in grado di leggere l'immagine del disco della VM da CD, dischi USB e anche in remoto tramite SSH.

Prima di usare libguestfs strumenti, preparati con il file immagine del disco della tua macchina virtuale. libguestfs supporta anche sistemi proprietari come VMware e Hyper-V.

Installa strumenti libguestfs:

Su CentOS/Fedora/RHEL:

sudo yum install libguestfs-tools

Su Debian/Ubuntu:

sudo apt-get install libguestfs-tools

Come ho detto prima, gli strumenti libguestfs sono dotati di molti comandi come guestfish, guestmount, guestunmount, virt-alignment-scan, virt-builder, virt-cat, virt-copy, virt-edit, virt-diff, virt-customize, virt -filesystem, formato virt, virt-get-kernel, virt-inspector, virt-list-filesystem, virt-list-partitions, virt-log, virt-ls, virt-make-fs, virt-p2v, virt-p2v -make-disk, virt-rescue, virt-tar e molti altri. Ma utilizzeremo il comando guestfish, che ti consente di accedere e modificare le immagini della macchina virtuale.

Ospite:

Il guestfish comando può essere utilizzato sia come shell interattiva che come strumento da riga di comando. Il comando consente di aprire un'immagine disco sia in modalità di sola lettura (opzione –ro) che di lettura-scrittura (opzione –rw).

Caution: Make sure to shutdown the VM before using guesfish to access/modify the image.

Utilizzare guestfish come shell interattiva:

# guestfish
Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.
Type: 'help' for help on commands
'man' to read the manual
'quit' to quit the shell

Ora accediamo al file immagine vmdk (diciamo test-flat.vmdk ).

><fs> add-ro test-flat.vmdk

Nota: Cerca il comando add-ro il che significa aggiungere o accedere all'immagine in modalità di sola lettura. Se vuoi apportare modifiche all'immagine, devi aprire l'immagine con il privilegio di lettura-scrittura (lo vedremo più avanti).

Esegui sempre esegui comando prima di elencare i file system nell'immagine del disco come mostrato di seguito:

><fs> run
â 25% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠--:-â 50% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:3â 75% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:1 100% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:00

Il comando precedente impiegherà del tempo per leggere l'immagine. Una volta terminato, puoi elencare i file system disponibili nel disco come mostrato di seguito:

><fs> list-filesystems
/dev/vda1: ext4
/dev/VolGroup/lv_home: ext4
/dev/VolGroup/lv_root: ext4
/dev/VolGroup/lv_swap: swap

Ora devo montare /dev/VolGroup/lv_root per accedere a /etc/passwd .

><fs> mount /dev/VolGroup/lv_root /

Poiché ho aperto l'immagine in modalità di sola lettura, posso solo visualizzare /etc/passwd .

> cat /etc/passwd
::::::::::::::::::::::

Ecco lo snapshot completo:

# guestfish
Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.
Type: 'help' for help on commands
'man' to read the manual
'quit' to quit the shell
><fs> add-ro test-flat.vmdk
><fs> run
â 50% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠--:-â 75% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:0 100% â¦âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:00
><fs> mount /dev/VolGroup/lv_root /
><fs> cat /etc/passwd
::::::::::::::::::::::::::::::
><fs> exit

Utilizzare guestfish come comando e modificare un file:

# guestfish --rw --add test-flat.vmdk -i edit /etc/passwd

Cerca le opzioni

  • –rw – per aprire l'immagine del disco della macchina virtuale in modalità lettura-scrittura
  • –aggiungi – aggiunge l'immagine 'test-flat.vmdk'
  • -i – monta automaticamente i dischi dall'immagine di una macchina virtuale
  • modifica – comando per modificare il file

Il comando sopra ti consentirà di modificare un file direttamente dall'immagine e di salvarlo.

Altri esempi:

Supponiamo di voler aggiornare /etc/resolv.conf in un ospite, ecco come puoi farlo.

# guestfish \
   add disk.vmdk : run : mount /dev/VolGroup/lv_root / : \
   write /etc/resolv.conf "nameserver 8.8.8.8"

Utilizzo di guestfish per accedere a un'immagine disco remota utilizzando ssh:

# guestfish -a ssh://somedomain.com/path/to/disk.vmdk

guestfish può aiutarti a fare miracoli, quindi è una buona idea dare un'occhiata alla sua pagina di aiuto.

# guestfish -N help

Questo è tutto. Controlla libguestfs.org per ulteriori informazioni.


Cent OS
  1. Come installare Google Chrome 17 su Fedora 16, CentOS 6 / RHEL 6

  2. Come installare Python 3.5 su CentOS/RHEL e Fedora

  3. CentOS / RHEL 7:come estrarre l'immagine initramfs e modificarla/visualizzarla

  4. CentOS / RHEL:come installare Open Virtual Machine Tools per macchine virtuali ospitate su VMWare

  5. Come configurare il proxy in CentOS/RHEL/Fedora

Come installare KVM su CentOS 8 / RHEL 8

Come installare Cockpit su CentOS 7 / RHEL 7 e Fedora 28

Come installare pgAdmin 4 su CentOS 7 / RHEL 7 e Fedora 29 / Fedora 28

Come installare e utilizzare Firewalld in CentOS/RHEL

Come installare la macchina virtuale HipHop su CentOS 7

Come installare Wine 5.0 su CentOS, RHEL e Fedora