GNU/Linux >> Znalost Linux >  >> Linux

Přístup a úprava diskových obrazů virtuálního stroje pomocí Libguestfs

Soubor libguestfs je knihovna C a kolekce nástrojů této knihovny pro vytváření, prohlížení, přístup a úpravu obrazů disků virtuálních strojů v Linuxu. Můžete nahlížet do obrazů disku, upravovat soubory, které obsahují, vytvářet je od začátku, měnit jejich velikost a mnoho dalšího. Nevyžaduje libvirt nebo KVM a nevyžaduje ani oprávnění root. Red Hat sponzoruje vývoj libguestfs. Podporuje mnoho linuxových distribucí a unixových variant, jako je Mac OS.

Libguestfs funguje téměř se všemi systémy souborů Linux (ext2/3/4, XFS, btrfs atd.), systémy souborů Windows (vfat a ntfs), systémy souborů Mac OS a BSD, svazky LVM2, diskové oddíly MBR a GPT, disky RAW , QCOW2, VirtualBox VDI, VMWare VMDK a Hyper-V VHD/VHDX. Může dokonce přistupovat k místním souborům a místním zařízením, jako jsou CD a DVD ISO, SD karty, nebo vzdáleně přes FTP, HTTP, SSH, iSCSI, NBD, GlusterFS, Ceph, Sheepdog a mnoho dalších.

Funkce Libguestfs

Pomocí nástrojů libguest můžeme provádět celou řadu úkolů, jak je uvedeno níže:

  • Vytvořte virtuální počítače pro hosty,
  • Klonujte virtuální počítače,
  • Vytvářejte virtuální počítače,
  • Přizpůsobení virtuálních počítačů
  • Skriptování změn na virtuálních počítačích,
  • Zkontrolujte obrazy virtuálních počítačů,
  • Zobrazení a úprava souborů v hostujících počítačích,
  • Kopírování souborů a adresářů do az virtuálních počítačů,
  • Zobrazení informací o souborových systémech, zařízeních, LVM
  • Archivujte, nahrávejte a stahujte soubory,
  • Sledujte statistiky využití/volného disku,
  • Formátování virtuálních disků,
  • Změna velikosti virtuálních disků,
  • Provádění záloh,
  • Připojte a odpojte hostovaný souborový systém v hostitelském systému,
  • P2V (převod fyzického počítače tak, aby běžel virtualizovaný na KVM, OpenStack, oVirt, Red Hat Virtualization),
  • V2V (převod hostujícího počítače z cizího hypervizoru na provoz na KVM),
  • Zobrazit soubory protokolu,
  • Sloučit změny v registru systému Windows v hostech systému Windows,
  • a mnohem více.

Všechny tyto úkoly můžete provádět buď prostřednictvím skriptovatelného shellu zvaného guestfish nebo interaktivní záchranný shell virt-rescue .

Nainstalujte libguestfs na Linux

Spusťte následující příkaz k instalaci libguestfs na Debian, Ubuntu:

$ sudo apt install libguestfs-tools

Na CentOS, RHEL:

$ sudo dnf install libguestfs-tools

Po instalaci zkontrolujte verzi guestfish pomocí příkazu:

$ guestfish --version
guestfish 1.40.2

Přístup k obrazům disků virtuálního počítače a jejich úprava pomocí Libguestfs

Ujistěte se, že jsou hostující počítače vypnuté. Živé obrázky nesmíte z žádného důvodu upravovat. Může to vést k trvalému poškození disku a ztrátě dat. Před provedením jakýchkoli změn na diskových obrazech vždy zálohujte.

1. Guestfish shell

Guestfish, zkratka pro host souborový systém shell, je interaktivní shell pro úpravu souborových systémů virtuálních strojů a obrazů disků.

1.1. Získejte přístup k existujícím obrazům disku a připojte hostované souborové systémy ručně

Nejprve načtěte existující obraz disku ke kontrole.

Pro vstup do interaktivního shellu guestfish spusťte následující příkaz:

$ guestfish

Ukázkový výstup:

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: ‘help’ for help on commands
      ‘man’ to read the manual
      ‘quit’ to quit the shell

><fs>

Zde > označuje výzvu guestfish.

..a poté přidejte obrazy disku pomocí příkazu:

><fs> add ~/CentOS_8_Server.img

