
=begin коментар

We break with tradition here and don’t use ALL CAPS for the section
headings, as this makes them much easier to read.

=end коментар

=head1 НАЗВА

guestfs-recipes — рецепти для libguestfs, guestfish та інструментів
віртуалізації

=head1 ОПИС

This page contains recipes for and links to things you can do using
libguestfs, L<guestfish(1)> and the virt tools.

=head1 Access a remote disk image using guestfish

If the disk image is on a remote server which is accessible using SSH, HTTP,
FTP, NBD, iSCSI, or similar, then you can open it directly.  See
L<guestfish(1)/ADDING REMOTE STORAGE> for several examples.  This requires
libguestfs E<ge> 1.22 and qemu E<ge> 1.5.

=head1 Аудит віртуальної машини щодо файлів із setuid

See: L<virt-ls(1)/EXAMPLES>.

=head1 Аудит віртуальної машини щодо вразливостей і проблем захисту

Див.
L<https://rwmj.wordpress.com/2013/05/16/scanning-offline-guests-using-openscap-and-guestmount/#content>

=head1 Зміна зображення тла у віртуальній машині Windows XP

За наведеними нижче посиланнями можна знайти опис використання
L<guestfish(1)> для зміни зображення тла для користувача віртуальної машини
Windows XP. На жаль, у різних версіях Windows методика досягнення
аналогічного результату є різною.

L<https://lists.fedoraproject.org/pipermail/virt/2011-May/002655.html>
L<https://lists.fedoraproject.org/pipermail/virt/2011-May/002658.html>

=head1 Створення контрольної суми файла або пристрою всередині образу диска

Щоб створити контрольну суму усього пристрою, розділу, логічного тому
всередині образу диска, скористайтеся командою:

 guestfish --ro -a диск.img run : checksum-device md5 /dev/sda1

Replace C<md5> with the type of checksum you want.  See
L<guestfs(3)/guestfs_checksum_device> for a list of supported types.

F</dev/sda1> means "the first partition".  You could use F</dev/sda> to
checksum the whole disk image, or the name of a logical volume or RAID
device.

Створення контрольної суми для окремого файла:

 guestfish --ro -a диск.img -i checksum sha256 /etc/passwd

або для гостьової системи Windows:

 guestfish --ro -a диск.img -i \
   checksum sha256 'win:\windows\system32\config\SOFTWARE'

=head1 Клонування віртуальної машини

Скористайтеся комбінацією інструментів, подібних до L<cp(1)>, L<dd(1)>, та
інструментами віртуалізації, зокрема L<virt-sysprep(1)>, L<virt-sparsify(1)>
та L<virt-resize(1)>.

Докладніший опис у розділі L<virt-sysprep(1)/КОПІЮВАННЯ І КЛОНУВАННЯ>.

=head1 Перетворення CD-ROM / DVD / ISO на архів tar

Ця команда перетворює F<cd.iso> на F<cd.tar.gz>:

 guestfish --ro -a cd.iso -m /dev/sda tgz-out / cd.tar.gz

Щоб експортувати підкаталог, наприклад F</files>, віддайте таку команду:

 guestfish --ro -a cd.iso -m /dev/sda tgz-out /files cd.tar.gz

=head1 Перетворення з одного формату або однієї файлової системи у інший формат

If you have a data disk in one format / filesystem / partition / volume
manager, you can convert it another using this technique.

In this example, we start with a data disk that has a single partition
containing a filesystem, and we want to create another disk that contains
the same files but on an ext3 filesystem embedded in a logical volume on a
sparse raw-format disk.

Спочатку створіть форматований, але порожній диск призначення:

 truncate -s 10G target.img
 virt-format -a target.img --partition=mbr --lvm --filesystem=ext3

Now, pipe two guestfish instances together to transfer the old data to the
new disk:

 guestfish --ro -a source.img -m /dev/sda1  -- tar-out / - | \
 guestfish --rw -a target.img -m /dev/VG/LV -- tar-in - /

Для навігації створеним остаточним образом диска скористайтеся такою
командою:

 guestfish --ro -a target.img -m /dev/VG/LV
 ><fs> ll /

This technique is quite powerful, allowing you for example to split up
source directories over the target filesystems.

Note this won’t work (at least, not directly) for bootable virtual machine
disks because it doesn't copy over the boot loader.

=head1 Перетворення DVD Windows на придатний до завантаження диск USB

