GNU/Linux >> Znalost Linux >  >> Cent OS

Jak používat nástroje libguestfs k úpravě obrazů disků virtuálního stroje (VM) v CentOS/RHEL/Fedora?

Otázka: Omylem jsem zakázal „root“ účet ve virtuálním počítači CentOS běžícím ve VMWare. Poté jsem vyzkoušel všechny možné způsoby, jak obnovit „root“ účet a nakonec jsem se rozhodl restartovat VM v režimu jednoho uživatele. Bohužel se nepodařilo spustit virtuální počítač v režimu jednoho uživatele a chybové zprávy naznačovaly, že proces spouštění očekává root účet a proces se zastavil na neurčito. Níže je snímek obrazovky vysvětlující scénář:

Abych problém vyřešil, musím nějak upravit /etc/passwd soubor a povolte účet root. K tomu potřebuji obraz disku virtuálního počítače – v mém případě virtuální počítač běžel na VMWare, takže potřebuji vmdk soubor.

Řešení:

V tomto tutoriálu vám ukážu jak používat nástroje libguestfs pro přístup a úpravu souboru obrazu disku virtuálního stroje (VM). libguestfs je knihovna C se sadou nástrojů pro zobrazení a úpravu souborů uvnitř hostů, provádění změn na virtuálních počítačích, sledování využití disku, klonování virtuálních počítačů, formátování disků, změnu velikosti disků a mnoho dalších. Nástroj je schopen číst obraz disku VM z CD, USB disků a také vzdáleně přes SSH.

Před použitím libguestfs nástroje, připravte se s obrazem disku virtuálního stroje. Libguestfs také podporuje proprietární systémy jako VMware a Hyper-V.

Instalovat nástroje libguestfs:

V systému CentOS/Fedora/RHEL:

sudo yum install libguestfs-tools

V systému Debian/Ubuntu:

sudo apt-get install libguestfs-tools

Jak jsem řekl dříve, nástroje libguestfs přicházejí s mnoha příkazy, jako je guestfish, guestmount, guestunmount, virt-alignment-scan, virt-builder, virt-cat, virt-copy, virt-edit, virt-diff, virt-customize, virt -filesystems, virt-format, virt-get-kernel, virt-inspector, virt-list-filesystems, virt-list-partitions, virt-log, virt-ls, virt-make-fs, virt-p2v, virt-p2v -make-disk, virt-rescue, virt-tar a mnoho dalších. Ale budeme používat příkaz guestfish – který vám umožňuje přistupovat k obrazům virtuálních strojů a upravovat je.

Hostující ryba:

Hostující ryba lze použít jako interaktivní prostředí i jako nástroj příkazového řádku. Příkaz umožňuje otevřít obraz disku v režimu pouze pro čtení (volba –ro) i pro čtení a zápis (volba –rw).

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

Použití guestfish jako interaktivního shellu:

# 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

Nyní přistoupíme k souboru obrázku vmdk (řekněme test-flat.vmdk ).

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

Poznámka: Vyhledejte příkaz add-ro což znamená přidání nebo přístup k obrázku v režimu pouze pro čtení. Pokud chcete provést změny v obrázku, musíte obrázek otevřít s oprávněním pro čtení a zápis (to uvidíme později).

Vždy spusťte spustit před uvedením systémů souborů v obrazu disku, jak je znázorněno níže:

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

Výše uvedený příkaz bude chvíli trvat, než přečte obrázek. Po dokončení můžete vypsat dostupné systémy souborů na disku, jak je uvedeno níže:

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

Nyní musím připojit /dev/VolGroup/lv_root pro přístup k /etc/passwd .

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

Protože jsem obrázek otevřel v režimu pouze pro čtení, mohu zobrazit pouze /etc/passwd .

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

Zde je úplný snímek:

# 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

Použití guestfish jako příkaz a úprava souboru:

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

Podívejte se na možnosti

  • –rw – otevřít obraz disku virtuálního počítače v režimu čtení a zápisu
  • –přidat – přidá obrázek ‚test-flat.vmdk‘
  • -i – automaticky připojí disky z obrazu virtuálního stroje
  • upravit – příkaz pro úpravu souboru

Výše uvedený příkaz vám umožní upravit soubor přímo z obrázku a také jej uložit.

Pár dalších příkladů:

Předpokládejme, že chcete aktualizovat /etc/resolv.conf v hostovi, pak to můžete udělat následovně.

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

Použití guestfish pro přístup k obrazu vzdáleného disku pomocí ssh:

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

guestfish vám může pomoci dělat zázraky, takže je dobrý nápad podívat se na jeho stránku nápovědy.

# guestfish -N help

A je to. Pro více informací navštivte libguestfs.org.


Cent OS
  1. Jak nainstalovat Google Chrome 17 na Fedora 16, CentOS 6 / RHEL 6

  2. Jak nainstalovat Python 3.5 na CentOS/RHEL a Fedoru

  3. [Linux] :Jak nakonfigurovat yum pro použití úložiště CentOS v počítači RHEL

  1. Jak extrahovat balíček 7z v CentOS/RHEL/Fedora?

  2. CentOS / RHEL 7 :Jak extrahovat obrázek initramfs a upravit/zobrazit jej

  3. CentOS / RHEL :Jak nainstalovat Open Virtual Machine Tools pro virtuální stroje hostované na VMWare

  1. Jak nakonfigurovat virtuální síťové rozhraní na RHEL 8 / CentOS 8

  2. Jak nakonfigurovat proxy v CentOS/RHEL/Fedora

  3. Jak připojit bitovou kopii virtuálního disku Guest Qcow2 obsahující LVM na hostitelský počítač KVM