Dále spusťte následující příkaz pro spuštění knihovny a připojení (spuštění) obrazu disku:

><fs> run

Poprvé to bude trvat několik sekund. Následující spuštění skončí mnohem rychleji.

Nyní musíte vypsat a připojit hostované souborové systémy ručně.

Chcete-li zobrazit seznam souborových systémů na disku, spusťte tento příkaz z příkazového řádku guestfish:

><fs> list-filesystems

Ukázkový výstup:

/dev/sda1: ext4
/dev/cl/root: xfs
/dev/cl/swap: swap

Připojte souborový systém:

><fs> mount /dev/cl/root /

Zobrazit přípojné body:

><fs> mountpoints 
/dev/cl/root: /

Podobně připojte ostatní souborové systémy.

1.2. Získejte přístup k existujícím diskovým obrazům a připojujte hostované souborové systémy automaticky

Namísto ručního vypisování a připojování hostovaných souborových systémů můžete nechat guestfish automaticky kontrolovat obrazy a připojovat souborové systémy pomocí -i příznak jako níže.

$ guestfish -a CentOS_8_Server.img -i

Tady,

  • -a (--add) automaticky detekuje formát obrazu disku. Chcete-li toto přepsat a určit konkrétní formát, použijte --format možnost.
  • -i (--inspector) - Prohlédněte si disky a připojte souborové systémy.
  • CentOS_8_Server.img - název obrazu disku. Tento obrázek mám ve svém aktuálním adresáři.

Tento příkaz načte daný obraz, připojí hostované souborové systémy a dostane vás do shellu guestfish.

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: ‘help’ for help on commands
      ‘man’ to read the manual
      ‘quit’ to quit the shell

Operating system: CentOS Linux release 8.2.2004 (Core) 
/dev/cl/root mounted on /
/dev/sda1 mounted on /boot

><fs>

Pokud jste použili "-i" parametr, nemusíte vypisovat a připojovat hostované souborové systémy ručně. Souborové systémy budou automaticky připojeny. Také nemusíte spouštět knihovnu a připojovat obraz disku sami. Guestfish sám se o to postará.

1.3. Přistupujte k virtuálním strojům namísto pouhých obrazů disků

Guestfish má možnost přistupovat k virtuálním počítačům (doménám) namísto obrazů disků.

Nejprve získejte název virtuálních počítačů pomocí příkazu:

$ virsh list --all
 Id   Name            State
--------------------------------
 -    centos8-uefi    shut off
 -    nginx_centos8   shut off

Chcete-li získat přístup k virtuálnímu počítači s názvem "centos8-uefi", použijte volbu -d nebo --domain, jak je uvedeno níže.

$ guestfish -d centos8-uefi -i
1.4. Prohlížení a úprava obsahu diskových obrazů

Guestfish podporuje stovky příkazů pro zobrazení a úpravu obrazů disků podle libosti. Pokud se podíváte na celou manuálovou stránku, budete ohromeni. Proto je lepší nejprve vědět, jak získat pomoc.

Vypsat všechny příkazy

Pokud nevíte, kde začít, jednoduše vyvolejte sekci nápovědy pomocí příkazu:

><fs> help

Chcete-li zobrazit seznam všech dostupných příkazů spolu se stručným popisem, spusťte:

><fs> help -l

Získejte nápovědu ke konkrétnímu příkazu

Chcete-li získat pomoc s jakýmkoli příkazem, například mkdir, spusťte:

<fs> help mkdir

Nyní se podívejme na několik příkladů.

Seznam blokovaných zařízení

Chcete-li zobrazit seznam všech blokovaných zařízení v obrazu, spusťte:

><fs> list-devices 
/dev/sda

Vypsat oddíly

Chcete-li zobrazit seznam všech oddílů zjištěných na všech blokových zařízeních, spusťte:

><fs> list-partitions 
/dev/sda1
/dev/sda2

Vypsat obsah adresáře

Chcete-li zobrazit seznam souborů v daném adresáři, spusťte:

><fs> ls /root
.bash_history
.bash_logout
.bash_profile
.bashrc
.cshrc
.tcshrc

Zobrazit obsah souboru

Chcete-li zobrazit obsah souboru, spusťte:

