
=head1 НАЗВА

virt-filesystems — програма для показу списку файлових систем, розділів, блокових пристроїв, LVM у віртуальних машинах або образах дисків

=head1 КОРОТКИЙ ОПИС

 virt-filesystems [--параметри] -d назва_домену

 virt-filesystems [--параметри] -a диск.img [-a диск.img ...]

=head1 ОПИС

За допомогою цієї програми ви зможете виявляти файлові системи, розділи диска, логічні томи та визначати їхні розміри у образі диска або у віртуальній машині. Програма є замінником L<virt-list-filesystems(1)> та L<virt-list-partitions(1)>.

Одним із варіантів використання цієї програми є додавання її у скрипти для ітеративного обходу усіх файлових систем на образі диска:

 for fs in $(virt-filesystems -a disk.img); do
   # ...
 done

Це одним використанням програми є виведення списку розділів до використання іншого інструмента для внесення змін до цих розділів (зокрема програми L<virt-resize(1)>). Якщо вам цікавий вміст невідомого образу диска, скористайтеся цим інструментом разом із L<virt-inspector(1)>.

Керувати виведенням даних цією програмою можна за допомогою різноманітних параметрів командного рядка. Вам слід задати параметр I<-a> або I<-d>, щоб визначити образ диска або гостьову систему libvirt. Якщо ви вкажете один з цих параметрів, програма покаже знайдені файлові системи, по одній на рядок, ось так:

 $ virt-filesystems -a disk.img
 /dev/sda1
 /dev/vg_guest/lv_root

Якщо ви додасте I<-l> або I<--long>, у виведених даних буде показано додаткову інформацію:

 $ virt-filesystems -a disk.img -l
 Назва                  Тип          ВФС   Мітка  Розмір
 /dev/sda1              filesystem   ext4  boot   524288000
 /dev/vg_guest/lv_root  filesystem   ext4  root   10212081664