L<http://rwmj.wordpress.com/2013/05/09/tip-convert-a-windows-dvd-iso-to-a-bootable-usb-key-using-guestfish/#content>

=head1 Convert Xen-style partitionless image to partitioned disk image

Xen disk images are often partitionless, meaning that the filesystem starts
directly at the beginning of the disk with no partition table.  You can in
fact use these directly in KVM (provided the guest isn't Windows), but some
people like to convert them to regular partitioned disk images, and this is
required for Windows guests.  Here is how to use guestfish to do this:

 guestfish
 ><fs> add-ro input.img
 ><fs> sparse output.img 10G     # скоригувати розмір результату
 ><fs> run
 # Створити таблицю розділів на диску-результаті:
 ><fs> part-init /dev/sdb mbr
 ><fs> part-add /dev/sdb p 2048 -2048
 # Скопіювати дані на розділ призначення:
 ><fs> copy-device-to-device /dev/sda /dev/sdb1 sparse:true
 # Додатково змінити розмір файлової системи призначення.
 # Скористайтеся ntfsresize для гостьових систем Windows:
 ><fs> resize2fs /dev/sdb1

Such a disk image won’t be directly bootable.  You may need to boot it with
an external kernel and initramfs (see below).  Or you can use the guestfish
commands C<syslinux> or C<extlinux> to install a SYSLINUX bootloader.

=head1 Створення порожніх образів дисків

Програма L<virt-format(1)> може робити це безпосередньо.

Use L<virt-make-fs(1)> to create a disk image with content.  This can also
create some standard disk images such as virtual floppy devices (VFDs).

You can also use the L<guestfish(1)> I<-N> option to create empty disk
images.  The useful guide below explains the options available.

L<https://rwmj.wordpress.com/2010/09/08/new-guestfish-n-options-in-1-5-9/#content>

L<virt-builder(1)> може створювати мінімальні гостьові системи.

=head1 Вилучення файлів (або інші прості дії з файлами)

Скористайтеся guestfish. Вилучення файла:

 guestfish -a диск.img -i rm /файл/який/слід/вилучити

Торкнутися файла (оновити його часову позначку або створити його):

 guestfish -a диск.img -i touch /файл/позначку/якого/слід/оновити

Отримання статистичних даних щодо файла. Оскільки для цієї дії потрібне лише
читання, можна зробити її безпечнішою, додавши параметр I<--ro>.

 guestfish --ro -a диск.img -i stat /файл/який/слід/обробити

Таких команд десятки. Див. L<guestfish(1)>  або дані, виведені командою
C<guestfish -h>

=head1 Порівняти дві гостьові системи; порівняти знімок із поточною версією

Since libguestfs E<ge> 1.26, use L<virt-diff(1)> to look for differences
between two guests (for example if they were originally cloned from the same
source), or between two snapshots from the same guest.  In earlier versions
of libguestfs, use L<virt-ls(1)>.

=head1 Вимкнути службу systemd

The following is the equivalent of C<systemctl mask ...>. To disable the
C<cloud-init> service so it doesn't start at next boot:

 guestfish -a disk.img -i \
     ln-sf /dev/null /etc/systemd/system/cloud-init.service

Щоб вимкнути tmp-on-tmpfs:

 guestfish -a disk.img -i \
     ln-sf /dev/null /etc/systemd/system/tmp.mount

One problem with the commands above is there is no feedback if you get the
name of the service you are trying to mask wrong.  But you can use
L<virt-ls(1)> to list the available systemd services like this:

 virt-ls -a /tmp/fedora-19.img -R /lib/systemd/system

=head1 Літери дисків у FUSE

You have a Windows guest, and you want to expose the drive letters as FUSE
mountpoints (F</C/...>, F</D/...> etc).  Instead of L<guestmount(1)>, use
this Perl script:

 #!/usr/bin/perl -w
 use strict;
 use Sys::Guestfs;
 $| = 1;
 die "usage: $0 mountpoint disk.img" if @ARGV < 2;
 my $mp = shift @ARGV;
 my $g = new Sys::Guestfs;
 $g->add_drive_opts ($_) foreach @ARGV;
 $g->launch;
 my @roots = $g->inspect_os;
 die "$0: no operating system found" if @roots != 1;
 my $root = $roots[0];
 die "$0: not Windows" if $g->inspect_get_type ($root) ne "windows";
 my %map = $g->inspect_get_drive_mappings ($root);
 foreach (keys %map) {
     $g->mkmountpoint ("/$_");
     eval { $g->mount ($map{$_}, "/$_") };
     warn "$@ (ignored)\n" if $@;
 }
 $g->mount_local ($mp);
 print "filesystem ready on $mp\n";
 $g->mount_local_run;
 $g->shutdown;

Ви можете скористатися скриптом ось так:

 $ mkdir /tmp/mnt
 $ ./drive-letters.pl /tmp/mnt windows7.img
 filesystem ready on /tmp/mnt

У іншому вікні:

 $ cd /tmp/mnt
 $ ls
 C  D
 $ cd C
 $ ls
 Documents and Settings
 PerfLogs
 ProgramData
 Program Files
 [etc]
 $ cd ../..
 $ guestunmount /tmp/mnt

=head1 Створення дампів вмісту простої файлової системи у образі диска або ВМ

You can use the L<guestfish(1)> C<download> command to extract the raw
filesystem content from any filesystem in a disk image or a VM (even one
which is encrypted or buried inside an LV or RAID device):

 guestfish --ro -a disk.img run : download /dev/sda1 sda1.img

 guestfish --ro -d Guest run : download /dev/vg_guest/lv_root lv.img

Щоб отримати дані до stdout, замініть назву файла символом C<->:

 guestfish --ro -a disk.img run : download /dev/sda1 - | gzip > sda1.gz

Для отримання списку файлових систем на образі диска скористайтеся
L<virt-filesystems(1)>.

Див. також L</Вивантаження даних на файлові системи без обробки>.

=head1 Редагувати налаштування grub у віртуальній машині

Ви можете скористатися цим для того, щоб виконати такі завдання:

=over 4

=item *

Виправити віртуальну машину, яка не завантажується.

=item *

Змінити ядро, яке використовується для завантаження віртуальної машини.

=item *

Змінити параметри командного рядка ядра.

=back

Для редагування налаштувань grub скористайтеся L<virt-edit(1)>:

 virt-edit -d BrokenGuest /boot/grub2/grub.cfg

або, для загального виправлення у непридатній до завантаження віртуальній
машині, скористайтеся L<virt-rescue(1)> соь так:

 virt-rescue -d BrokenGuest

=head1 Експортувати будь-який каталог з віртуальної машини

Щоб експортувати F</home> з віртуальної машини до локального каталогу,
скористайтеся L<virt-copy-out(1)>:

 virt-copy-out -d Guest /home .

Нотатки:

=over 4

=item *

Кінцева крамка у команді не є друкарською помилкою. Вона означає, що ми
хочемо скопіювати дані до поточного каталогу.

=item *

Ця команда створить каталог із назвою C<home> у поточному каталозі.

=back

Якщо гостьова система є операційною системою Windows, ви можете скористатися
літерами дисків та символами зворотної похилої риски, але вам слід додати до
шляху префікс C<win:> і взяти його у лапки, щоб захистити від обробки
командною оболонкою, ось так:

 virt-copy-out -d WinGuest 'win:c:\windows\system32\config' .

Щоб отримати результат у форматі стисненого архіву tar, слід віддати таку
команду:

 virt-tar-out -d Guest /home - | gzip --best > home.tar.gz

Хоча виникає спокуса використання цієї команди для створення резервних копій
запущеної гостьової системи, не варто користуватися нею саме для
цього. Докладніше про це у розділі запитань та відповідей на них:
L<http://libguestfs.org/FAQ.html#backup>

=head1 Експортування зовнішнього ядра та initramfs (initrd)

If a Linux guest doesn't have a boot loader or it is broken, then you can
usually boot it using an external kernel and initramfs.  In this
configuration, the hypervisor acts like a bootloader, loading the kernel
from the host disk into guest memory and jumping straight into the kernel.

However you may wonder how to get the right kernel corresponding to the disk
image you have.  Since libguestfs E<ge> 1.24 L<virt-builder(1)> can get the
latest kernel and corresponding initramfs for you:

 mkdir outputdir
 virt-builder --get-kernel disk.img -o outputdir
 ls -lh outputdir

=head1 Визначення користувача, дані якого займають найбільше місця

This simple script examines a Linux guest to find out which user is using
the most space in their home directory:

 #!/bin/sh -
 
 set -e
 
 vm="$1"
 dir=/home
 
 eval $(guestfish --ro -d "$vm" -i --listen)
 
 for d in $(guestfish --remote ls "$dir"); do
     echo -n "$dir/$d"
     echo -ne '\t'
     guestfish --remote du "$dir/$d";
 done | sort -nr -k 2
 
 guestfish --remote exit

=head1 Отримання адреси DHCP з ВМ

The link below explains the many different possible techniques for getting
the last assigned DHCP address of a virtual machine.

L<https://rwmj.wordpress.com/2011/03/31/tip-code-for-getting-dhcp-address-from-a-virtual-machine-disk-image/#content>

In the libguestfs source examples directory you will find the latest version
of the F<virt-dhcp-address.c> program.

=head1 Отримання рядка назви продукту операційної системи

Збережіть наведений нижче скрипт до файла із назвою F<product-name.sh>:

 #!/bin/sh -
 set -e
 eval "$(guestfish --ro -d "$1" --i --listen)"
 root="$(guestfish --remote inspect-get-roots)"
 guestfish --remote inspect-get-product-name "$root"
 guestfish --remote exit

Зробіть скрипт придатним до виконання і запустіть його на іменованій
гостьовій системі:

 # product-name.sh RHEL60x64
 Red Hat Enterprise Linux Server release 6.0 (Santiago)

You can also use an XPath query on the L<virt-inspector(1)> XML using the
C<xpath> command line tool or from your favourite programming language:

 # virt-inspector RHEL60x64 > xml
 # xpath '//product_name' < xml
 Found 1 nodes:
 -- NODE --
 <product_name>Red Hat Enterprise Linux Server release 6.0 (Santiago)</product_name>

=head1 Отримання типового ядра для завантаження для віртуальної машини Linux

За наведеним нижче посиланням можна знайти програму для виведення типового
ядра для завантаження у віртуальній машині Linux.

L<https://rwmj.wordpress.com/2010/10/30/tip-use-augeas-to-get-the-default-boot-kernel-for-a-vm/#content>

У ній використано Augeas та методику, якою можна скористатися для виконання
багатьох різних завдань, зокрема таких:

=over 4

=item *

показ списку облікових записів користувачів у гостьовій системі

=item *

показ списку сховищ, які використовуються системою

=item *

показ списку серверів NTP, з якими з'єднано систему

=item *

показ списку повідомлень під час останнього сеансу завантаження системи

=item *

показ списку користувачів, які входили до системи нещодавно

=back

L<http://augeas.net/>

=head1 Повислі гостьові системи

Існують різноманітні способи скористатися libguestfs для визначення причин,
чому гостьова система повисла або не відповідає на запити:

=over 4

=item 1.

Читання файлів журналу за допомогою virt-cat:

 virt-cat Guest /var/log/messages | less

=item 2.

Читання журналу подій Windows (лише Windows Vista або новіші версії):

L<https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content>

=item 3.

Визначити файли, які було нещодавно оновлено у гостьовій системі:

L<https://rwmj.wordpress.com/2012/02/27/using-libguestfs-to-find-out-why-a-windows-guest-was-hanging/#content>

Це може підказати вам, яка саме програма працює.

=back

=head1 Створення шістнадцяткових дампів секторів диска з гостьової системи

Створення шістнадцяткового дампу розділу завантаження (MBR / перший сектор):

 guestfish --ro -a диск.img run : pread-device /dev/sda 0x200 0 |
   hexdump -C

(C<0x200> = 512 байтів, тобто розмір традиційних секторів PC)

Щоб створити шістнадцятковий дамп N-го розділу, замініть C<N> на відповідне
число у такій команду:

 guestfish --ro -a disk.img \
     run : pread-device /dev/sda 0x200 $((N*0x200)) |
   hexdump -C

=head1 Шістнадцяткове редагування секторів у гостьовій системі

Редагування шістнадцяткового дампу розділу завантаження (MBR / перший
сектор):

 guestfish --rw -a диск.img run : hexedit /dev/sda 0x200

=head1 Встановлення пакунків (RPM, пакунки Debian) у гостьовій системі

Починаючи з libguestfs 1.26, L<virt-builder(1)>, L<virt-customize(1)> та
L<virt-sysprep(1)> мають параметр I<--install> для встановлення пакунків у
гостьових системах Linux. (Скористайтеся virt-customize, якщо у вас уже є
наявна гостьова система, або virt-builder, якщо ви хочете створити гостьову
систему від початку).

Приклад:

 virt-builder fedora-20 --install emacs

=head1 Встановлення пакунків із альтернативного сховища

Починаючи з libguestfs 1.26, ви можете скористатися параметром I<--edit>
L<virt-builder(1)>, L<virt-customize(1)> або L<virt-sysprep(1)>  для
редагування метаданих сховища до встановлення пакунків.

Наприклад, вказана нижче команда встановить пакунки зі сховища
updates-testing у Fedora:

 virt-builder fedora-20 \
   --edit '/etc/yum.repos.d/fedora-updates-testing.repo:
             s/enabled=0/enabled=1/' \
   --install emacs

=head1 Встановлення завантажувача SYSLINUX у гостьовій системі

SYSLINUX is a small, easy to configure bootloader for Linux and Windows
guests.  If your guest is not bootable, you can install the SYSLINUX
bootloader using either the guestfish commands C<syslinux> (for FAT-based
guests) or C<extlinux> (for ext2/3/4 and btrfs-based guests).

This guide assumes a Linux guest where F</dev/sda1> is F</boot>,
F</boot/vmlinuz> is the guest kernel, and F</dev/sda3> is the root
partition.  For a Windows guest you would need a FAT-formatted boot
partition and you would need to use the C<syslinux> command instead.

Create a F<syslinux.cfg> configuration file.  You should check the SYSLINUX
documentation at L<http://www.syslinux.org> but it may look something like
this:

 DEFAULT linux
 LABEL linux
   SAY Booting the kernel
   KERNEL vmlinuz
   INITRD initrd
   APPEND ro root=/dev/sda3

Знайдіть головний запис завантаження syslinux (файл, який називається якось
так: F</usr/share/syslinux/mbr.bin>).

 guestfish -a диск.img -i
 # Вивантаження головного запису завантаження та файла налаштувань:
 ><fs> upload ..../mbr.bin /boot/mbr.bin
 ><fs> upload ..../syslinux.cfg /boot/syslinux.cfg
 # Запис MBR до сектора завантаження:
 ><fs> copy-file-to-device /boot/mbr.bin /dev/sda size:440
 # Встановлення syslinux на першому розділі:
 ><fs> extlinux /boot
 # Визначення першого розділу як завантажувального:
 ><fs> part-set-bootable /dev/sda 1 true

Див. також
L<http://rwmj.wordpress.com/2013/04/04/new-in-libguestfs-use-syslinux-or-extlinux-to-make-bootable-guests/#content>

=head1 Показати список програм, встановлених у віртуальній машині

Збережіть такий текст до файла F<list-apps.sh>:

 #!/bin/sh -
 set -e
 eval "$(guestfish --ro -d "$1" --i --listen)"
 root="$(guestfish --remote inspect-get-roots)"
 guestfish --remote inspect-list-applications "$root"
 guestfish --remote exit

Зробіть цей файл придатним до виконання, а потім можете запустити його для
будь-якої іменованої віртуальної машини:

 # list-apps.sh WinGuest
 [0] = {
   app_name: Mozilla Firefox (3.6.12)
   app_display_name: Mozilla Firefox (3.6.12)
   app_epoch: 0
   app_version: 3.6.12 (en-GB)
   app_release:
   app_install_path: C:\Program Files\Mozilla Firefox
   app_trans_path:
   app_publisher: Mozilla
   app_url: http://www.mozilla.com/en-GB/
   app_source_package:
   app_summary:
   app_description: Mozilla Firefox
 }
 [1] = {
   app_name: VLC media player
   app_display_name: VLC media player 1.1.5
   app_epoch: 0
   app_version: 1.1.5
   app_release:
   app_install_path: C:\Program Files\VideoLAN\VLC
   app_trans_path:
   app_publisher: VideoLAN
   app_url: http://www.videolan.org/
   app_source_package:
   app_summary:
   app_description:
 }

If you want to run the script on disk images (instead of libvirt virtual
machines), change C<-d "$1"> to C<-a "$1">.  See also L<virt-inspector(1)>.

=head1 Показати список файлів і каталогів у віртуальній машині

Скористайтеся L<virt-ls(1)>.

=head1 Показати список служб у віртуальній машині Windows

The link below contains a script that can be used to list out the services
from a Windows VM, and whether those services run at boot time or are loaded
on demand.

L<https://rwmj.wordpress.com/2010/12/10/tip-list-services-in-a-windows-guest/#content>

=head1 Створення образу диска розрідженим

Скористайтеся L<virt-sparsify(1)>.

=head1 Спостереження за зміною використання диска з часом

You can use L<virt-df(1)> to monitor disk usage of your guests over time.
The link below contains a guide.

L<http://web.archive.org/web/20130214073726/http://virt-tools.org/learning/advanced-virt-df/>

=head1 Читання журналу подій у Windows з версії Windows Vista

L<guestfish(1)> plus the tools described in the link below can be used to
read out the Windows Event Log from any virtual machine running Windows
Vista or a later version.

L<https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content>

=head1 Вилучення пароля root (Linux)

Using the L<virt-edit(1)> I<-e> option you can do simple replacements on
files.  One use is to remove the root password from a Linux guest:

 virt-edit -d назва_домену /etc/passwd -e 's/^root:.*?:/root::/'

 virt-edit -a диск.img /etc/passwd -e 's/^root:.*?:/root::/'

=head1 Вилучення пароля адміністратора (Windows)

The link below contains one technique for removing the Administrator
password from a Windows VM, or to be more precise, it gives you a command
prompt the next time you log in which you can use to bypass any security:

L<https://mdbooth.wordpress.com/2010/10/18/resetting-a-windows-guests-administrator-password-with-guestfish/>

=head1 Sysprepping a virtual machine (Windows)

It is possible to do a "sysprep" using libguestfs alone, although not
straightforward.  Currently there is code in the Aeolus Oz project which
does this (using libguestfs).  It is likely we will add this to
L<virt-sysprep(1)> in future.

L<https://github.com/clalancette/oz>
L<https://www.redhat.com/archives/virt-tools-list/2011-May/msg00019.html>

=head1 Розпакування компакт-диска з портативною системою

Linux live CDs often contain multiple layers of disk images wrapped like a
Russian doll.  You can use L<guestfish(1)> to look inside these multiple
layers, as outlined in the guide below.

L<https://rwmj.wordpress.com/2009/07/15/unpack-the-russian-doll-of-a-f11-live-cd/#content>

=head1 Вивантаження і звантаження файлів

The link below contains general tips on uploading (copying in)  and
downloading (copying out) files from VMs.

L<https://rwmj.wordpress.com/2010/12/02/tip-uploading-and-downloading/#content>

=head1 Вивантаження даних на файлові системи без обробки

You can use L<guestfish(1)> to upload whole filesystems into a VM, even into
a filesystem which is encrypted or buried inside an LV or RAID device:

 guestfish --rw -a disk.img run : upload sda1.img /dev/sda1

 guestfish --rw -d Guest run : upload lv.img /dev/vg_guest/lv_root

One common problem is that the filesystem isn't the right size for the
target.  If it is too large, there’s not much you can do with libguestfs -
you have to prepare the filesystem differently.  But if the filesystem needs
to expand into the target, you can use guestfish to resize it to the right
size:

 guestfish --rw -d Guest run : \
   upload lv.img /dev/vg_guest/lv_root : \
   resize2fs /dev/vg_guest/lv_root

(or use C<ntfsresize> if the filesystem is NTFS).

=head1 Use libguestfs tools on VMware ESX guests

The link below explains how to use libguestfs, L<guestfish(1)> and the virt
tools on any VMware ESX guests, by first sharing the VMware VMFS over sshfs.

L<https://rwmj.wordpress.com/2011/05/10/tip-use-libguestfs-on-vmware-esx-guests/#content>

=head1 ТАКОЖ ПЕРЕГЛЯНЬТЕ

L<guestfs(3)>, L<guestfish(1)>, L<guestfs-examples(3)>,
L<guestfs-erlang(3)>, L<guestfs-gobject(3)>, L<guestfs-golang(3)>,
L<guestfs-java(3)>, L<guestfs-lua(3)>, L<guestfs-ocaml(3)>,
L<guestfs-perl(3)>, L<guestfs-python(3)>, L<guestfs-ruby(3)>,
L<http://libguestfs.org/>.

=head1 АВТОРИ

Richard W.M. Jones (C<rjones at redhat dot com>)

=head1 АВТОРСЬКІ ПРАВА

Copyright (C) 2009-2018 Red Hat Inc.