><fs> cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu Feb  6 06:43:28 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=5e675dd6-7f64-46cd-8535-3617f3cf870b /boot                   ext4    defaults        1 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

Vytvářejte adresáře

Následující příkaz vytvoří adresář s názvem "ostechnix" v adresáři /root v hostujícím systému.

><fs> mkdir /root/ostechnix

Vytvářejte prázdné soubory

Chcete-li vytvořit prázdný soubor v počítači hosta, postupujte takto:

><fs> touch /root/ostechnix/file.txt

Ověřte, zda byl soubor vytvořen:

><fs> ls /root/ostechnix/
file.txt

Vytvářejte soubory s obsahem

Chcete-li vytvořit soubor s nějakým obsahem, použijte write příkaz:

><fs> write /root/ostechnix/file2.txt https://ostechnix.com

Výše uvedený příkaz vytvoří soubor 2.txt v adresáři /root/ostechnix/ a zapíše do něj "https://ostechnix.com".

Můžete to ověřit pomocí příkazu "cat":

><fs> cat /root/ostechnix/file2.txt 
https://ostechnix.com

Přidat obsah ke stávajícím souborům

Chcete-li přidat nový obsah na konec již vytvořeného souboru, použijte příkaz "write-append":

<fs> write-append /root/ostechnix/file2.txt /about

Výše uvedený příkaz přidá slovo "/about" na konec obsahu file1.txt.

Ověřte, zda je řádek přidán, použijte příkaz cat:

><fs> cat /root/ostechnix/file2.txt 
https:/ostechnix.com/about

Upravit soubory

Chcete-li upravit soubor na počítači hosta, použijte příkaz "edit":

><fs> edit /root/ostechnix/file.txt

Daný soubor se otevře ve výchozím editoru.

Odeberte soubory a adresáře

Odebrání souboru z počítače hosta:

><fs> rm /root/ostechnix/file2.txt 
><fs> rm /root/ostechnix/file.txt

Chcete-li odstranit adresář, použijte příkaz "rmdir":

><fs> rmdir /root/ostechnix/

Zkopírujte místní soubory nebo adresáře do obrazu disku

Příkaz "copy-in" zkopíruje místní soubory nebo adresáře rekurzivně do obrazu disku.

Následující příkaz zkopíruje soubor ostechnix.txt z místního systému do /root/ostechnix/ v obrazu disku.

<fs> copy-in ostechnix.txt /root/ostechnix/

Ověřte jej pomocí ls příkaz:

<fs> ls /root/ostechnix/
file.txt
ostechnix.txt

Zkopírujte soubory nebo adresáře z bitové kopie disku do hostitelského systému

Podobně můžeme zkopírovat soubory nebo adresáře z obrazu disku do místního hostitelského systému pomocí příkazu "copy-out", jak je uvedeno níže.

<fs> copy-out /root/ostechnix/ /home/sk/Downloads/

Ve výše uvedeném příkladu kopíruji adresář /root/ostechnix/ do adresáře Downloads v hostitelském systému.

Stáhnout soubory do hostitelského systému

Je to stejné jako příkaz pro kopírování.

Guestfish vám umožňuje stahovat a nahrávat obsah z hostujícího počítače do hostitelského počítače a naopak.

Obecná syntaxe pro stahování souborů:

download <guest_file_location> <host_file_location>

Následující příkaz stáhne soubor "/etc/fstab" z hostujícího počítače do adresáře /home/sk/Downloads/ v hostitelském systému KVM.

<fs> download /etc/fstab /home/sk/Downloads/fstab

Nahrajte soubory z hostitelského systému do hostujícího systému

To je stejné jako příkaz copy-in.

Chcete-li nahrát soubor z hostitelského systému do počítače hosta, spusťte:

><fs> upload /home/sk/Downloads/fstab /etc/fstab

Zde nahrávám /home/sk/Downloads/fstab soubor z mého místního systému do /etc/fstab v hostujícím počítači.

Zobrazit manuálovou stránku guestfish

Chcete-li zobrazit manuálové stránky guestfish:

><fs> man

Ukončit guestfish

Chcete-li ukončit shell guestfish, spusťte:

><fs> exit

To, co jsme zatím viděli, je přístup, připojení, kontrola a úprava existujících diskových obrazů. Guestfish vám také může pomoci okamžitě vytvořit nové obrazy disku.