Якщо ви додасте параметр I<--extra>, буде показано і файлові системи, які непридатні до монтування (резервна пам'ять, невідомий формат):

 $ virt-filesystems -a disk.img --extra
 /dev/sda1
 /dev/vg_guest/lv_root
 /dev/vg_guest/lv_swap
 /dev/vg_guest/lv_data

Якщо ви додасте параметр I<--partitions>, буде показано розділи, а не файлові системи:

 $ virt-filesystems -a disk.img --partitions
 /dev/sda1
 /dev/sda2

У подібний спосіб, ви можете скористатися параметрами I<--logical-volumes>, I<--volume-groups>, I<--physical-volumes>, I<--block-devices>, щоб отримати список цих записів.

Ви можете також скористатися цими параметрами у поєднанні (якщо вам потрібна комбінація із файловими системами, вам слід додати I<--filesystems>). Зауважте, що деякі з пунктів списку можуть належати одночасно декільком категоріям (наприклад, F</dev/sda1> може бути як розділом, так і файловою системою). Такі пункти буде показано відповідну кількість разів. Щоб отримати список, який міститиме абсолютно усе, про що знає virt-filesystems, скористайтеся параметром I<--all>.

UUID (оскільки вони є доволі довгими) типово показано не буде. Додайте параметр I<--uuid>, щоб ознайомитися із UUID пристроїв і файлових систем у розширених даних.

I<--all --long --uuid> є корисною комбінацією для показу усіх доступних даних щодо усього.

 $ virt-filesystems -a win.img --all --long --uuid -h
 Назва     Тип        VFS  Мітка           Розмір Батьк.   UUID
 /dev/sda1 filesystem ntfs System Reserved 100M -        F81C92571C92112C
 /dev/sda2 filesystem ntfs -               20G  -        F2E8996AE8992E3B
 /dev/sda1 partition  -    -               100M /dev/sda -
 /dev/sda2 partition  -    -               20G  /dev/sda -
 /dev/sda  device     -    -               20G  -        -

Для отримання зручних для машинної обробки даних скористайтеся параметром I<--csv>. Дані буде виведено у форматі значень відокремлених комами.

=head1 ПАРАМЕТРИ

=over 4

=item B<--help>

Показати коротку довідку.

=item B<-a> файл

=item B<--add> файл

Додати I<файл>, який має бути образом диска з віртуальної машини. Якщо у віртуальній машині декілька блокових пристроїв, вам слід вказати їх усі за допомогою окремих записів параметра I<-a>.

Формат образу диска визначається автоматично. Щоб перевизначити його і примусово використати певний формат, скористайтеся параметром I<--format=..>.

=item B<-a адреса>

=item B<--add адреса>

Додати віддалений диск. Див. L<guestfish(1)/ДОДАВАННЯ ВІДДАЛЕНОГО СХОВИЩА>.

=item B<--all>

Вивести усе. У поточній версії це те саме, що вказати такі параметри: I<--filesystems>, I<--extra>, I<--partitions>, I<--block-devices>, I<--logical-volumes>, I<--volume-groups>, I<--physical-volumes>. (У майбутньому до цього списку може бути додано інші пункти).

Див. також I<--long>.

=item B<--blkdevs>

=item B<--block-devices>

Показати список блокових пристроїв.

__INCLUDE:blocksize-option.pod__

=item B<-c> адреса

=item B<--connect> адреса

Якщо використовується libvirt, встановити з’єднання з вказаним I<URI>. Якщо пропущено, з’єднання буде встановлено з типовим гіпервізором libvirt.

Якщо вказати блокові пристрої гостьових систем безпосередньо (I<-a>), libvirt не буде використовуватися взагалі.

=item B<--csv>

Вивести результати до формату CSV (записів, відокремлених комами). Дані у цьому форматі можна просто імпортувати до баз даних і електронних таблиць. Втім, варто ознайомитися із розділом L</НОТАТКА ЩОДО ФОРМАТУ CSV>, наведеним нижче.

=item B<-d> гість

=item B<--domain> гість

Додати всі диски з вказаної гостьової системи libvirt. UUID доменів можна використовувати замість назв.

=item B<--echo-keys>

Типово, якщо virt-filesystems попросить вас ввести ключ або пароль, програма не відтворюватиме введені символи на екрані. Якщо ви не боїтеся TEMPEST-нападів, або у вашій кімнаті нікого, окрім вас, немає, ви можете скористатися цим прапорцем, щоб бачити, які саме символи ви вводите.

=item B<--extra>

Це спричинить показ файлових систем, які не є звичайними файловими системами, які придатні до монтування. До цієї категорії включено розділи резервної пам'яті та файлові системи, які є порожніми або містять невідомі дані.

Цей параметр автоматично встановлює параметр I<--filesystems>.

=item B<--filesystems>

Показати список придатних до монтування систем. Якщо параметр показу не було визначено, цей параметр буде додано до команди.

Якщо було використано параметр I<--extra>, буде показано і непридатні до монтування файлові системи.

=item B<--format=raw|qcow2|..>

=item B<--format>

Типовим значенням для параметра I<-a> є автоматичне визначення формату образу диска. Використання цього параметра примусово визначає значення параметрів I<-a> формату диска у наступному рядку команди. Використання параметра I<--format> без аргументу перемикає програму у режим автоматичного визначення у наступних параметрах I<-a>.

Приклад:

 virt-filesystems --format=raw -a диск.img

примусове встановлення формату без обробки (без автоматичного визначення) для F<disk.img>.

 virt-filesystems --format=raw -a диск.img --format -a інший_диск.img

примусове встановлення формату без обробки (без автоматичного визначення) для F<diskimg> і повернення до автоматичного визначення для F<another.img>.

Якщо ви користуєтеся ненадійними образами гостьових систем у необробленому форматі, вам слід скористатися цим параметром для визначення формату диска. Таким чином можна уникнути можливих проблем з захистом для сформованих зловмисниками гостьових систем (CVE-2010-3851).

=item B<-h>

=item B<--human-readable>

У режимі I<--long> показувати розміри у зручному для читання форматі.

__INCLUDE:keys-from-stdin-option.pod__

=item B<-l>

=item B<--long>

Показувати додаткові стовпчики даних («довгий формат»).

Якщо ви не додасте параметр I<--no-title>, буде додано рядок заголовка.

Вміст додаткових стовпчиків залежить від вибраного виведення, а упорядкування стовпчиків може змінитися у майбутніх версіях. Для того, щоб виведені дані відповідали вхідним даним зовнішніх програм, скористайтеся рядком заголовків, виведенням I<--csv> і/або L<csvtool(1)>.

Якщо дані має бути виведено у зручному для читання людиною форматі, скористайтеся параметром I<-h>. Типово, буде показано розміри у I<байтах>.

Скористайтеся параметром I<--uuid>, щоб було показано також UUID.

=item B<--lvs>

=item B<--logvols>

=item B<--logical-volumes>

Показати логічні томи LVM. У цьому режимі томи буде показано незалежно від того, чи містяться на логічних томах файлові системи.

=item B<--no-title>

У режимі I<--long> не додавати рядок заголовків.

Зауважте, що порядок стовпчиків не є фіксованим і може змінитися у майбутніх версіях virt-filesystems; отже, використання цього параметра може призвести до не зовсім очікуваних наслідків.

=item B<--parts>

=item B<--partitions>

Показати розділи. У цьому режимі розділи буде показано незалежно від того, чи містяться на розділах файлові системи.

=item B<--pvs>

=item B<--physvols>

=item B<--physical-volumes>

Показати фізичні томи LVM.

=item B<--uuid>

=item B<--uuids>

У режимі I<--long> буде також виведено UUID.

=item B<-v>

=item B<--verbose>

Увімкнути докладний показ повідомлень з метою діагностики.

=item B<-V>

=item B<--version>

Показати дані щодо версії і завершити роботу.

=item B<--vgs>

=item B<--volgroups>

=item B<--volume-groups>

Показати групи томів LVM.

=item B<-x>

Увімкнути трасування викликів програмного інтерфейсу libguestfs.

=back

=head1 СТОВПЧИКИ

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

=over 4

=item B<Назва>

Назва файлової системи, розділу, блокового пристрою або LVM.

Назви пристроїв та розділів буде показано у форматі канонічних назв libguestfs. Таким чином, наприклад, F</dev/sda2> означатиме другий розділ на першому пристрої.

Якщо параметр I<--long> B<не> вказано, у виведених даних буде лише стовпчик назв.

=item B<Тип>

Тип об'єкта. Наприклад, C<filesystem>, C<lv>, C<device> тощо.

=item B<VFS>

Якщо буде виявлено відому програмі файлову систему, у цьому стовпчику буде показано дані щодо неї, наприклад C<ext4>.

=item B<Мітка>

Якщо у об'єкта є мітка (яка використовується для ідентифікації та монтування файлових систем), у цьому стовпчику міститься мітка.

=item B<MBR>

Байт типу розділу, буде показано у форматі двоцифрового шістнадцяткового числа. Довідковий список типів розділів наведено тут: L<http://www.win.tue.nl/~aeb/partitions/partition_types-1.html>

Це стосується лише розділів DOS (MBR).

=item B<Розмір>

Розмір об'єкта у байтах. Якщо використано параметр I<--human>, розмір буде вказано у зручному для читання форматі.

=item B<Основа>

У стовпчику батьківських об'єктів показано відношення батьківських і дочірніх об'єктів.

Наприклад, якщо об'єкт є розділом, у цьому стовпчику міститиметься назва пристрою, на якому цей розділ розташовано. Якщо об'єкт є логічним томом, у цьому стовпчику буде наведено назву групи томів.

Якщо батьківських об'єктів декілька, вмістом стовпчика буде список значень відокремлених комами, наприклад C</dev/sda,/dev/sdb>.

=item B<UUID>

Якщо у об'єкта є UUID (який використовується для ідентифікації та монтування файлових систем та блокових пристроїв), у цьому стовпчику міститься UUID у форматі рядка.

UUID буде показано, лише якщо вказано параметр I<--uuid>.

=back

=head1 ЗАУВАЖЕННЯ ЩОДО ФОРМАТУ CSV

Формат значень, які відокремлено комами (CSV), є оманливо простим. Може I<здатися>, що його просто обробляти, але насправді це зовсім не так.

Міф: достатньо розділити поля за комами. Реальність: поділ комами I<не> працює у надійний спосіб. Ось приклад із двома стовпчиками:

 "foo,bar",baz

Міф: слід читати файл за рядками, один рядок за одну операцію читання. Реальність: читання за рядками I<не> працює у надійний спосіб. Ось приклад із одним рядком:

 "foo
 bar",baz

Для скриптів командної оболонки скористайтеся C<csvtool> (L<https://github.com/Chris00/ocaml-csv> також є серед пакунків основних дистрибутивів Linux).

Для інших мов програмування використовуйте бібліотеку для обробки даних CSV (наприклад, C<Text::CSV> для Perl або вбудовану бібліотеку csv Python).

У більшості електронних таблиць та баз даних передбачено можливості безпосереднього імпортування даних CSV.

=head1 СТАН ВИХОДУ

Ця програма повертає значення 0 у разі успішного завершення і ненульове значення, якщо сталася помилка.

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

L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-df(1)>, L<virt-drivers(1)>, L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, L<csvtool(1)>, L<http://libguestfs.org/>.

=head1 АВТОР

Richard W.M. Jones L<http://people.redhat.com/~rjones/>

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

Copyright (C) 2010-2023 Red Hat Inc.