1.5. Vytváření nových bitových kopií disku

Následující příkazy by měly být spouštěny mimo shell guestfish. Jinými slovy, měly by být spuštěny ve vašem hostitelském terminálu.

Pamatujete si, že jsme přidali existující obrázky pomocí parametru -a? Ano. Chcete-li vytvořit nový obraz disku, přejdeme na -N (--new) parametr.

Chcete-li vytvořit nový obraz disku a automaticky jej spustit, spusťte následující příkaz z hostitelského terminálu (nikoli v guestfish):

$ guestfish -N fs

Tento příkaz vytvoří nový disk s názvem "test1.img" v aktuálním adresáři a dostanete se do výzvy guestfish. Tento disk bude obsahovat jeden oddíl s prázdným souborovým systémem. Ve výchozím nastavení bude velikost disku 1 GB . Pokud příště spustíte stejný příkaz, vytvoří se nový disk s názvem „test2.img“ o velikosti 1G a tak dále.

Namísto vytváření pevného disku o velikosti 1G je možné vytvořit také obraz disku vlastní velikosti.

Chcete-li vytvořit prázdný 500 MB disk , spustit:

$ guestfish -N disk:500M

Můžete také vytvořit obraz disku naformátovaný konkrétním systémem souborů. Například následující příkaz vytvoří 1G disk s ext4 -formátovaný oddíl s názvem test1.img v aktuálním adresáři:

$ guestfish -N fs:ext4

Vytvořte 500 MB disk s VFAT -formátovaný oddíl a připojte jej:

$ guestfish -N fs:vfat:500M -m /dev/sda1

Vytvořte prázdný 500 MB disk s názvem blankdisk.img (místo výchozího názvu test1.img):

$ guestfish -N blankdisk.img=disk:500M
1.6. Přidání obrazů vzdáleného disku

Nejen obrazy místních disků, můžeme také přidat disky umístěné na vzdáleném serveru SSH, FTP, HTTP nebo TFTP.

Přidejte disk umístěný na vzdáleném serveru SSH:

$ guestfish -a ssh://[email protected]/disk.img

Nahraďte uživatelské jméno a IP adresu ve výše uvedeném příkazu svými vlastními.

Přidejte disk umístěný na vzdáleném serveru FTP:

$ guestfish -a ftp://[email protected]:port/disk.img
$ guestfish -a ftps://[email protected]:port/disk.img

Přidejte disk umístěný na vzdáleném serveru HTTP:

$ guestfish -a http://[email protected]:port/disk.img
$ guestfish -a https://[email protected]:port/disk.img

Přidejte disk umístěný na vzdáleném serveru TFTP:

$ guestfish -a tftp://[email protected]:port/disk.img

2. Přístup, zobrazení a úprava diskových obrazů bez vstupu do guestfish shell

Libguestfs poskytuje mnoho dalších ekvivalentních příkazů pro přístup, prohlížení a úpravu diskových obrazů, aniž by ve skutečnosti vstupoval do guestfish shellu.

2.1. guestmount

Příkaz Guestmount se používá k připojení hostujícího souborového systému k hostiteli pomocí FUSE a libguestfs.

Následující příkaz připojí centos8-uefi fulesystém hostujícího počítače v ~/guestvm/ v hostitelském systému.

$ mkdir ~/guestvm/
$ sudo guestmount -d centos8-uefi -i ~/guestvm/

Ověřte obsah adresáře pro připojení:

$ sudo ls -l ~/guestvm

Ukázkový výstup:

total 16
lrwxrwxrwx.  1 root root    7 May 11  2019 bin -> usr/bin
dr-xr-xr-x.  6 root root 4096 Jul 18 15:46 boot
drwxr-xr-x.  2 root root    6 Jul 18 15:23 dev
drwxr-xr-x. 78 root root 8192 Jul 25 17:54 etc
drwxr-xr-x.  2 root root    6 May 11  2019 home
lrwxrwxrwx.  1 root root    7 May 11  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root    9 May 11  2019 lib64 -> usr/lib64
drwxr-xr-x.  2 root root    6 May 11  2019 media
drwxr-xr-x.  2 root root    6 May 11  2019 mnt
drwxr-xr-x.  2 root root    6 May 11  2019 opt
drwxr-xr-x.  2 root root    6 Jul 18 15:23 proc
dr-xr-x---.  2 root root  135 Jul 18 15:46 root
drwxr-xr-x.  2 root root    6 Jul 18 15:23 run
lrwxrwxrwx.  1 root root    8 May 11  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root    6 May 11  2019 srv
drwxr-xr-x.  2 root root    6 Jul 18 15:23 sys
drwxrwxrwt.  7 root root  119 Jul 25 18:44 tmp
drwxr-xr-x. 12 root root  144 Jul 18 15:24 usr
drwxr-xr-x. 20 root root  278 Jul 18 15:45 var

Chcete-li jej odpojit, spusťte:

$ sudo umount ~/guestvm

Další podrobnosti naleznete na manuálových stránkách.

$ man guestmount
2.2. virt-cat

Příkaz Virt-cat slouží k zobrazení obsahu souboru uloženého v obrazu disku nebo virtuálním počítači.

$ sudo virt-cat -a CentOS_8_Server.img /etc/fstab

Nebo,

$ sudo virt-cat -d centos8-uefi /etc/fstab

Ukázkový výstup:

#
# /etc/fstab
# Created by anaconda on Sat Jul 18 05:53:25 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=6a7f6481-5eb3-4589-ad19-b2291ddfcda1 /boot                   ext4    defaults        1 2
UUID=6906-5D0A          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
2.3. virt-copy-in

Příkaz Virt-copy-in se používá ke kopírování souborů a adresářů z hostitele na obraz disku nebo virtuální počítač.

$ sudo virt-copy-in -a CentOS_8_Server.img ostechnix.txt /root/

Nebo,

$ sudo virt-copy-in -d centos8-uefi ostechnix.txt /root/
2.4. virt-copy-out

Příkaz Virt-copy-out se používá ke kopírování souborů a adresářů z obrazu disku nebo virtuálního počítače.

$ sudo virt-copy-out -a CentOS_8_Server.img /root/ostechnix.txt ~/Downloads

Nebo,

$ sudo virt-copy-in -d centos8-uefi /root/ostechnix.txt ~/Downloads

Výše uvedené příkazy zkopírují soubor /root/ostechnix.txt z disku virtuálního počítače do adresáře ~/Downloads v místním hostitelském systému.

2.4. virt-df

Příkaz Virt-df zobrazí volné místo na souborovém systému hostujícího počítače.

Zobrazení volného místa na obrazu disku:

$ sudo virt-df -a CentOS_8_Server.img

Ukázkový výstup:

Filesystem                                Size       Used  Available  Use%
CentOS_8_Server.img:/dev/sda1             976M       260M       649M   27%
CentOS_8_Server.img:/dev/cl/root           17G       1.4G        16G    9%

Zobrazení místa na disku na virtuálním počítači:

$ sudo virt-copy-in -d centos8-uefi /root/ostechnix.txt ~/Downloads

Ukázkový výstup:

Filesystem                                Size       Used  Available  Use%
centos8-uefi:/dev/sda1                    599M       6.6M       592M    2%
centos8-uefi:/dev/sda2                    976M       121M       788M   13%
centos8-uefi:/dev/cl/root                  16G       1.2G        15G    8%
2.5. virt-edit

Upravte soubor v obrazu disku nebo virtuálním počítači.

$ sudo virt-edit -a CentOS_8_Server.img /root/ostechnix.txt

Nebo,

$ sudo virt-edit -d centos8-uefi /root/ostechnix.txt

Tento příkaz otevře vzdálený soubor ve výchozím editoru. Stačí provést změny a uložit a zavřít soubor.

2.6. virt-filesystems

Vypište souborové systémy, oddíly, bloková zařízení, LVM ve virtuálním počítači nebo obrazu disku.

$ sudo virt-filesystems -a CentOS_8_Server.img -l

Nebo,

$ sudo virt-filesystems -d centos8-uefi -l

Ukázkový výstup:

Name          Type        VFS   Label  Size         Parent
/dev/sda1     filesystem  vfat  -      629145600    -
/dev/sda2     filesystem  ext4  -      1073741824   -
/dev/cl/root  filesystem  xfs   -      17620271104  -

Chcete-li zobrazit podrobnosti oddílu, přidejte --disitions ve výše uvedeném příkazu:

$ sudo virt-filesystems -d centos8-uefi --partitions
/dev/sda1
/dev/sda2
/dev/sda3

Podobně můžete použít --logic-volumes , --volume-groups , --physical-volumes , --block-devices k seznamu těchto položek.

2.7. virt-inspektor

Virt-inspector se používá k zobrazení verze operačního systému a dalších informací o obrazu disku nebo virtuálním počítači.

$ sudo virt-inspector -a CentOS_8_Server.img

Nebo,

$ sudo virt-inspector -d centos8-uefi
2.8. virt-ls

Virt-ls se používá k zobrazení souborů a adresářů a jejich velikostí, atributů, kontrolních součtů v obrazu disku nebo virtuálním počítači.

$ sudo virt-ls -R -a CentOS_8_Server.img / | less

Nebo,

$ sudo virt-ls -R -d centos8-uefi /root

Většinu běžných voleb/příznaků příkazu "ls" můžete použít s příkazem virt-ls.

2.9. virt-log

Virt-log se používá k zobrazení souborů protokolu z obrazu disku nebo virtuálního počítače.

$ sudo virt-log -a CentOS_8_Server.img

Nebo,

$ sudo virt-log -d centos8-uefi
2.10. virt-tail

Příkaz Virt-tail se používá ke sledování souborů protokolu v obrazu disku nebo virtuálním počítači.

$ sudo virt-tail -a CentOS_8_Server.img /var/log/messages

Nebo,

$ sudo virt-tail -d centos8-uefi /var/log/messages

K dispozici je mnohem více příkazů. Doporučuji vám navštívit webovou stránku libguestfs odkazovanou na konci této příručky.

Další informace:

  • Rychle vytvářejte obrazy virtuálních strojů pomocí Virt-builderu
  • Zobrazení statistik virtualizačních systémů pomocí Virt-top v Linuxu
  • Jak zachránit virtuální počítače pomocí Virt-Rescue

Odstraňování problémů

Zde jsou řešení několika běžných problémů.

1. libguestfs nefunguje bez oprávnění root na Ubuntu

Při pokusu o přístup k obrazům disku na Ubuntu se můžete setkat s touto chybou:

libguestfs: error: /usr/bin/supermin exited with error status 1.
To see full error messages you may need to enable debugging.
Do:
  export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1
and run the command again.  For further information, read:
  http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs

Chcete-li tento problém vyřešit, spusťte:

$ sudo chmod 0644 /boot/vmlinuz*

Možná se budete muset přidat do kvm skupina:

$ sudo usermod -a -G kvm sk

Nahraďte "sk" ve výše uvedeném příkazu svým vlastním uživatelským jménem.

  1. Pokud jste již na svůj systém nainstalovali libvirt nebo KVM a pokoušíte se použít nástroje libguesfs jako uživatel root, měla by se zobrazit tato chyba oprávnění:
libguestfs: error: could not create appliance through libvirt.

Try running qemu directly without libvirt using this environment variable:
export LIBGUESTFS_BACKEND=direct

Original error from libvirt: Cannot access backing file '/root/CentOS_8_Server.qcow2' of storage file '/tmp/libguestfsiPjmga/overlay1.qcow2' (as uid:107, gid:107): Permission denied [code=38 int1=13]

To je způsobeno libvirt, a tak se to stává pouze při použití backendu libvirt. Chcete-li to vyřešit, přepněte na přímý backend nastavením této proměnné prostředí:

export LIBGUESTFS_BACKEND=direct

Chcete-li to provést trvale, přidejte tento řádek do svého ~/.bashrc soubor.


Linux
  1. Jak převést VMDK (Virtual Machine Disk) na VDI pomocí VBoxManage?

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

  3. [Vyřešeno]:Jak zabránit synchronizaci hodin virtuálního počítače s hostitelským počítačem a nastavit nezávislý čas?

  1. Jak vytvořit snímek virtuálního stroje KVM pomocí příkazu Virsh

  2. Rozšiřte a zmenšete svazky pomocí správy disků

  3. Spusťte nativní OS na pevném disku jako virtuální stroj

  1. Co je to virtuální stroj a proč jej používat?

  2. Jak zobrazit využití disku s Duf na Linuxu a Unixu

  3. Spravujte vzdálené a virtuální stroje pomocí Gnome boxů