Scroll to navigation

guestfs(3) Virtualization Support guestfs(3)

НАЗВА

guestfs — бібліотека для доступу та внесення змін до образів віртуальних машин

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

 #include <guestfs.h>
 
 guestfs_h *g = guestfs_create ();
 guestfs_add_drive (g, "guest.img");
 guestfs_launch (g);
 guestfs_mount (g, "/dev/sda1", "/");
 guestfs_touch (g, "/hello");
 guestfs_umount (g, "/");
 guestfs_shutdown (g);
 guestfs_close (g);
 cc prog.c -o prog -lguestfs
або:
 cc prog.c -o prog `pkg-config libguestfs --cflags --libs`

ОПИС

Libguestfs є бібліотекою для доступу до образів дисків та віртуальних машин і внесення зміни до них.

Цю сторінку підручника присвячено документації щодо програмного інтерфейсу мовою програмування C.

Якщо вам потрібна якась вступна інформація щодо libguestfs, зверніться до цього сайта: http://libguestfs.org/

У кожного інструмента віртуалізації є власна сторінка підручника (повний список наведено у розділі "ДИВ. ТАКОЖ" наприкінці цього файла).

Інші сторінки підручника, які присвячено libguestfs:

guestfs-faq(1)
Поширені питання (ЧаП).
guestfs-examples(3)
Приклади використання програмного інтерфейсу з C. Приклади іншими мовами програмування можна знайти у розділі "ВИКОРИСТАННЯ LIBGUESTFS ЗА ДОПОМОГОЮ ІНШИХ МОВ ПРОГРАМУВАННЯ" нижче.
guestfs-recipes(1)
Підказки і рецепти.
guestfs-performance(1)
Настанови та рішення, які пов’язано із швидкодією.
libguestfs-test-tool(1)
guestfs-testing(1)
Допомога у тестуванні libguestfs.
guestfs-building(1)
Настанови щодо збирання libguestfs з початкових кодів.
guestfs-hacking(1)
Надсилання коду до libguestfs.
guestfs-internals(1)
Опис принципів роботи libguestfs.
guestfs-security(1)
Дані щодо безпеки, зокрема список CVE, пов’язаних із libguestfs.

ОГЛЯД API

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

ОБРОБНИКИ

Перш ніж ви зможете скористатися викликами libguestfs, вам слід створити дескриптор. Далі, вам слід додати до дескриптора принаймні один образ диска, потім запустити дескриптор, далі виконати потрібні вам дії і, нарешті, закрити дескриптор. За угодою щодо синтаксису ми використовуємо одну літеру "g" для іменування змінної дескриптора, хоча, звичайно ж, ви можете вибрати будь-яку іншу назву.

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

 guestfs_h *g = guestfs_create ();
 
 /* Викликаємо guestfs_add_drive додаткові рази, якщо
  * образів дисків декілька.
  */
 guestfs_add_drive (g, "guest.img");
 
 /* Більшість викликів з обробки не працюватимуть, доки ви
  * не запустите дескриптор «g». Вам слід зробити це _після_ додавання
  * дисків і _до_ інших команд.
  */
 guestfs_launch (g);
 
 /* Або визначити розділи, логічні томи тощо, які є доступними: */
 char **partitions = guestfs_list_partitions (g);
 char **logvols = guestfs_lvs (g);
 
 /* Або наказати libguestfs знайти для вас файлові системи: */
 char **filesystems = guestfs_list_filesystems (g);
 
 /* Або скористатися інспекцією (див. розділ щодо інспекції нижче). */
 
 /* Щоб отримати доступ до файлової системи у образі, вам слід її змонтувати. */
 guestfs_mount (g, "/dev/sda1", "/");
 
 /* Тепер ви можете виконувати дії з файловою системою на
  * образі диска операційної системи.
  */
 guestfs_touch (g, "/hello");
 
 /* Синхронізуємо диск. Це дія, протилежна до guestfs_launch. */
 guestfs_shutdown (g);
 
 /* Закрити і звільнити дескриптор «g». */
 guestfs_close (g);

До наведеного вище коду не включено обробник помилок. У справжньому коді слід ретельно перевіряти повернуті значення на помилки. Загалом, усі функції, які повертають цілі числа, повертають "-1", якщо станеться помилка, а усі функції, які повертають вказівники, якщо станеться помилка, повертають "NULL". Див. розділ "ОБРОБКА ПОМИЛОК" нижче, щоб дізнатися про те, як обробляти помилки. Також ознайомтеся із документацією щодо кожного виклику функції, щоб дізнатися більше про те, як функції повідомляють про помилки.

У наведеному вище коді не виконується free(3) для рядків та масивів, які повертаються функціями. Зверніться до документації з відповідної функції, щоб дізнатися більше про те, як звільнити повернуте значення.

Повноцінні робочі приклади можна знайти у підручнику guestfs-examples(3).

ОБРАЗИ ДИСКІВ

Назва файла образу ("guest.img" у наведеному вище прикладі) може бути назвою образу диска з віртуальної машини, створеної за допомогою dd(1) копії фізичного диска, справжнього блокового пристрою або просто назвою порожнього файла, заповненого нулями, який можна створити за допомогою posix_fallocate(3). Libguestfs надає вам змогу виконувати корисні операції із усіма такими образами.

Викликом, яким вам слід користуватися у сучасному коді для додавання дисків, є "guestfs_add_drive_opts". Щоб додати образ диска з можливістю запису і вказати його формат (raw), скористайтеся таким кодом:

 guestfs_add_drive_opts (g, filename,
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         -1);

Ви можете додати диск у режимі лише читання:

 guestfs_add_drive_opts (g, filename,
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
                         -1);

або скористатися викликом старішої функції "guestfs_add_drive_ro". Якщо ви використовуєте прапорець лише читання, libguestfs не зможе вносити зміни до файла. (Див. також "ФОРМАТИ ОБРАЗІВ ДИСКІВ" нижче).

Будьте дуже обережні із дисками, які використовуються, наприклад, віртуальною машиною. Додавання таких дисків у режимі читання-запису майже напевне призведе до пошкодження вмісту, але додавання у режимі лише читання є безпечним.

Слід обов'язково додати принаймні один образ диска. Якщо потрібно, можна додати декілька образів. Якщо додається декілька образів дисків, вони, зазвичай, мають бути «пов'язані», тобто походити із однієї гостьової системи. У програмному інтерфейсі на образи дисків, зазвичай, посилаються у форматі /dev/sda (для першого доданого диска), /dev/sdb (для другого доданого диска) тощо.

Після виклику "guestfs_launch" додавати нові образи вже не можна. Ви можете викликати "guestfs_list_devices", щоб отримати список назв пристроїв у порядку, за яким їх було додано. Див. також "ІМЕНУВАННЯ БЛОКОВИХ ПРИСТРОЇВ" нижче.

Правила з'єднання дисків у «гарячому» режимі (у libguestfs ≥ 1.20) є дещо іншими. Див. "З'ЄДНАННЯ У «ГАРЯЧОМУ» РЕЖИМІ" нижче.

МОНТУВАННЯ

Перш ніж ви зможете читати або записувати файли, створювати каталоги та виконувати інші дії на образі диска, який містить файлові системи, вам слід змонтувати ці файлові системи за допомогою "guestfs_mount" або "guestfs_mount_ro". Якщо ви вже знаєте, що на образі диска (наприклад) міститься один розділ із файловою системою, ви можете змонтувати її безпосередньо:

 guestfs_mount (g, "/dev/sda1", "/");

де /dev/sda1 означає буквально «перший розділ (1) першого образу диска, який було додано (/dev/sda)».
Якщо на диску містяться логічні томи LVM2 Linux, ви можете посилатися на них (наприклад, /dev/VG/LV). Зауважте, що вказані пристрої є віртуальними пристроями libguestfs, які не мають нічого спільного із пристроями основної системи.

Якщо у вас є образ диска, і ви не знаєте, що саме на ньому міститься, вам доведеться спочатку все це з'ясувати. Libguestfs теж може це робити: скористайтеся "guestfs_list_partitions" або "guestfs_lvs" для отримання списку можливих розділів і логічних томів, а потім або спробуйте змонтувати кожен з них, щоб визначити, які з них придатні до монтування, або у якийсь інший спосіб вивчіть їх за допомогою "guestfs_vfs_type" або "guestfs_file". Щоб просто отримати список файлових систем, скористайтеся "guestfs_list_filesystems".

Крім того, у libguestfs передбачено набір програмних інтерфейсів для інспектування невідомих образів дисків (див. "ІНСПЕКТУВАННЯ" нижче). Ви також можете скористатися високорівневими програмами, побудованими на основі libguestfs, зокрема virt-inspector(1).

Щоб змонтувати файлову систему у режимі лише читання, скористайтеся "guestfs_mount_ro". Передбачено декілька інших варіантів викликів "guestfs_mount_*".

ДОСТУП ТА ВНЕСЕННЯ ЗМІН ДО ФАЙЛОВИХ СИСТЕМ

Більша частина програмного інтерфейсу libguestfs складається із низькорівневих викликів для доступу до файлів та внесення змін до файлів, каталогів, символічних посилань тощо на змонтованих файлових системах. Передбачено понад сотню таких викликів, список яких із докладним описом наведено нижче на цій сторінці підручника. Ми навіть не намагатимемося повністю описати їх у цьому короткому огляді.

Вказуйте адреси і назви файлів повністю, починаючи з "/", разом з точкою монтування.

Наприклад, якщо вами змонтовано файлову систему до "/", і ви бажаєте виконати читання файла з назвою "etc/passwd", ви можете скористатися таким кодом:

 char *data = guestfs_cat (g, "/etc/passwd");

Ця функція повертає дані "data" як новорозміщений буфер, що містить усі дані з файла (із певними умовами; див. також "ОТРИМАННЯ" нижче) або "NULL", якщо сталася помилка.

Ще один приклад: для створення каталогу верхнього рівня із назвою "var" на цій файловій системі можна скористатися такою командою:

 guestfs_mkdir (g, "/var");

Щоб створити символічне посилання, ви можете скористатися таким кодом:

 guestfs_ln_s (g, "/etc/init.d/portmap",
               "/etc/rc3.d/S30portmap");

Libguestfs відкидатиме спроби скористатися відносними шляхами. Крім того, не передбачено поняття поточного робочого каталогу.

Libguestfs може повертати помилки у багатьох випадках: наприклад, якщо файлова система не придатна до запису або якщо потрібного вам файла або каталогу не існує. Якщо ви користуєтеся програмним інтерфейсом C (документовано тут), вам слід перевіряти умову наявності помилки після кожного виклику. (У інших прив'язках до мов програмування ці помилки перетворюються на виключення.)

Запис до файлів визначається окремою для кожного дескриптора umask, як встановлюється викликом "guestfs_umask" і має типове значення 022. Див. "UMASK".

Починаючи з версії libguestfs 1.18, можна монтувати файлову систему libguestfs до локального каталогу із деякими обмеженнями. Див. "ЛОКАЛЬНЕ МОНТУВАННЯ" нижче.

ПОДІЛ НА РОЗДІЛИ

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

У типовому випадку, коли вам потрібно створити єдиний розділ на увесь диск, вам слід скористатися викликом "guestfs_part_disk":

 const char *parttype = "mbr";
 if (disk_is_larger_than_2TB)
   parttype = "gpt";
 guestfs_part_disk (g, "/dev/sda", parttype);

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

LVM2

Libguestfs надає доступ до великої частини програмного інтерфейсу LVM2, зокрема "guestfs_lvcreate" і "guestfs_vgremove". Але цей доступ не матиме великого сенсу, якщо ви не ознайомитеся докладно із поняттями фізичних томів, груп томів та логічних томів.

Автор цього підручника наполегливо рекомендує ознайомитися із настановами щодо LVM HOWTO, які наведено у інтернеті: http://tldp.org/HOWTO/LVM-HOWTO/.

ОТРИМАННЯ ДАНИХ

Для отримання невеличких текстових файлів скористайтеся "guestfs_cat". Цей виклик не може обробляти файли, які містять символи ASCII NUL ("\0"). Втім, програмний інтерфейс цього виклику є дуже простим у використанні.

"guestfs_read_file" можна скористатися для читання файлів, які містять довільні 8-бітові дані, оскільки цей виклик повертає пару (вказівник, розмір).

"guestfs_download" можна скористатися для отримання будь-якого файла без обмежень на вміст або розмір.

Для отримання одразу декількох файлів скористайтеся "guestfs_tar_out" і "guestfs_tgz_out".

ВИВАНТАЖЕННЯ

Для запису невеличкого файла із фіксованим вмістом скористайтеся "guestfs_write". Для створення файла, який заповнено нулями, скористайтеся "guestfs_truncate_size" (розріджений файл) або "guestfs_fallocate64" (файл, для якого розподілено усі блоки на диску). Передбачено багато інших функцій для створення тестових файлів, наприклад "guestfs_fill" і "guestfs_fill_pattern".

Для вивантаження окремого файла скористайтеся "guestfs_upload". У цього виклику немає обмежень на вміст і розмір файла.

Для вивантаження одразу декількох файлів скористайтеся "guestfs_tar_in" і "guestfs_tgz_in".

Втім, найшвидшим способом вивантаження великої кількості довільних файлів є перетворення їх на squashfs або ISO компакт-диска (див. mksquashfs(8) і mkisofs(8)) і долучення до системи за допомогою "guestfs_add_drive_ro". Якщо ви додасте диск у передбачуваний спосіб (наприклад, додасте його після усіх інших дисків), назву пристрою можна буде отримати з "guestfs_list_devices", а диск можна буде безпосередньо змонтувати за допомогою "guestfs_mount_ro". Зауважте, що для образів squashfs іноді порушується сумісність із ядрами системи, у них не передбачено підтримки міток та UUID. Якщо ви хочете попередньо зібрати образ або хочете змонтувати його із міткою або UUID, вам слід скористатися форматом образу ISO.

КОПІЮВАННЯ

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

файл у файл
Скористайтеся "guestfs_cp" для копіювання окремого файла або "guestfs_cp_a" для рекурсивного копіювання каталогів.

Для копіювання частини файла (з визначенням відступу та розміру даних) скористайтеся "guestfs_copy_file_to_file".

файл на пристрій
пристрій до файла
пристрій на пристрій
Скористайтеся "guestfs_copy_file_to_device", "guestfs_copy_device_to_file" або "guestfs_copy_device_to_device".

Приклад: дублювання вмісту логічного тому:

 guestfs_copy_device_to_device (g,
         "/dev/VG/Original", "/dev/VG/Copy",
         /* -1 позначає завершення списку необов'язкових параметрів */
         -1);
    

Призначення (/dev/VG/Copy) має бути не меншого розміру за джерело (/dev/VG/Original). Для копіювання обсягу даних, який є меншим за увесь пристрій джерела, скористайтеся додатковим параметром "size":

 guestfs_copy_device_to_device (g,
         "/dev/VG/Original", "/dev/VG/Copy",
         GUESTFS_COPY_DEVICE_TO_DEVICE_SIZE, 10000,
         -1);
    
файл на вузлі на файл або пристрій
Скористайтеся "guestfs_upload". Див. "ВИВАНТАЖЕННЯ" вище.
файл або пристрій у файл на вузлі
Скористайтеся "guestfs_download". Див. "ОТРИМАННЯ" вище.

ВИВАНТАЖЕННЯ І ОТРИМАННЯ ДАНИХ З КАНАЛІВ ТА ДЕСКРИПТОРІВ ФАЙЛІВ

Виклики, подібні до "guestfs_upload", "guestfs_download", "guestfs_tar_in", "guestfs_tar_out" тощо, як може здатися, приймають як аргументи лише назви файлів, тому, як може здатися, ви можете вивантажувати дані лише до файлів і отримувати дані лише з файлів. Втім, у багатьох Un*x-подібних основних системах можна використовувати спеціальні файли пристроїв /dev/stdin, /dev/stdout, /dev/stderr і /dev/fd/N для читання і записування даних з stdin, stdout, stderr та файла з довільним дескриптором N.

Наприклад, virt-cat(1) можна змусити записувати виведені дані до stdout у такий спосіб:

 guestfs_download (g, filename, "/dev/stdout");

а виведений архів tar можна записати до файла із вказаним дескриптором "fd" ось так:

 char devfd[64];
 snprintf (devfd, sizeof devfd, "/dev/fd/%d", fd);
 guestfs_tar_out (g, "/", devfd);

СПИСКИ ФАЙЛІВ

"guestfs_ll" призначено лише для створення зручних для читання даних (в основному, якщо використано еквівалент "ll" у guestfish(1)).

"guestfs_ls" — швидкий спосіб отримати список файлів у каталозі від програм у форматі простого списку рядків.

"guestfs_readdir" — програмний спосіб отримання списку файлів у каталозі разом із додатковою інформацією щодо кожного з файлів. Це дуже схоже на використання виклику readdir(3) у локальних файлових системах.

"guestfs_find" і "guestfs_find0" можна скористатися для рекурсивної побудови списку файлів.

ВИКОНАННЯ КОМАНД

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

Існує багато обмежень щодо цього:

  • Версія ядра системи відрізнятиметься від тієї, на яку може покладатися код програми.
  • Якщо програмі потрібно буде обмінятися даними із фоновими службами, найімовірніше, ці фонові служби не працюватимуть.
  • Програму буде запущено з обмеженим обсягом доступної пам'яті.
  • Мережа буде недоступною, якщо ви її не увімкнете (див. "guestfs_set_network").
  • Передбачено підтримку лише гостьових систем Linux (не Windows, BSD тощо).
  • Обмеження щодо архітектури (наприклад, не працює для гостьової системи PPC на основній системі X86).
  • У гостьових системах із SELinux може виникнути потреба у повторному створенні міток після створення файлів. Див. розділ "SELINUX" нижче.
  • Безпека: запускати програми із гостьових систем із невідомим походженням, гостьових систем, які може бути створено зловмисниками, небезпечно. Програми з таких систем можуть намагатися скористатися вразливостями у вашій програмі, надсилаючи їй спеціально сформовані дані. Також ці програми можуть намагатися скористатися вразливостями у ядрі Linux або qemu, які надаються базовою системою libguestfs. Програми можуть скористатися доступом до мережі, який надається базовою системою libguestfs для виходу за межі звичайних мережевих розділів та брандмауерів. Програми можуть намагатися розширити права доступу або змінити контекст SELinux вашої програми для виконання задумів зловмисників.

    Безпечною альтернативою є використання libguestfs для встановлення скрипту «firstboot» (скрипту, який запускається, коли гостьова система завантажується у звичайному режимі) таким чином, що цей скрипт запускав потрібні вам команди, у звичайному контексті запущеної гостьової системи, зі звичайним захистом мережі тощо. Щоб дізнатися більше про проблеми, пов'язані із захистом, ознайомтеся зі сторінкою підручника щодо guestfs-security(1).

Двома основними програмними інтерфейсами для запуску програм є "guestfs_command" і "guestfs_sh" (передбачено також певні варіанти цих інтерфейсів).

Відмінність двох інтерфейсів полягає у тому, що "guestfs_sh" виконує команди за допомогою командної оболонки, отже, працюють усі символи-замінники, переспрямовування тощо.

ФАЙЛИ НАЛАШТУВАННЯ

Для читання і запису файлів налаштувань у файлових системах гостьових операційних систем Linux ми наполегливо рекомендуємо скористатися Augeas. Наприклад, Augeas знає, як читати і записувати, скажімо, файл паролів Linux shadow або файл налаштувань X.org, отже, вам не доведеться писати для цього додатковий код.

Основні виклики Augeas виконуються за допомогою програмних інтерфейсів "guestfs_aug_*". Тут ми не наводимо документації щодо самої Augeas, оскільки існує чудова документація, викладена на сайті http://augeas.net/.

Якщо ви не хочете користуватися Augeas (ну який же ви неслухняний!), спробуйте викликати "guestfs_read_lines" для отримання файла у форматі списку рядків, які ви ітеративно зможете обробити у коді програми.

ФАЙЛИ ЖУРНАЛУ SYSTEMD

Для читання журналу systemd з гостьової системи Linux скористайтеся програмними інтерфейсами "guestfs_journal_*", починаючи з "guestfs_journal_open".

Із документацією щодо журналу можна ознайомитися за допомогою таких сторінок підручника: sd-journal(3), sd_journal_open(3).

SELINUX

Ми передбачили підтримку гостьових систем із SELinux. Втім, неможливо завантажити правила SELinux гостьової системи до ядра базової системи. Тому стратегія роботи з гостьовими системами із SELinux є повторне встановлення у них міток після внесення змін.

У libguestfs ≥ 1.34 передбачено новий програмний інтерфейс, "guestfs_setfiles", яким можна скористатися для виконання цього завдання. Щоб належним чином скористатися цим програмним інтерфейсом, вам слід обробити налаштування SELinux гостьової системи. Див. модульe virt-customize(1) customize/SELinux_relabel.ml, щоб дізнатися більше про це.

Простішою, але повільнішою альтернативою є виконання touch /.autorelabel у гостьовій системі, що означатиме, що гостьовій системі доведеться повторно встановити усі мітки під час наступного завантаження.

У libguestfs ≤ 1.32 було передбачено програмні інтерфейси "guestfs_set_selinux", "guestfs_get_selinux", "guestfs_setcon" and "guestfs_getcon". Ці програмні інтерфейси не працювали як слід, вони вважаються застарілими. Не використовуйте їх у новому коді.

UMASK

На деякі виклики впливає маска режиму створення поточного файла («umask»). Це, зокрема, виклики, які створюють файли або каталоги, наприклад "guestfs_touch", "guestfs_mknod" і "guestfs_mkdir". Маска впливає або на типовий режим створення файла, або змінює режим доступу, який ви встановлюєте.

Типовим значенням umask є 022. Отже, файли створюватимуться із правами доступу, які подібні до 0644, а каталоги — 0755.

Існує два способи уникнути впливу umask. Можна або встановити для umask значення 0 (викликати "guestfs_umask (g, 0)" одразу після запуску), або викликати "guestfs_chmod" після створення кожного файла або каталогу.

Докладніший опис umask можна знайти на сторінці підручника щодо umask(2).

МІТКИ І UUID

У багатьох файлових системах, на пристроях або логічних томах передбачено підтримку міток (коротких рядків, подібних до «BOOT», які можуть повторюватися) і/або UUID (унікальних на загальному рівні ідентифікаторів).

Для файлових систем користуйтеся "guestfs_vfs_label" або "guestfs_vfs_uuid" для читання мітки або UUID. У деяких файлових системах можна викликати "guestfs_set_label" або "guestfs_set_uuid" для зміни мітки або UUID.

Ви можете знайти файлову систему за міткою або UUID за допомогою виклику "guestfs_findfs_label" або "guestfs_findfs_uuid".

Для LVM2 (де передбачено підтримку лише UUID) передбачено широкий спектр інструментів програмного інтерфейсу для отримання UUID, отримання UUID об'єктів контейнерів і зміни UUID. Див. "guestfs_lvuuid", "guestfs_vguuid", "guestfs_pvuuid", "guestfs_vglvuuids", "guestfs_vgpvuuids", "guestfs_vgchange_uuid", "guestfs_vgchange_uuid_all", "guestfs_pvchange_uuid", "guestfs_pvchange_uuid_all".

Зауважте, що при клонуванні файлової системи, пристрою або усієї гостьової операційної системи варто встановити нові випадково створені UUID для копії.

ЗАШИФРОВАНІ ДИСКИ

Libguestfs надає вам змогу отримувати доступ до гостьових операційних систем Linux, де використовується повне шифрування диска відповідно до стандарту Linux Unified Key Setup (LUKS), що включає майже усі системи шифрування усього диска, які використовуються сучасними гостьовими системами Linux.

Скористайтеся "guestfs_vfs_type" для виявлення зашифрованих за допомогою LUKS блокових пристроїв (функція повертає для таких пристроїв рядок "crypto_LUKS").

Далі, відкрийте ці пристрої, викликавши "guestfs_luks_open". Очевидно, для відкриття вам знадобиться пароль!

Відкриття пристрою LUKS призводить до створення пристрою-прив'язки із назвою /dev/mapper/назва_прив'язки (де "назва_прив'язки" — рядок, який ви передаєте "guestfs_luks_open"). Дані, які читаються і записуються на цей пристрій-прив'язку, розшифровуються і шифруються на базовий блоковий пристрій, відповідно.

Групи томів LVM на пристрої можна зробити видимими викликом "guestfs_vgscan", за яким слід викликати "guestfs_vg_activate_all". Після цього логічні томи можна змонтувати у звичний спосіб.

Скористайтеся зворотною процедурою для закриття пристрою LUKS. Демонтуйте усі логічні томи на ньому, деактивуйте групи томів викликом "guestfs_vg_activate (g, 0, ["/dev/VG"])". Далі, закрийте пристрій-прив'язку викликом "guestfs_luks_close" для пристрою /dev/mapper/назва_прив'язкине для базового блокового пристрою).

ЛОКАЛЬНЕ МОНТУВАННЯ

Починаючи з версії libguestfs 1.18, можна монтувати файлову систему libguestfs до локального каталогу і отримувати доступ до неї за допомогою звичайних викликів і програм POSIX.

Доступність цього може бути обмежено декількома факторами: у системі має бути встановлено FUSE (Filesystem in USErspace), а заголовкові файли libfuse мають бути доступними під час збирання libguestfs. FUSE може потребувати завантаження модуля ядра. Крім того, можливо, потрібно додати поточного користувача до спеціальної групи "fuse". Докладніші відомості можна знайти у документації до вашого дистрибутива та на http://fuse.sf.net.

Виклик монтування файлової системи libguestfs до локального каталогу є послідовним викликом "guestfs_mount_local" з наступним "guestfs_mount_local_run". Другий з цих викликів не повертає керування, аж доки ви не демонтуєте файлову систему. Причиною цього є те, що виклик входить до основного циклу обробки FUSE і обробляє запити ядра, перетворюючи їх на виклики libguestfs. Альтернативний підхід міг би полягати у створенні фонового потоку обробки для виконання цього завдання, але у libguestfs pthreads не є обов'язковою залежністю. Крім того, наш підхід є гнучкішим: наприклад, користувач може створити ще один потік обробки для "guestfs_mount_local_run".

"guestfs_mount_local" потребує певного часу на налаштовування точки монтування. Точка монтування лишатиметься недоступною, доки цей виклик не поверне керування. До цього моменту спроби доступу до файлової системи блокуватиметься, аж доки не буде здійснено вхід до основного циклу обробки (тобто передано керування до "guestfs_mount_local_run"). Отже, якщо вам потрібно запустити процес для доступу до файлової системи, додайте розгалуження між "guestfs_mount_local" і "guestfs_mount_local_run".

СУМІСНІСТЬ ЛОКАЛЬНОГО МОНТУВАННЯ

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

Якщо libguestfs було зібрано без підтримки "guestfs_mount_local", виклик цієї функції призводитиме до помилки із errno, встановленим у значення "ENOTSUP" (див. "guestfs_last_errno").

ШВИДКОДІЯ ПРИ ЛОКАЛЬНОМУ МОНТУВАННІ

Обгортка libguestfs навколо FUSE має доволі низький рівень швидкодії. Якщо вам потрібен найшвидший доступ, не використовуйте її. Замість неї користуйтеся звичайними викликами libguestfs, пов'язаними з обробкою файлових систем: вивантаженням і отриманням даних тощо.

З'ЄДНАННЯ У «ГАРЯЧОМУ» РЕЖИМІ

У libguestfs ≥ 1.20 ви можете додавати і вилучати диски після виклику "guestfs_launch". Втім, є декілька обмежень, опис яких наведено нижче. Таку можливість будемо називати з'єднанням у «гарячому» режимі.

Підтримку з'єднання у «гарячому» режимі передбачено лише у деяких модулях обробки даних (у поточній версії таку підтримку передбачено лише у модулі libvirt). Крім того, потрібні версії libvirt ≥ 0.10.3 та qemu ≥ 1.2.

Для додавання диска у «гарячому» режимі просто скористайтеся викликом "guestfs_add_drive_opts" після "guestfs_launch". Має бути обов'язково вказано параметр "label", щоб новий доданий диск мав передбачувану назву. Приклад:

 if (guestfs_launch (g) == -1)
   error ("launch failed");
 
 if (guestfs_add_drive_opts (g, filename,
                             GUESTFS_ADD_DRIVE_OPTS_LABEL, "newdisk",
                             -1) == -1)
   error ("hot-add of disk failed");
 
 if (guestfs_part_disk ("/dev/disk/guestfs/newdisk", "mbr") == -1)
   error ("partitioning of hot-added disk failed");

Для вилучення диска у «гарячому» режимі скористайтеся викликом "guestfs_remove_drive". Цей виклик можна використовувати до або після "guestfs_launch". Вилучати диски у такий спосіб можна, лише якщо їх раніше було додано із міткою.

У модулях обробки, де передбачено підтримку з'єднання у «гарячому» режимі не обов'язково додавати один або більше дисків до виклику launch. Якщо передбачено підтримку з'єднання у «гарячому» режимі, ви можете взагалі не додавати жодних дисків.

ВІДДАЛЕНЕ СХОВИЩЕ ДАНИХ

CEPH

Libguestfs може отримувати доступ до дисків Ceph (librbd/RBD).

Для цього встановіть необов'язкові параметри "protocol" і "server" у виклику "guestfs_add_drive_opts", ось так:

 char **servers = { "ceph1.example.org:3000", /* ... */, NULL };
 guestfs_add_drive_opts (g, "pool/image",
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "rbd",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
                         GUESTFS_ADD_DRIVE_OPTS_USERNAME, "rbduser",
                         GUESTFS_ADD_DRIVE_OPTS_SECRET, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
                         -1);

"servers" (параметр "server") — список з одного або декількох серверів Ceph. Документацію щодо рядка server наведено у описі "guestfs_add_drive_opts". Параметри "username" та "secret" є необов'язковими. Якщо їх не вказано, розпізнавання не виконуватиметься.

FTP, HTTP ТА TFTP

Libguestfs може отримувати доступ до віддалених дисків за допомогою протоколів FTP, FTPS, HTTP, HTTPS та TFTP.

Для цього встановіть необов'язкові параметри "protocol" і "server" у виклику "guestfs_add_drive_opts", ось так:

 char **servers = { "www.example.org", NULL };
 guestfs_add_drive_opts (g, "/disk.img",
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "http",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
                         -1);

Значенням параметра "protocol" може бути один з таких рядків: "ftp", "ftps", "http", "https" або "tftp".

"servers" (параметр "server") — список, який має складатися з одного запису. Цей єдиний запис є рядком, який визначає вебсервер або сервер FTP чи TFTP. Документацію щодо рядка server наведено у описі "guestfs_add_drive_opts".

GLUSTER

Libguestfs може отримувати доступ до дисків Gluster.

Для цього встановіть необов'язкові параметри "protocol" і "server" у виклику "guestfs_add_drive_opts", ось так:

 char **servers = { "gluster.example.org:24007", NULL };
 guestfs_add_drive_opts (g, "volname/image",
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "gluster",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
                         -1);

"servers" (параметр "server") — список, який має складатися з одного запису. Цей єдиний запис є рядком, який визначає сервер Gluster. Документацію щодо рядка server наведено у описі "guestfs_add_drive_opts".

Зауважте, що, зазвичай, gluster потребує запуску клієнтського процесу (тобто libguestfs) від імені користувача root і повідомляє про незрозумілі помилки, якщо процес запущено від звичайного користувача (наприклад, «No data available» або «Дані недоступні»).

ISCSI

Libguestfs може отримувати віддалений доступ до дисків iSCSI.

Для цього встановіть необов'язкові параметри "protocol" і "server" у виклику ось так:

 char **server = { "iscsi.example.org:3000", NULL };
 guestfs_add_drive_opts (g, "target-iqn-name/lun",
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "iscsi",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, server,
                         -1);

"servers" (параметр "server") — список, який має складатися з одного запису. Цей єдиний запис є рядком, який визначає сервер iSCSI. Документацію щодо рядка server наведено у описі "guestfs_add_drive_opts".

NETWORK BLOCK DEVICE

Libguestfs може отримувати віддалений доступ до дисків Network Block Device (NBD).

Для цього встановіть необов'язкові параметри "protocol" і "server" у виклику "guestfs_add_drive_opts", ось так:

 char **server = { "nbd.example.org:3000", NULL };
 guestfs_add_drive_opts (g, "" /* export name - see below */,
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "nbd",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, server,
                         -1);

Нотатки:

  • "сервер" фактично є списком серверів. Для доступу до NBD вам слід завжди вказувати список як єдиний елемент. (Для інших віддалених протоколів можна не вказувати сервер або вказувати декілька серверів, тому цей параметр і є списком.)
  • Документацію щодо рядка "сервер" можна знайти у розділі "guestfs_add_drive_opts". Що встановити з'єднання із локальним екземпляром qemu-nbd за допомогою сокета домену UNIX, скористайтеся записом "unix:/шлях/до/сокета".
  • Значенням параметра "filename" має бути назва експортування NBD. Скористайтеся порожнім рядком, якщо слід використовувати типове експортування. У багатьох реалізаціях серверів NBD, зокрема qemu-nbd, не передбачено підтримки назв експортування.
  • Якщо ви використовуєте як сервер qemu-nbd, вам слід завжди передавати параметр "-t". Причина полягає у тому, що libguestfs може відкривати одразу декілька з'єднань із сервером.
  • При користуванні модулем обробки libvirt обов'язково слід точно вказати параметр "format" "guestfs_add_drive_opts", якщо ви використовуєте придатні до запису диски NBD.
  • У модулі обробки libvirt є вада, яка заважає з'єднанням із сокетом домену UNIX працювати: https://bugzilla.redhat.com/show_bug.cgi?id=922888
  • У модулі безпосередньої обробки не передбачено підтримки з'єднань лише для читання даних через ваду у qemu: https://bugs.launchpad.net/qemu/+bug/1155677

SHEEPDOG

Libguestfs може отримувати доступ до дисків Sheepdog.

Для цього встановіть необов'язкові параметри "protocol" і "server" у виклику "guestfs_add_drive_opts", ось так:

 char **servers = { /* optional servers ... */ NULL };
 guestfs_add_drive_opts (g, "volume",
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "sheepdog",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, servers,
                         -1);

Необов'язковий список "servers" має складатися із нуля або якоїсь кількості адрес серверів ("назва_вузла:порт"). Формат рядків server описано у документації з "guestfs_add_drive_opts".

SSH

Libguestfs може отримувати доступ до дисків за допомогою з'єднань Secure Shell (SSH).

Для цього встановіть необов'язкові параметри "protocol", "server" та (необов'язково) "username" у виклику "guestfs_add_drive_opts", ось так:

 char **server = { "remote.example.com", NULL };
 guestfs_add_drive_opts (g, "/path/to/disk.img",
                         GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                         GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "ssh",
                         GUESTFS_ADD_DRIVE_OPTS_SERVER, server,
                         GUESTFS_ADD_DRIVE_OPTS_USERNAME, "remoteuser",
                         -1);

Формат рядка сервера документовано у розділі щодо "guestfs_add_drive_opts".

ПЕРЕВІРКА

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

Додайте усі диски, що належать до невідомої віртуальної машини і викличте "guestfs_launch" у звичний спосіб.

Далі, викличте "guestfs_inspect_os". Ця функція використовує інші виклики libguestfs та певну евристику і повертає список знайдених операційних систем. Якщо список виявиться порожнім, значить операційних систем не знайдено. Окремий запис списку визначатиме кореневу файлову систему операційної системи. Для гостьових операційних систем із варіантами завантаження може бути повернуто декілька кореневих записів, кожен з яких відповідає окремій операційній системі. (Віртуальні машини із варіантами завантаження є дуже рідкісними у світі віртуалізації, але оскільки такий сценарій можливий, нам довелося реалізувати його у libguestfs.)

Для кожної кореневої файлової системи ви можете скористатися різноманітними функціями "guestfs_inspect_get_*" для отримання додаткових відомостей щодо операційної системи. Наприклад, викличте "guestfs_inspect_get_type", щоб отримати рядок "windows" або "linux" для Windows та заснованих на Linux операційних системах, відповідно.

Un*x-подібні та засновані на Linux операційні системи зазвичай складаються з декількох файлових систем, які монтуються під час завантаження (наприклад, окремого розділу для завантаження, який змонтовано до /boot). Правила інспектування уможливлюють визначення, як саме файлові системи пов'язано із точками монтування. Викличте "guestfs_inspect_get_mountpoints", щоб отримати дані щодо цієї прив'язки. У відповідь може бути повернуто хеш-таблицю, подібну до такої:

 /boot => /dev/sda1
 /     => /dev/vg_guest/lv_root
 /usr  => /dev/vg_guest/lv_usr

Далі, можна викликати "guestfs_mount" для відповідного монтування файлових систем.

Файлові системи слід монтувати у належному порядку (наприклад, / має бути змонтовано перед /usr). Для визначення порядку можна упорядкувати хеш-записи за довжиною так, щоб першими у списку були найкоротші.

Засіб інспектування у поточній версії може працювати лише з декількома поширеними операційними системами. Будемо раді вашим латкам, які реалізуватимуть підтримку інших операційних систем, які ще не може бути визначено програмно.

Шифровані диски слід відкривати до інспектування. Докладніше про це можна дізнатися з розділу "ЗАШИФРОВАНІ ДИСКИ". Функція "guestfs_inspect_os" просто ігноруватиме усі знайдені зашифровані пристрої.

Зауваження щодо реалізації: виклик "guestfs_inspect_os" виконує інспектування та кешує результати у дескрипторі гостьової системи. Наступні виклики "guestfs_inspect_get_*" повертатимуть кешовані відомості, але не виконуватимуть повторного читання дисків. Якщо ви зміните вміст дисків гостьової системи, ви можете змусити програму повторно виконати інспектування, викликавши "guestfs_inspect_os" ще раз. ("guestfs_inspect_list_applications2" працює дещо інакше, якщо порівнювати з іншими викликами, і виконує читання дисків. Див. документацію з цієї функції, щоб дізнатися більше).

ВИВЧЕННЯ ДИСКІВ ДЛЯ ВСТАНОВЛЕННЯ

Libguestfs (з версії 1.9.4) може виявляти деякі диски для встановлення, компакт-диски для встановлення, компакт-диски із портативними системами тощо.

Докладну інформацію щодо операційних систем на дисках для встановлення можна отримати за допомогою звичайних програмних інтерфейсів вивчення, зокрема "guestfs_inspect_get_product_name", "guestfs_inspect_get_major_version" тощо.

ДОДАТКОВІ ЗАУВАЖЕННЯ ЩОДО ГОСТЬОВИХ СИСТЕМ WINDOWS

Libguestfs може монтувати розділи NTFS. Це завдання виконується за допомогою драйвера http://www.ntfs-3g.org/.

ЛІТЕРИ ДИСКІВ ТА ШЛЯХИ

У DOS та Windows для позначення дисків усе ще використовуються літери, а назви у файлових системах самою Windows обробляються як незалежні від регістру символів, тому можлива ситуація, коли файл налаштувань Windows посилається на каталог із назвою подібною до "c:\windows\system32". Коли ж файлову систему змонтовано у libguestfs, той самий каталог може мати назву /WINDOWS/System32.

Визначити прив'язку дисків до літер можна за допомогою засобу інспектування (див. "ІНСПЕКТУВАННЯ" та "guestfs_inspect_get_drive_mappings")

Обробка символів-роздільників у шляхах (символів зворотної чи прямої похилої риски) не виконується самою libguestfs, але, зазвичай, для цього можна просто скористатися автоматичною заміною символів на відповідні.

Щоб усунути проблему із неврахуванням регістру літер у шляхах, скористайтеся викликом "guestfs_case_sensitive_path".

ДОВГІ НАЗВИ ФАЙЛІВ У NTFS

У NTFS назви файлів обмежено довжиною у 255 символів. «Символ» означає 2-байтову позицію у таблиці UTF-16, яка містить більшість типових символів Unicode.

У більшості файлових систем Linux передбачено підтримку назв файлів довжиною до 255 байтів. Це означає, що ви можете отримати повідомлення про помилку:

 File name too long

коли копіюватимете файл з NTFS на файлову систему Linux, якщо назва, коли її буде перекодовано у UTF-8, перевищить за довжиною 255 байтів.

Найчастіше таке трапляється, коли використовуються довші за ~127 символів назви із символами, які не належать до ASCII, (наприклад, назви кирилицею або грецькою) або використовуються довші за ~85 символів назви азійськими мовами із ієрогліфічним записом.

Обійти проблему можна, намагаючись не зберігати файли із такими довгими назвами у файлових системах Linux. Оскільки у форматі tar(1) передбачено можливість зберігання назв файлів без будь-яких обмежень, такі файли можна зберігати у архівах tar.

ДОСТУП ДО РЕГІСТРУ WINDOWS

У libguestfs також передбачено допоміжні можливості із декодування файлів реєстрів Windows, «hive», на основі окремої бібліотеки мовою C, яка називається hivex(3).

До версії libguestfs 1.19.35 вам потрібно було отримати файл рою (hive), обробити його локально за допомогою hivex і вивантажити його назад. Починаючи з вказаної версії, нами було включено основні програмні інтерфейси hivex безпосередньо до програмного інтерфейсу libguestfs (див. "guestfs_hivex_open"). Це означає, що якщо ви відкрили гостьову систему Windows, ви можете читати і записувати реєстр безпосередньо.

Див. також virt-win-reg(1).

СИМВОЛІЧНІ ПОСИЛАННЯ У ФАЙЛОВИХ СИСТЕМАХ NTFS-3G

Ntfs-3g намагається переписати «точки з'єднання» та «символічні посилання» NTFS для створення чогось схожого на символічне посилання Linux. Спосіб, у який виконується переписування, описано тут:

http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

Основною проблемою є те, що ntfs-3g просто немає достатньо відомостей для того, щоб виконати роботу правильно. Посилання NTFS можуть містити літери дисків і посилання на GUID зовнішніх пристроїв, які не може бути оброблено у ntfs-3g. У цьому випадку, майже завжди, функції, які викликають libguestfs, мають ігнорувати дії ntfs-3g (тобто не використовувати "guestfs_readlink" на томах NTFS).

Замість цього, якщо у файловій системі ntfs-3g трапиться символічне посилання, слід скористатися "guestfs_lgetxattr" для читання розширеного атрибута "system.ntfs_reparse_data" і прочитати дані повторної обробки з нього (формат документовано у багатьох місцях в інтернеті).

РОЗШИРЕНІ АТРИБУТИ НА ФАЙЛОВИХ СИСТЕМАХ NTFS-3G

Існують інші корисні атрибути, які можна читати з файлових систем ntfs-3g (за допомогою "guestfs_getxattr"). Див.:

http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/

ПРИСИПЛЯННЯ WINDOWS ТА ШВИДКИЙ ЗАПУСК WINDOWS 8

Гостьові системи Windows, які було приспано (замість повного вимикання) не можна монтувати. Це обмеження ntfs-3g. Ви побачите ось таке повідомлення про помилку:

 The disk contains an unclean file system (0, 0).
 Metadata kept in Windows cache, refused to mount.
 Failed to mount '/dev/sda2': Operation not permitted
 The NTFS partition is in an unsafe state. Please resume
 and shutdown Windows fully (no hibernation or fast
 restarting), or mount the volume read-only with the
 'ro' mount option.

У Windows 8 кнопка вимикання не вимикає гостьову систему. Замість цього, ця кнопка присипляє гостьову систему. Ця можливість відома як «швидкий запуск».

Ось пропоновані шляхи обійти проблему:

  • Монтування у режимі лише читання (наприклад, "guestfs_mount_ro").
  • У Windows 8 вимкніть швидкий запуск. Відповідним пунктом є такий: Панель керування → Живлення → Виберіть дію для кнопки живлення → Змінити параметри, які зараз недоступні → Увімкнути швидкий запуск.
  • У Windows 7 та попередніх версіях вимкніть гостьову систему належним чином замість присипляння системи.

ПОМИЛКИ RESIZE2FS

Для зміни розмірів файлових систем ext2/3/4 використовуються виклики "guestfs_resize2fs", "guestfs_resize2fs_size" і "guestfs_resize2fs_M".

Базова програма (resize2fs(8)) потребує, щоб файлова система не мала прапорця змін і була нещодавно перевірена fsck, перш ніж ви зможете змінити її розмір. Крім того, якщо дія зі зміни розміру завершується помилкою з якоїсь причини, вам слід викликати fsck для файлової системи, щоб виправити її.

У libguestfs "lt" 1.17.14 вам, зазвичай, потрібно було викликати "guestfs_e2fsck_f" до зміни розміру. Втім, у "ge" 1.17.14 e2fsck(8) викликається автоматично до зміни розміру, отже потреби у явному виклику вже немає.

Робота програми resize2fs(8) все ще може завершитися помилкою. У цьому випадку програма виводить повідомлення про помилку, подібне до такого:

 Будь ласка, запустіть «e2fsck -fy <пристрій>», щоб виправити файлову систему
 після переривання дії зі зміни розмірів.

Ви можете зробити це, викликавши "guestfs_e2fsck" з параметром "forceall". Втім, у контексті образів дисків, зазвичай, краще уникати таких ситуацій, наприклад, поверненням до попереднього знімка або копіюванням і зміною розміру і поверненням до початкового стану, якщо станеться помилка.

ВИКОРИСТАННЯ LIBGUESTFS ЗА ДОПОМОГОЮ ІНШИХ МОВ ПРОГРАМУВАННЯ

Хоча у нас немає намірів забороняти вам використовувати програмний інтерфейс C, тут ми будемо нагадувати, що той самий програмний інтерфейс також доступний іншими мовами програмування.

Загалом, програмний інтерфейс усіма підтримуваними мовами є ідентичним. Це означає, що виклик мовою C "guestfs_add_drive_ro(g,file)" ідентичний до "$g->add_drive_ro($file)" у Perl, "g.add_drive_ro(file)" у Python, і "g#add_drive_ro file" в OCaml. Іншими словами, існує прямий, передбачуваний ізоморфізм між усіма мовами.

Повідомлення про помилки буде автоматично перетворено на виключення, якщо підтримку таких передбачено у відповідній мові програмування.

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

Ви можете скористатися файлом заголовків guestfs.h з програм C++. Програмний інтерфейс C++ є ідентичним до програмного інтерфейсу C. Класи і виключення C++ не використовуються.
Прив'язки до C# є досить експериментальними. Будь ласка, ознайомтеся із попередженнями на початку файла csharp/Libguestfs.cs.
Див. guestfs-erlang(3).
Доступні експериментальні прив'язки GObject (з підтримкою інтроспекції GObject).

Див. guestfs-gobject(3)

Див. guestfs-golang(3)
Ця прив’язка до мови працює, але є неповною:
  • Функції із необов'язковими аргументами не включено до прив'язок. Реалізація необов'язкових параметрів у Haskell, здається, є доволі складною справою.
  • Події не обмежено.
  • Не передбачено прив'язок для функцій із такими повернутими типами:
  • Будь-яка функція повертає структуру.
  • Будь-яка функція повертає список структур.
  • Декілька функцій, які повертають буфери фіксованої довжини (зокрема ті, які оголошено як "RBufferOut" у генераторі).
  • Незначна кількість прихованих функцій, які повертають сталі рядки (зокрема функцій, оголошених як "RConstOptString" у генераторі).
Повна документація міститься у Javadoc, який поширюється разом із libguestfs. Приклади наведено на сторінці guestfs-java(3).
Див. guestfs-lua(3).
Див. guestfs-ocaml(3).
Див. guestfs-perl(3) та Sys::Guestfs(3).
Документацію наведено у файлі "README-PHP", який постачається разом із початковим кодом libguestfs або у пакунку php-libguestfs для вашого дистрибутива.

Прив'язки до PHP працюють належним чином лише у 64-бітових операційних системах.

Див. guestfs-python(3).
Див. guestfs-ruby(3).

Щоб скористатися JRuby, використовуйте прив'язки до Java.

скрипти оболонки
Див. guestfish(1).

ПРОБЛЕМНІ МІСЦЯ LIBGUESTFS

http://en.wikipedia.org/wiki/Gotcha_(programming): «Можливість системи [...], яка працює у документований спосіб, але не є інтуїтивно зрозумілою і неначебто запрошує до помилок.»

З часу створення libguestfs та пов'язаних інструментів існує декілька речей, які зараз ми б зробили інакше, але мусимо дотримуватися зворотної сумісності або не можемо їх змінити з інших причин. Якщо колись відбудеться випуск libguestfs 2.0, ми можемо змінити ці речі. Майте це на увазі.

Типовим режимом має бути «лише читання».
У guestfish(3) параметр --ro має бути типовим. Вам слід вказувати параметр --rw явним чином, якщо ви хочете внести зміни до образу.

Це має зменшити ризик потенційного пошкодження образів віртуальних машин.

Зауважте, що до багатьох файлових систем зміни вносяться простим монтуванням із наступним демонтуванням, навіть якщо до файлової системи нічого не записується. Вам слід використовувати "guestfs_add_drive_ro", щоб гарантувати, що диск не буде змінено.

Командним рядком guestfish важко користуватися.
Команда guestfish образ.диска не виконує тих дій, на які сподіваються користувачі (відкриття образу образ.диска для вивчення). Ця команда намагається виконати команду guestfish образ.диска, якої не існує, отже, виводиться повідомлення про помилку. У ранніх версіях guestfish це повідомлення було незрозумілим, але з того часу його було виправлено. Подібно до bash, варто було б використовувати команду "guestfish -c команда" для виконання команд.
Модифікатори вимірювання у мегабайтах guestfish не працюють як слід для усіх команд
У свіжих версіях guestfish ви можете скористатися записом "1M" на позначення 1 мегабайта (та подібних одиниць виміру пам'яті). Насправді, guestfish просто множить числову частину запису на частину модифікатора і передає результат програмному інтерфейсу C. Втім, це не працює для декількох програмних інтерфейсів, яким передаються не значення у байтах, а значення у якихось інших одиницях (наприклад, у мегабайтах).

Найпоширенішим прикладом є "guestfs_lvcreate". Ось така команда guestfish:

 lvcreate LV VG 100M
    

не виконує тих дій, на які слід було б сподіватися. Замість цього, оскільки "guestfs_lvcreate" вже передаються розміри у мегабайтах, виконується спроба створити логічний том у 100 терабайтів (100 мегабайтів * мегабайтів). Повідомлення про помилку, яке ви побачите у відповідь на цю команду, теж дещо незрозуміле.

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

Двозначність між пристроями і шляхами
У програмному інтерфейсі є певна неоднозначність між назвою пристрою (наприклад /dev/sdb2) і подібною до неї назвою шляху. Файл у каталозі /dev також можна викликати за допомогою "sdb2" (якщо розглядати якийсь образ віртуальної машини, відмінної від Unix).

У поточному програмному інтерфейсі ми, зазвичай, усуваємо цю неоднозначність використанням двох окремих викликів, наприклад "guestfs_checksum" і "guestfs_checksum_device". Деякі з викликів програмного інтерфейсу є неоднозначними і вирішують (неправильно) проблему, визначаючи, чи наданий шлях починається з /dev/.

Щоб уникнути неоднозначностей та потреби у дублюванні викликів, можна перетворити шляхи/пристрої на структуровані назви. Одним зі способів досягти цього є використання позначень у стилі ("hd(0,0)"), хоча мало кому подобається цей аспект роботи grub. Іншим способом, яким можна було б скористатися, є використання структурованого типу, еквівалентного до такого типу OCaml:

 type path = Path of string | Device of int | Partition of int * int
    

що надало б вам змогу передавати аргументи ось так:

 Path "/foo/bar"
 Device 1            (* /dev/sdb або, можливо, /dev/sda *)
 Partition (1, 2)    (* /dev/sdb2 (або /dev/sda2, або /dev/sdb3?) *)
 Path "/dev/sdb2"    (* не є пристроєм *)
    

Як бачите, у визначенні шляхів є проблема навіть у такому представленні. Також можете поміркувати над тим, як це може працювати у guestfish.

КЛЮЧІ І ПАРОЛІ

Деяким викликам libguestfs передаються параметри, які містять конфіденційні дані ключів у форматі звичайного рядка C.

У майбутньому ми сподіваємося змінити реалізацію у libguestfs так, щоб ключі оброблялися mlock(2) у фізичній пам'яті системи і тому ніколи не опинялися у файлі резервної пам'яті на диску. Втім, дотепер цього не зроблено через складність такої реалізації.

Тому вам слід мати на увазі, що будь-який параметр ключа, який ви передали libguestfs, може бути записано на розділ резервної пам'яті. Якщо ви цим дуже занепокоєні, витирайте файл резервної пам'яті або не використовуйте libguestfs на зашифрованих пристроях.

ОБРОБКА У ДЕКІЛЬКА ДЕСКРПИТОРІВ І ПОТОКІВ

Усі операції високого рівня у libguestfs синхронізуються. Якщо ви хочете використовувати libguestfs у асинхронний спосіб, вам слід створити потік обробки.

Потоки у libguestfs ≥ 1.38

У libguestfs ≥ 1.38 кожен дескриптор ("guestfs_h") містить блокування, яке встановлюється автоматично, коли ви викликаєте функцію libguestfs. Практичним наслідком цього є те, що ви можете викликати функції libguestfs для одного дескриптора з різних потоків обробки без потреби у блокуванні.

Крім того, починаючи з версії libguestfs ≥ 1.38, остання помилка у обробці дескриптора ("guestfs_last_error", "guestfs_last_errno") зберігається у локальному сховищі даних потоку, тому написання такого ось коду є безпечним:

 if (guestfs_add_drive_ro (g, drive) == -1)
   fprintf (stderr, "error was: %s\n", guestfs_last_error (g));

навіть коли інші потоки обробки можуть конкурувати за використання одного дескриптора "g".

Потоки у libguestfs < 1.38

У libguestfs < 1.38 вам слід використовувати дескриптор лише у одному потоці обробки. Або використовуйте дескриптор виключно з одного потоку, або впровадьте власний семафор так, щоб два потоки не могли видавати виклики для одного дескриптора одночасно. Навіть доволі невинні функції, подібні до "guestfs_get_trace" не можна безпечно викликати без семафора з декількох потоків обробки одночасно, якщо ви користуєтеся libguestfs < 1.38.

Скористайтеся "guestfs_set_identifier" для спрощення ідентифікації потоків у даних, виведених засобом трасування.

ШЛЯХ

Libguestfs потрібна базова система supermin, яку бібліотека шукає за внутрішнім шляхом.

Типово, пошук відбувається у каталозі "$libdir/guestfs" (наприклад /usr/local/lib/guestfs або /usr/lib64/guestfs).

Скористайтеся "guestfs_set_path" або встановіть значення змінної середовища "LIBGUESTFS_PATH", щоб змінити каталоги, у який вестиме пошук libguestfs. Значенням має бути список шляхів, відокремлених двокрапками. Пошук у поточному каталозі не виконуватиметься, якщо у записі шляхів не буде порожнього елемента або елемента ".". Наприклад, "LIBGUESTFS_PATH=:/usr/lib/guestfs" означає, що пошук виконуватиметься спочатку у поточному каталозі, а потім у каталозі /usr/lib/guestfs.

ОБГОРТКИ QEMU

Якщо ви хочете зібрати власну версію qemu, запускати qemu із нестандартного каталогу або передавати qemu додаткові аргументи, ви можете написати скрипт-обгортку для командної оболонки для запуску qemu.

Існує одне важливе правило, про яке слід пам'ятати: вам слід виконати "exec qemu" як останню команду у скрипті оболонки (отже, qemu заміняє командну оболонку і стає безпосереднім дочірнім процесом програми, яка використовує libguestfs). Якщо ви цього не зробите, процес qemu не буде належним чином очищено.

Ось приклад обгортки, де використано зібрану власну копію qemu:

 #!/bin/sh -
 qemudir=/home/rjones/d/qemu
 exec $qemudir/x86_64-softmmu/qemu-system-x86_64 -L $qemudir/pc-bios "$@"

Збережіть цей скрипт як /tmp/qemu.wrapper (або під якоюсь іншою назвою), "chmod +x", а далі скористайтеся ним для встановлення значення змінної середовища LIBGUESTFS_HV. Приклад:

 LIBGUESTFS_HV=/tmp/qemu.wrapper guestfish

Зауважте, що libguestfs також викликає qemu із параметрами -help і -version з метою визначення переліку можливостей програми.

Обгортками також можна скористатися для редагування параметрів, які передаються qemu. У наведеному нижче прикладі параметр "-machine ..." (параметр "-machine" і наступний за ним аргумент) вилучається з рядка команди і замінюється на "-machine pc,accel=tcg". Цикл while виконує ітерацію параметрами, аж доки не буде знайдено належний параметр для вилучення, розташовуючи решту параметрів у масиві "args".

 #!/bin/bash -
 
 i=0
 while [ $# -gt 0 ]; do
     case "$1" in
     -machine)
         shift 2;;
     *)
         args[i]="$1"
         (( i++ ))
         shift ;;
     esac
 done
 
 exec qemu-kvm -machine pc,accel=tcg "${args[@]}"

МОДУЛЬ

Модуль обробки (раніше ми його називали «метод долучення») керує тим, як libguestfs створює і/або з'єднується із фоновою службою модуля обробки, наприклад, запускаючи qemu безпосередньо або використовуючи libvirt для керування базовою системою, запускаючи User-Mode Linux або з'єднуючись із вже запущеною фоновою службою.

Встановити цей модуль можна викликом "guestfs_set_backend" або встановленням значення змінної середовища "LIBGUESTFS_BACKEND".

Можливі модуля описано нижче:

"direct"
"appliance"
Запустити qemu безпосередньо для запуску базової системи.

"direct" і "appliance" є синонімами.

Це звичайний метод і за звичних умов цей метод є типовим, але зверніть увагу на наведену нижче нотатку.

"libvirt"
"libvirt:null"
"libvirt:адреса"
Скористатися libvirt для запуску і керування базовою системою.

"libvirt" спричиняє вибір libguestfs відповідної адреси для створення гостьових операційних систем сеансу. Якщо використовується модуль обробки libvirt, вам майже завжди слід це використовувати.

"libvirt:null" спричиняє вибір libguestfs використання "NULL" як адреси з'єднання, що призводить до того, що libvirt намагається вгадати наміри користувача. Ймовірно, вам не слід використовувати таку адресу.

"libvirt:адреса" спричиняє використання адреси адреса як адреси з'єднання libvirt (див. http://libvirt.org/uri.html). Типовим модулем libvirt із вказаною адресою буде "libvirt:qemu:///session"

У модулі обробки libvirt передбачено більше можливостей, зокрема можливість з'єднання у «гарячому» режимі (див. "З'ЄДНАННЯ У «ГАРЯЧОМУ» РЕЖИМІ") та sVirt.

"uml"
Запустити ядро User-Mode Linux. Розташування ядра встановлюється за допомогою $LIBGUESTFS_HV або за допомогою програмного інтерфейсу "guestfs_set_qemu" (зауважте, що qemu не задіяно, ми просто повторно використовуємо ту саму змінну середовища у дескрипторі для зручності).

User-Mode Linux може бути набагато швидшим, простішим і невибагливішим до ресурсів за повноцінну віртуальну машину, але у нього є певні недоліки. Див. "МОДУЛЬ USER-MODE LINUX" нижче.

"unix:шлях"
Встановити з’єднання з сокетом домену Unix шлях.

Цей метод надає вам змогу з'єднуватися із наявною фоновою службою або (за допомогою virtio-serial) із запущеною гостьовою системою. Щоб дізнатися більше, див. "ДОЛУЧЕННЯ ДО ЗАПУЩЕНИХ ФОНОВИХ СЛУЖБ".

"direct", зазвичай є типовим модулем обробки. Втім, починаючи з версії libguestfs ≥ 1.19.24, libguestfs можна зібрати із іншим типовим модулем за допомогою такого параметра скрипту налаштовування збирання:

 ./configure --with-default-backend=...

Щоб визначити, чи було libguestfs зібрано із іншим типовим модулем обробки, віддайте такі команди:

 unset LIBGUESTFS_BACKEND
 guestfish get-backend

ПАРАМЕТРИ МОДУЛІВ

Кожен модуль обробки можна налаштувати передаванням списку рядків. Ви можете або викликати "guestfs_set_backend_settings" зі списком рядків, або встановити для змінної середовища "LIBGUESTFS_BACKEND_SETTINGS" значення, яке є списком рядків, які відокремлено двокрапками (до створення дескриптора).

force_tcg

Використовується:

 export LIBGUESTFS_BACKEND_SETTINGS=force_tcg

примусово визначить для модулів обробки direct та libvirt використання TCG (програмної емуляції) замість KVM (апаратно прискореної віртуалізації).

gdb

У модулі direct передбачено підтримку:

 export LIBGUESTFS_BACKEND_SETTINGS=gdb

Якщо встановлено таке значення змінної середовища, qemu не розпочинатиме негайний запуск базової системи. Програма очікуватиме, доки ви з'єднаєтеся із нею за допомогою gdb:

 $ gdb
 (gdb) symbol-file /path/to/vmlinux
 (gdb) target remote tcp::1234
 (gdb) cont

Далі, ви можете виконувати діагностику ядра базової системи, чим можна скористатися для дослідження проблем із завантаженням (особливо таких проблем, за яких не виводиться діагностичних повідомлень — підказка: шукайте у "log_buf" ядра).

У Fedora встановіть "kernel-debuginfo" для файла "vmlinux" (який містить символи). Переконайтеся, що символи точно відповідають використаному ядру.

ДОЛУЧЕННЯ ДО ЗАПУЩЕНИХ ФОНОВИХ СЛУЖБ

Зауваження (1): це дуже експериментальна можливість, яка може призводити до пошкодження даних. Будьте обережні.

Нотатка (2): у цьому розділі наведено відомості щодо долучення до запущеної фонової служби з низькорівневою перспективою. Для більшості користувачів просте використання засобів віртуалізації, зокрема guestfish(1), з параметром --live має «просто працювати».

Використання guestfs_set_backend

За допомогою виклику "guestfs_set_backend" ви можете змінити спосіб з'єднання бібліотеки з фоновою службою "guestfsd" у "guestfs_launch" (ознайомтеся із розділом "АРХІТЕКТУРА" in guestfs-internals(1), щоб дізнатися більше про основи).

Звичайним модулем обробки є "direct", де створюється мала базова система, яка містить фонову службу, з якою згодом з'єднується бібліотека. "libvirt" або "libvirt:адреса" є альтернативами, які використовують libvirt для запуску базової системи.

Встановлення для модуля обробки значення "unix:шлях" (де шлях — це шлях до сокета домену Unix) призводить до того, що "guestfs_launch" з'єднується із наявною фоновою службою за допомогою сокета домену Unix.

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

За допомогою guestfs_add_domain з прапорцем live

"guestfs_add_domain" надає певну допомогу у отриманні відповідного модуля обробки. Якщо ви передаєте параметр "live" цій функції, тоді (якщо віртуальну машину запущено) вона вивчить XML libvirt, шукаючи канал virtio-serial для з'єднання:

 <domain>
   ...
   <devices>
     ...
     <channel type='unix'>
       <source mode='bind' path='/path/to/socket'/>
       <target type='virtio' name='org.libguestfs.channel.0'/>
     </channel>
     ...
   </devices>
 </domain>

"guestfs_add_domain" видобуває /шлях/до/сокета і встановлює для модуля обробки шлях "unix:/шлях/до/сокета".

У деяких із засобів libguestfs (зокрема guestfish) передбачено підтримку параметра --live, який передається до "guestfs_add_domain", таким чином надаючи вам змогу з'єднуватися і змінювати запущені віртуальні машини.

Віртуальну машину слід попередньо налаштувати так, щоб у ній був канал virtio-serial і у ній було запущено guestfsd.

МОДУЛЬ USER-MODE LINUX

Встановлення вказаних нижче змінних середовища (або використання відповідних програмних інтерфейсів) вибирає модуль обробки User-Mode Linux:

 export LIBGUESTFS_BACKEND=uml
 export LIBGUESTFS_HV=/шлях/до/vmlinux

"vmlinux" (іншою назвою може бути "linux") — виконуваний файл Linux, зібраний для запуску як процес у просторі користувача. Зауважте, що ми повторно використали змінну qemu у дескрипторі для зручності; qemu вона не стосується.

Використання User-Mode Linux може пришвидшити роботу і зменшити вибагливість до ресурсів системи, порівняно із запуском повноцінної віртуальної машини для модуля обробки (особливо, якщо ви вже запустили libguestfs у віртуальній машині або у екземплярі системи в обчислювальній «хмарі»), але цей спосіб також має певні недоліки, якщо порівнювати його зі звичайним модулем обробки на основі qemu або KVM.

ЗБИРАННЯ USER-MODE LINUX З ПОЧАТКОВИХ КОДІВ

У вашому дистрибутиві Linux можуть бути готові пакунки UML. Якщо це так, можете пропустити цей розділ.

Інструкції запозичено з http://user-mode-linux.sourceforge.net/source.html

1. Отримати початкові коди Linux
Клонуйте сховище коду git Linux або отримайте архів tar із початковим кодом Linux.
2. Налаштувати збирання ядра
Зауваження: до усіх команд «make» слід додавати "ARCH=um".

 make menuconfig ARCH=um
    

Переконайтеся, що усі потрібні вам драйвери файлових систем вкомпільовано до ядра.

У поточній версії потрібні значні додаткові зусилля, щоб змусити працювати модулі. Рекомендуємо вам вимкнути підтримку модулів у налаштуваннях ядра. Вимикання підтримки призведе до того, що усі можливості буде зібрано у одному образі ядра.

3. Зібрати ядро
 make ARCH=um
    

Ви отримаєте файл із назвою "linux" або "vmlinux" у каталозі верхнього рівня. Цей файл і є ядром UML. Вам слід встановити значення "LIBGUESTFS_HV", яке вказуватиме на цей файл.

ВІДМІННОСТІ USER-MODE LINUX ВІД KVM

У UML передбачено підтримку лише образів у форматі raw
Працюватимуть лише прості образи у форматі raw. Не можна користуватися ні qcow2, ні файлами резервних копій.
У UML не передбачено підтримки будь-яких віддалених дисків
Не можна користуватися NBD тощо.
Зокрема, підтримка UML у libguestfs залежить від підтримки UML у основній гілці розробки ядра. Якщо UML буде вилучено із основного коду ядра Linux, ймовірно, нам доведеться вилучити його підтримку і з libguestfs.

ГАРАНТІЯ ЩОДО ABI

Ми гарантуємо незмінність ABI (двійкового інтерфейсу) libguestfs для загальних (public) високорівневих дій, як це описано у цьому розділі. Хоча ми вважаємо деякі з дій застарілими, наприклад, якщо їх замінено новішими викликами, ми зберігаємо ці дії у двійковому інтерфейсі. Це надає змогу розробникам програм бути певними у незмінності програмного інтерфейсу libguestfs.

ІМЕНУВАННЯ БЛОКОВИХ ПРИСТРОЇВ

Libguestfs визначає /dev/sd* як стандартну схему іменування для пристроїв, які передаються викликам програмного інтерфейсу. Отже, /dev/sda означає «перший пристрій, який додано за допомогою "guestfs_add_drive_opts"», а /dev/sdb3 означає «третій розділ на другому пристрої».

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

МІТКИ ДИСКІВ

Починаючи з libguestfs ≥ 1.20, ви можете надати диску мітку під час додавання за допомогою необов'язкового параметра "label" функції "guestfs_add_drive_opts". (Зауважте, що мітки дисків є самостійними об'єктами і можуть відрізнятися від міток файлової системи.)

Підтримку встановлення міток дисків передбачено не в усіх версіях libguestfs. Якщо підтримку передбачено, то мітку обмежено 20 символами ASCII "[a-zA-Z]".

Після додавання мітки до диска ви можете використовувати як його адресу або /dev/sd*, або /dev/disk/guestfs/мітка. Вказувати на розділи диска можна за допомогою адреси /dev/disk/guestfs/мітканомер_розділу.

Команди виведення списку пристроїв ("guestfs_list_devices") та розділів ("guestfs_list_partitions") повертають назви блокових пристроїв. Втім, ви можете скористатися "guestfs_list_disk_labels" для прив'язування міток дисків до назв блокових пристроїв і розділів.

НУЛЬОВІ ДИСКИ

При додавання диска за допомогою, наприклад, "guestfs_add_drive", ви можете встановити для назви файла значення "/dev/null". Цей рядок у libguestfs обробляється особливо, спричиняючи додавання «нуль-диска».

Нуль-диск має такі властивості:

  • Нуль-диск буде показано як звичайний пристрій, наприклад, у викликах "guestfs_list_devices".
  • Ви можете додавати пристрій "/dev/null" декілька разів.
  • Вам не слід намагатися отримати доступ до нуль-диска у будь-який спосіб. Наприклад, не варто намагатися прочитати з нього дані або змонтувати його.

Передбачено три основних призначення нульових дисків:

1.
Тестування швидкодії libguestfs (див. guestfs-performance(1)).
2.
Вбудований комплекс для перевірки.
3.
Якщо ви хочете скористатися програмними інтерфейсами libguestfs, які не посилаються на диски, оскільки libguestfs вимагає додавання принаймні одного диска, вам слід додати нуль-диск.

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

 guestfs_h *g;
 char **groups = [ "btrfs", NULL ];
 
 g = guestfs_create ();
 guestfs_add_drive (g, "/dev/null");
 guestfs_launch (g);
 if (guestfs_available (g, groups) == 0) {
   // group(s) are available
 } else {
   // group(s) are not available
 }
 guestfs_close (g);
    

ФОРМАТИ ОБРАЗІВ ДИСКІВ

Віртуальні диски зберігаються у декількох форматах. Нижче наведено список найпоширеніших форматів.

Зауважте, що за роботу із форматами дисків сама libguestfs не відповідає: усю роботу виконує qemu(1). Якщо не передбачено підтримки якогось формату або у підтримці формату буде виявлено вади, виправляти це слід у qemu.

ТИПОВІ ФОРМАТИ ОБРАЗІВ ВІРТУАЛЬНИХ ДИСКІВ

Простий формат (raw) — це просто дамп послідовних байтів віртуального диска. У ньому немає заголовка, контейнера, стискання, він не є результатом будь-якої обробки цього набору байтів.

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

Дані у простому форматі (raw) не стискаються, отже займають на диску рівно стільки місця, скільки займає початковий образ диска, навіть якщо на ньому зовсім немає даних. У різновиді цього формату (принаймні у Linux/Unix) усунено потребу у зберіганні діапазонів нульових байтів шляхом використання так званих розріджених файлів. Цей варіант формату іноді називають «простим розрідженим» (raw sparse). Багато інструментів, зокрема virt-sparsify(1), можуть перетворювати прості образи дисків у розріджені.

Qcow2 — природний формат образів дисків, який використовується у qemu. На внутрішньому рівні використовується дворівнева структура каталогів, отже, у файлі зберігаються лише блоки, які містять дані. Також передбачено багато інших можливостей, зокрема стискання даних, знімки та резервне копіювання файлів.

Існує принаймні два різних варіанти цього формату. Втім, qemu (а отже, libguestfs) обробляє обидва формати прозоро для користувача.

VMDK — природний формат образів дисків VMware. Існує багато варіацій. У сучасних версіях qemu (а отже, і у libguestfs) передбачено підтримку більшості варіацій, але вам слід мати на увазі те, що у застарілих версіях qemu у цьому аспекті є серйозні вади, які можуть призводити до пошкодження даних.

Зауважте, що ESX VMware надає файли із назвою guest-flat.vmdk. Це не файли у форматі VMDK. Це дані у простому форматі (raw), які просто записано до файла із суфіксом назви ".vmdk".

VDI — є природним форматом образів дисків VirtualBox. У qemu (а отже і у libguestfs) передбачено загалом непогану підтримку даних у цьому форматі.
VPC (застарілий) та VHD (сучасний) — формати образів дисків, які розроблено Microsoft (а перед тим, Connectix) для Virtual PC та Hyper-V.
Застарілі формати
Наведені далі формати є застарілими. Вам не слід ними користуватися: qcow (або qcow1), cow, bochs.

ВИЗНАЧЕННЯ ФОРМАТУ ОБРАЗУ ДИСКА

По-перше, зверніть увагу на прогалину у захисті, пов'язану із автоматичним визначенням формату образу диска. Вона може стосуватися вашого процесу використання. Див. розділ "CVE-2010-3851" нижче.

Libguestfs offers an API to get the format of a disk image ("guestfs_disk_format"), and it is safest to use this.

Не захоплюйтесь спробами обробки тексту або виведених для зручного читання даних "qemu-img", оскільки ці дані не можна обробити надійним і безпечним чином. Не використовуйте команду "file", оскільки виведені нею дані є різними для різних версій бібліотеки.

КЕРУВАННЯ З’ЄДНАННЯМ

guestfs_h *

"guestfs_h" є непрозорим типом, який представляє дескриптор з'єднання. Створіть дескриптор викликом "guestfs_create" або "guestfs_create_flags". Викличте "guestfs_close", щоб звільнити дескриптор і усі використані ним ресурси.

Щоб дізнатися більше про обробку у декілька дескрипторів і у декілька потоків, ознайомтеся із розділом "ОБРОБКА У ДЕКІЛЬКА ДЕСКРПИТОРІВ І ПОТОКІВ" вище.

guestfs_create

 guestfs_h *guestfs_create (void);

Створити дескриптор з’єднання.

Якщо виконано успішно, повертає непорожній вказівник на дескриптор. Якщо станеться помилка, повертає NULL.

Після створення дескриптор слід «налаштувати». Для цього слід викликати "guestfs_add_drive_opts" (або одну з інших еквівалентних функцій) для дескриптора принаймні один раз.

Після налаштовування дескриптора вам слід викликати "guestfs_launch".

Ви також можете налаштувати обробку помилок для дескриптора. Див. розділ "ОБРОБКА ПОМИЛОК" нижче.

guestfs_create_flags

 guestfs_h *guestfs_create_flags (unsigned flags [, ...]);

Створює дескриптор з'єднання, надаючи додаткові прапорці та аргументи для керування створенням дескриптора.

Якщо виконано успішно, повертає непорожній вказівник на дескриптор. Якщо станеться помилка, повертає NULL.

"guestfs_create" еквівалентна виклику guestfs_create_flags(0).

Наведені нижче прапорці може бути поєднано за допомогою логічного АБО (у поточній версії додаткові аргументи не використовуються).

"GUESTFS_CREATE_NO_ENVIRONMENT"
Не обробляти змінні середовища (зокрема "LIBGUESTFS_DEBUG").

Згодом ви можете викликати "guestfs_parse_environment" або "guestfs_parse_environment_list" для обробки змінних середовища. Крім того, можна не викликати ці функції, якщо ви не хочете, щоб на роботу дескриптора впливали змінні середовища. Див. наведений нижче приклад.

Типовою поведінкою (якщо цей прапорець не встановлено явно) є неявний виклик "guestfs_parse_environment".

"GUESTFS_CREATE_NO_CLOSE_ON_EXIT"
Не намагатися закрити дескриптор у обробнику atexit(3), якщо програма завершує роботу без закриття дескриптора явним чином.

Типовою поведінкою (якщо цей прапорець не встановлено явно) є встановлення також обробника atexit.

ВИКОРИСТАННЯ "GUESTFS_CREATE_NO_ENVIRONMENT"

Ви можете скористатися "GUESTFS_CREATE_NO_ENVIRONMENT" і явним викликом "guestfs_parse_environment" ось так:

 guestfs_h *g;
 int r;
 
 g = guestfs_create_flags (GUESTFS_CREATE_NO_ENVIRONMENT);
 if (!g) {
   perror ("guestfs_create_flags");
   exit (EXIT_FAILURE);
 }
 r = guestfs_parse_environment (g);
 if (r == -1)
   exit (EXIT_FAILURE);

Крім того, для створення дескриптора, на який не впливатимуть змінні середовища, усуньте виклики "guestfs_parse_environment" з наведеного вище коду.

У наведеного вище коду є ще одна перевага: усі помилки під час обробки середовища передаються обробнику помилок, тоді як "guestfs_create" виводить повідомлення про помилки до stderr і ігнорує помилки.

guestfs_close

 void guestfs_close (guestfs_h *g);

Закриває дескриптор з'єднання і звільняє усі використані ресурси. Якщо для дескриптора було встановлено зворотний виклик закриття, його буде виконано.

Правильний спосіб закриття дескриптора ось такий:

 if (guestfs_shutdown (g) == -1) {
   /* тут обробляємо помилки запису */
 }
 guestfs_close (g);

Потреба у "guestfs_shutdown" виникає, лише якщо виконуються усі з наведених нижче умов:

1.
у режимі читання-запису було додано один або декілька дисків і
2.
було викликано guestfs_launch, і
3.
вами було внесено якісь зміни, і
4.
ви можете обробляти помилки запису (наприклад, завершенням виконання із кодом помилки або звітуванням про помилку користувачеві).

ОБРОБКА ПОМИЛОК

Функції програмного інтерфейсу можуть повертати помилки. Наприклад, майже усі функції, які повертають "int", повертатимуть "-1" для позначення помилки.

Для помилок надається додаткова інформація: рядок повідомлення про помилку і, необов'язково, номер помилки (errno), якщо помилку було пов'язано із загальносистемним викликом.

Ви можете отримати додаткову інформацію щодо останньої помилки для дескриптора за допомогою виклику "guestfs_last_error", "guestfs_last_errno" і/або встановлення обробника помилок за допомогою "guestfs_set_error_handler".

Під час створення дескриптора встановлюється типовий обробник помилок, який виводить рядок повідомлення про помилку до "stderr". Для невеличких програм, які виконуються швидко і керуються з командного рядка, достатньо зробити ось що:

 if (guestfs_launch (g) == -1)
   exit (EXIT_FAILURE);

оскільки типовий обробник помилок забезпечить виведення повідомлення про помилку до "stderr" до завершення роботи програми.

Для інших програм, майже напевно, слід встановити альтернативний обробник помилок або обробляти помилки всередині, як у наведеному нижче прикладі. У прив'язках до мов програмування, відмінних від C, усюди встановлюються NULL-обробники помилок, а помилки перетворюються на виключення за допомогою коду, подібного до такого:

 const char *msg;
 int errnum;
 
 /* Це вимикає типову поведінку при виведенні помилок
    до stderr. */
 guestfs_set_error_handler (g, NULL, NULL);
 
 if (guestfs_launch (g) == -1) {
   /* Вивчаємо повідомлення про помилку і виводимо його, надсилаємо його
      тощо. */
   msg = guestfs_last_error (g);
   errnum = guestfs_last_errno (g);
 
   fprintf (stderr, "%s", msg);
   if (errnum != 0)
     fprintf (stderr, ": %s", strerror (errnum));
   fprintf (stderr, "\n");
 
   /* ... */
 }

"guestfs_create" повертає "NULL", якщо дескриптор неможливо створити, а оскільки, якщо таке трапиться, дескриптора не буде, неможливо буде отримати додаткові відомості щодо помилки. Починаючи з libguestfs ≥ 1.20, ви можете скористатися "guestfs_create_flags" для належної обробки помилок під час створення дескрипторів, хоча у переважній частині програм можна продовжувати користуватися "guestfs_create" і не перейматися особливо цим випадком.

Помилки, пов'язані із нестачею пам'яті, обробляються інакше. Типовою дією є виклик abort(3). Якщо такий виклик є небажаним, ви можете встановити обробник за допомогою функції "guestfs_set_out_of_memory_handler".

guestfs_last_error

 const char *guestfs_last_error (guestfs_h *g);

Повертає повідомлення про останню помилку, яка трапилася для "g". Якщо з часу створення дескриптора помилок не траплялося, повертає "NULL".

Зауважте, що у повернутому рядку не буде символу нового рядка наприкінці. Більшість повідомлень про помилки є однорядковими. Деякі поділено на декілька рядків, вони містять символи "\n" усередині рядка, але не наприкінці.

Повернутий рядок лишається актуальним, аж доки не станеться наступна помилка для того самого дескриптора або не буде викликано "guestfs_close". Якщо цей рядок потрібен вам на довший термін, скопіюйте його.

guestfs_last_errno

 int guestfs_last_errno (guestfs_h *g);

Повертає номер останньої помилки (errno), яка сталася для "g".

Якщо виконано успішно, буде повернуто ненульове ціле число errno.

У багатьох випадках повертається спеціальне значення errno "ENOTSUP", якщо ви намагаєтеся викликати функцію або скористатися можливістю, підтримки якої не передбачено.

Якщо номер помилки недоступний, функція повертає 0. Виклик може повертати 0 у трьох випадках:

1.
Для дескриптора не було зафіксовано жодних помилок.
2.
Сталася помилка, але отримання errno не має сенсу. Таке трапляється у випадках, коли повідомлення про помилку надійшло не від загальносистемного виклику, отже причина помилки була якоюсь іншою.
3.
Сталася помилка у загальносистемному виклику, але з якоїсь причини errno не було перехоплено і повернуто. Це, зазвичай, пов'язано із вадою у libguestfs.

Libguestfs намагається перетворити errno із внутрішнього для базової системи у відповідне значення errno для функції виклику (це завдання не є простим: у базовій системі може бути запущено зовсім іншу операційну систему з бібліотеки, а номери помилок у Un*x не стандартизовано). Якщо перетворення є неможливим, повідомлення про помилку перетворюється до "EINVAL". На практиці такі випадки є дуже рідкісними.

guestfs_set_error_handler

 typedef void (*guestfs_error_handler_cb) (guestfs_h *g,
                                           void *opaque,
                                           const char *msg);
 void guestfs_set_error_handler (guestfs_h *g,
                                 guestfs_error_handler_cb cb,
                                 void *opaque);

Якщо станеться помилка, буде викликано зворотний виклик "cb". Параметрами, які передаються зворотному виклику, є непрозорий вказівник на дані і рядок повідомлення про помилку.

"errno" зворотному виклику не передається. Щоб отримати це значення у зворотному виклику, вам слід викликати "guestfs_last_errno".

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

Типовий обробник виводить повідомлення до "stderr".

Якщо ви встановите для "cb" значення "NULL", обробник не викликатиметься.

guestfs_get_error_handler

 guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,
                                                     void **opaque_rtn);

Повертає зворотний виклик поточного обробника помилок.

guestfs_push_error_handler

 void guestfs_push_error_handler (guestfs_h *g,
                                  guestfs_error_handler_cb cb,
                                  void *opaque);

Ця функція виконує ті самі дії, що і "guestfs_set_error_handler", але застарілий обробник помилок додається до стеку у самому дескрипторі. Ви можете відновити попередній обробник помилок за допомогою виклику "guestfs_pop_error_handler".

Скористайтеся таким кодом, щоб тимчасово вимкнути помилки навколо функції:

 guestfs_push_error_handler (g, NULL, NULL);
 guestfs_mkdir (g, "/foo"); /* Нам все одно, якщо спроба буде невдалою. */
 guestfs_pop_error_handler (g);

guestfs_pop_error_handler

 void guestfs_pop_error_handler (guestfs_h *g);

Відновити попередній обробник помилок (див. "guestfs_push_error_handler").

Якщо ви виштовхуватимете обробники зі стосу достатню кількість разів, буде відновлено типовий обробник помилок.

guestfs_set_out_of_memory_handler

 typedef void (*guestfs_abort_cb) (void);
 void guestfs_set_out_of_memory_handler (guestfs_h *g,
                                         guestfs_abort_cb);

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

Типовим є виклик abort(3).

Не можна встановлювати для "cb" значення "NULL". Ви не можете ігнорувати випадки, коли не вистачає пам'яті.

guestfs_get_out_of_memory_handler

 guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);

Повертає поточний обробник випадків нестачі пам'яті.

ВИКЛИКИ API

guestfs_acl_delete_def_file

 int
 guestfs_acl_delete_def_file (guestfs_h *g,
                              const char *dir);

Ця функція вилучає типовий список керування доступом POSIX (ACL), який пов'язано із каталогом "dir".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "acl". Див. також "guestfs_feature_available".

(Додано у 1.19.63)

guestfs_acl_get_file

 char *
 guestfs_acl_get_file (guestfs_h *g,
                       const char *path,
                       const char *acltype);

Ця функція повертає список керування доступом POSIX (ACL), пов'язаний із "path". ACL буде повернуто у «довгій тестовій формі» (див. acl(5)).

Можливі значення параметра "acltype":

"access"
Повертає звичайний (на доступ) ACL для будь-якого файла, каталогу або іншого об'єкта файлової системи.
"default"
Повертає типовий ACL. Зазвичай, це має сенс лише, якщо "шлях" — це каталог.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "acl". Див. також "guestfs_feature_available".

(Додано у 1.19.63)

guestfs_acl_set_file

 int
 guestfs_acl_set_file (guestfs_h *g,
                       const char *path,
                       const char *acltype,
                       const char *acl);

Ця функція встановлює список керування доступом POSIX (ACL), пов'язаний із шляхом "path".

Можливі значення параметра "acltype":

"access"
Встановлює звичайний (на доступ) ACL для будь-якого файла, каталогу або іншого об'єкта файлової системи.
"default"
Встановлює типовий ACL. Зазвичай, це має сенс лише, якщо "шлях" — це каталог.

Значенням параметра "acl" є новий ACL у «довгій текстовий формі» або «скороченій текстовій формі» (див. acl(5)). Новий ACL повністю заміняє будь-який попередній ACL файла. ACL має містити повні права доступу Unix (наприклад, "u::rwx,g::rx,o::rx").

Якщо ви вказуєте окремих користувачів або групи, слід вказувати і поле маски (наприклад, "m::rwx"), за яким слід вказувати поля "u:ідентифікатор:..." і/або "g:ідентифікатор:...". Отже, повний рядок ACL може виглядати ось так:

 u::rwx,g::rwx,o::rwx,m::rwx,u:500:rwx,g:500:rwx
 \      Права Unix        / \маска/ \      ACL        /

Вам слід використовувати числові значення UID і GID. Щоб пов'язати імена користувачів та назви груп із правильними значенням ідентифікаторів у контексті гостьової системи, скористайтеся функціями Augeas (див. "guestfs_aug_init").

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "acl". Див. також "guestfs_feature_available".

(Додано у 1.19.63)

guestfs_add_cdrom

 int
 guestfs_add_cdrom (guestfs_h *g,
                    const char *filename);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_add_drive_ro".

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

Ця функція додає віртуальний образ компакт-диска до гостьової системи.

Образ додається як придатний лише для читання диск, отже ця функція еквівалентна до "guestfs_add_drive_ro".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_add_domain

 int
 guestfs_add_domain (guestfs_h *g,
                     const char *dom,
                     ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_ADD_DOMAIN_LIBVIRTURI, const char *libvirturi,
 GUESTFS_ADD_DOMAIN_READONLY, int readonly,
 GUESTFS_ADD_DOMAIN_IFACE, const char *iface,
 GUESTFS_ADD_DOMAIN_LIVE, int live,
 GUESTFS_ADD_DOMAIN_ALLOWUUID, int allowuuid,
 GUESTFS_ADD_DOMAIN_READONLYDISK, const char *readonlydisk,
 GUESTFS_ADD_DOMAIN_CACHEMODE, const char *cachemode,
 GUESTFS_ADD_DOMAIN_DISCARD, const char *discard,
 GUESTFS_ADD_DOMAIN_COPYONREAD, int copyonread,

Ця функція додає диски, долучені до вказаного за назвою домену libvirt "dom". Вона працює шляхом з'єднання із libvirt,
надсилання запиту щодо домену і XML домену до libvirt, обробки отриманих даних для дисків і виклику "guestfs_add_drive_opts" для кожного з дисків.

Буде повернуто значення кількості доданих дисків. Ця операція є атомарною: якщо буде повернуто помилку, жодного диска не додано.

Ця функція виконує деякі мінімальні перевірки, щоб переконатися, що домен libvirt не запущено (якщо "readonly" не дорівнює true). У майбутніх версіях ми спробуємо реалізувати блокування libvirt для кожного диска.

Диски мають бути доступними. Це часто означає, що додавання дисків з віддаленого з'єднання libvirt (див. http://libvirt.org/remote.html) завершиться помилкою, якщо ці диски не є доступними за тією самою адресою пристрою і локально.

Необов'язковий параметр "libvirturi" встановлює адресу libvirt (див. http://libvirt.org/uri.html). Якщо його не встановлено, ми з'єднуємося із типовою адресою libvirt (або адресою, встановленою за допомогою змінної середовища, див. документацію до libvirt, щоб ознайомитися із подробицями).

Необов'язковий прапорець "live" керує тим, чи буде цей виклик намагатися з'єднатися із запущеним процесом "guestfsd" віртуальної машини, якщо буде виявлено відповідний елемент <channel> у визначення XML libvirt. Типовою поведінкою (якщо прапорець не встановлено) є поведінка, за якої спроби робитися не буде. Див. "ДОЛУЧЕННЯ ДО ЗАПУЩЕНИХ ФОНОВИХ СЛУЖБ", щоб дізнатися більше.

Якщо прапорець "allowuuid" має значення true (типовим значенням є false), тоді може бути передано UUID замість назви домену. Рядок "dom" обробляється спочатку як UUID і виконується пошук. Якщо нічого не вдасться знайти, "dom" обробляється як назва, як завжди.

Необов'язковий параметр "readonlydisk" керує тим, що ми робимо із дисками, які позначено як <readonly/> у XML libvirt. Можливі значення:

Якщо "readonly" має значення false:

Увесь виклик буде перервано із повідомленням про помилку, якщо буде виявлено хоча б один диск із прапорцем <readonly/>.

Якщо "readonly" має значення true:

Диски із прапорцем <readonly/> додано лише для читання.

Якщо "readonly" має значення false:

Диски із прапорцем <readonly/> додано лише для читання. Інші диски додано для читання і запису.

Якщо "readonly" має значення true:

Диски із прапорцем <readonly/> додано лише для читання.

Якщо "readonly" має значення false:

Диски із прапорцем <readonly/> додано для читання і запису.

Якщо "readonly" має значення true:

Диски із прапорцем <readonly/> додано лише для читання.

Якщо "readonly" має значення true або false:

Диски з прапорцем <readonly/> буде пропущено.

Інші необов'язкові параметри передаються безпосередньо до "guestfs_add_drive_opts".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.7.4)

guestfs_add_domain_va

 int
 guestfs_add_domain_va (guestfs_h *g,
                        const char *dom,
                        va_list args);

Це «варіант з va_list» "guestfs_add_domain".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_domain_argv

 int
 guestfs_add_domain_argv (guestfs_h *g,
                          const char *dom,
                          const struct guestfs_add_domain_argv *optargs);

Це «варіант з argv» "guestfs_add_domain".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_drive

 int
 guestfs_add_drive (guestfs_h *g,
                    const char *filename);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_add_drive_opts" без додаткових аргументів.

(Додано у 0.3)

guestfs_add_drive_opts

 int
 guestfs_add_drive_opts (guestfs_h *g,
                         const char *filename,
                         ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_ADD_DRIVE_OPTS_READONLY, int readonly,
 GUESTFS_ADD_DRIVE_OPTS_FORMAT, const char *format,
 GUESTFS_ADD_DRIVE_OPTS_IFACE, const char *iface,
 GUESTFS_ADD_DRIVE_OPTS_NAME, const char *name,
 GUESTFS_ADD_DRIVE_OPTS_LABEL, const char *label,
 GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, const char *protocol,
 GUESTFS_ADD_DRIVE_OPTS_SERVER, char *const *server,
 GUESTFS_ADD_DRIVE_OPTS_USERNAME, const char *username,
 GUESTFS_ADD_DRIVE_OPTS_SECRET, const char *secret,
 GUESTFS_ADD_DRIVE_OPTS_CACHEMODE, const char *cachemode,
 GUESTFS_ADD_DRIVE_OPTS_DISCARD, const char *discard,
 GUESTFS_ADD_DRIVE_OPTS_COPYONREAD, int copyonread,

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

Якщо цю функцію викликають до "guestfs_launch" (типовий випадок), тоді, коли ви вперше викликаєте цю функцію, диск з'являється у програмному інтерфейсі як /dev/sda, другого разу — /dev/sdb, тощо.

У libguestfs ≥ 1.20 ви можете викликати цю функцію і після запуску (з певними обмеженнями). Це називається «з'єднання у «гарячому» режимі». При такому з'єднанні вам слід вказати мітку ("label"), щоб новий диск отримав передбачувану назву. Докладніший опис наведено у розділі "З'ЄДНАННЯ У «ГАРЯЧОМУ» РЕЖИМІ".

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

Цей виклик перевіряє, чи існує filename.

filename може бути спеціальним рядком "/dev/null". Див. "НУЛЬОВІ ДИСКИ".

Необов'язковими аргументами є:

"readonly"
Якщо має значення true, образ вважатиметься придатним лише для читання. Запис буде дозволено, але дані зберігатимуться у тимчасовому знімку-накладці, який наприкінці сеансу роботи буде відкинуто. Зміни до диска, який ви додаєте, внесено не буде.
"format"
Примусово встановлює формат образу. Якщо ви не вкажете його (або скористаєтеся "guestfs_add_drive" чи "guestfs_add_drive_ro"), формат визначатиметься автоматично. Серед можливих форматів "raw" і "qcow2".

Автоматичне визначення формату є потенційною вадою захисту, якщо ви маєте справу з образами у форматі raw із ненадійних джерел. Див. CVE-2010-3851 і RHBZ#642934. Вказування формату явним чином закриває цю дірку у захисті.

"iface"
Цей рідкісний параметр надає вам змогу емулювати поведінку застарілого виклику "guestfs_add_drive_with_if" (q.v.)
"name"
Назва, яку диск має у початковій гостьовій системі, наприклад, /dev/sdb. Використовується як підказка для процесу інспектування гостьової системи, якщо така назва наявна.
"label"
Надати диску мітку. Мітка має бути унікальним коротким рядком, у якому використано лише символи ASCII "[a-zA-Z]". Окрім звичайної назви у програмному інтерфейсі (наприклад /dev/sda), диск також можна буде називати /dev/disk/guestfs/мітка.

Див. "МІТКИ ДИСКІВ".

"protocol"
Необов'язковим аргументом протоколу можна скористатися для вибору альтернативного протоколу джерела.

Див. також "REMOTE STORAGE".

"protocol = "file""
filename вважатиметься локальним файлом або пристроєм. Це типова поведінка програми, якщо не вказано додатковий параметр протоколу.
"protocol = "ftp"|"ftps"|"http"|"https"|"tftp""
З'єднатися із віддаленим сервером FTP, HTTP або TFTP. Також має бути надано параметр "server", див. нижче.

Див. також "FTP, HTTP AND TFTP"

"protocol = "gluster""
З'єднатися із сервером GlusterFS. Також має бути надано параметр "server", див. нижче.

Див. також "GLUSTER".

"protocol = "iscsi""
З'єднатися із сервером iSCSI. Також має бути надано параметр "server", див. нижче. Має бути надано параметр "username", див. нижче. Має бути надано параметр "secret", див. нижче.

Див. також "ISCSI".

"protocol = "nbd""
З'єднатися із сервером Network Block Device. Також має бути надано параметр "server", див. нижче.

Див. також "NETWORK BLOCK DEVICE".

"protocol = "rbd""
З'єднатися із сервером Ceph (librbd/RBD). Також має бути надано параметр "server", див. нижче. Має бути надано параметр "username", див. нижче. Має бути надано параметр "secret", див. нижче.

Див. також "CEPH".

"protocol = "sheepdog""
З'єднатися із сервером Sheepdog. Також може бути надано параметр "server", див. нижче.

Див. також "SHEEPDOG".

"protocol = "ssh""
Встановити з’єднання з сервером Secure Shell (ssh).

Має бути надано параметр "server". Може бути надано параметр "username", див. нижче.

Див. також "SSH".

"server"
Для протоколів, які потребують доступу до віддаленого сервера, це список серверів.

 Протокол       Кількість потрібних серверів
 --------       --------------------------
 file           Список має бути порожнім або не слід користуватися параметром взагалі
 ftp|ftps|http|https|tftp  Точно один
 gluster        Точно один
 iscsi          Точно один
 nbd            Точно один
 rbd            Нуль або більше
 sheepdog       Нуль або більше
 ssh            Точно один
    

Кожен елемент у списку є рядком, який вказує на сервер. Рядок має бути записано у одному з таких форматів:

 назва_вузла
 назва_вузла:порт
 tcp:назва_вузла
 tcp:назва_вузла:порт
 unix:/шлях/до/сокета
    

Якщо номер порту не вказано, буде використано стандартний для протоколу номер (див. /etc/services).

"username"
Для протоколів "ftp", "ftps", "http", "https", "iscsi", "rbd", "ssh" та "tftp" визначає ім’я користувача віддаленої системи.

Якщо не вказано, для "ssh" буде використано ім'я локального користувача, а для ceph спроба пройти розпізнавання не виконуватиметься. Втім, зауважте, що іноді це може призводити до неочікуваних результатів, наприклад, якщо використовується модуль обробки libvirt, і модуль обробки libvirt налаштовано на запуск базової системи qemu від імені спеціального користувача, зокрема "qemu.qemu". Якщо сумніваєтеся, вкажіть потрібне вам ім'я користувача віддаленої системи.

"secret"
Лише для протоколу "rbd" це визначає «ключ», яким слід скористатися для з'єднання із віддаленим пристроєм. Дані має бути вказано у кодуванні base64.

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

"cachemode"
Вкажіть, має libguestfs зважати на дії з синхронізації (безпечно, але повільно) чи ні (небезпечно, але швидко). Можливими значеннями цього рядка можуть бути:
"cachemode = "writeback""
Типове значення.

Дії із запису у програмному інтерфейсі не повертають керування, аж доки не буде завершено виклик write(2) у основній системі [втім, слід зауважити, що це не означає, що щось буде записано на диск].

Дії із синхронізації у програмному інтерфейсі, зокрема неявні синхронізації, спричинені журналюванням файлової системи, не повертатимуть керування, аж доки не буде завершено виклик fdatasync(2) у основній системі, що означатиме, що дані було надіслано на диск.

"cachemode = "unsafe""
У цьому режимі надійність не гарантовано. Libguestfs може кешувати дані і ігнорувати запити щодо синхронізації. Пасує лише тестовим та тимчасовим дискам.
"discard"
Увімкнути або вимкнути підтримку відкидання (або обрізання чи скасовування прив'язки) для цього диска. Якщо увімкнено, дії, подібні до "guestfs_fstrim" зможуть відкидати / утоншувати / пробивати дірки у підлеглому файлі або пристрої основної системи.

Можливі варіанти параметрів відкидання:

"discard = "disable""
Вимкнути підтримку відкидання. Типова поведінка.
"discard = "enable""
Увімкнути підтримку відкидання. Завершується помилкою, якщо відкидання неможливе.
"discard = "besteffort""
Увімкнути, якщо можна, підтримку відкидання, але не завершувати роботу із повідомленням щодо помилки, якщо такої підтримки не передбачено.

Оскільки підтримку відкидання передбачено не для усіх модулів обробки і не для усіх підлеглих систем, це непоганий варіант, якщо ви хочете скористатися відкиданням, якщо воно можливе, але не маєте нічого проти того, щоб воно не працювало.

"copyonread"
Булевий параметр "copyonread" вмикає підтримку копіювання під час читання. Це стосується лише форматів дисків, які мають резервні файли, і спричиняє до того, що дані читання зберігатимуться у накладному шарі, що пришвидшуватиме повторні читання тих сами даних з диска.

Типовим є значення false.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_add_drive_opts_va

 int
 guestfs_add_drive_opts_va (guestfs_h *g,
                            const char *filename,
                            va_list args);

Це «варіант з va_list» "guestfs_add_drive_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_drive_opts_argv

 int
 guestfs_add_drive_opts_argv (guestfs_h *g,
                              const char *filename,
                              const struct guestfs_add_drive_opts_argv *optargs);

Це «варіант з argv» "guestfs_add_drive_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_drive_ro

 int
 guestfs_add_drive_ro (guestfs_h *g,
                       const char *filename);

Ця функція є еквівалентом виклику "guestfs_add_drive_opts" із додатковим параметром "GUESTFS_ADD_DRIVE_OPTS_READONLY", який встановлено у значення 1, отже диск додається лише для читання, а формат визначається автоматично.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.38)

guestfs_add_drive_ro_with_if

 int
 guestfs_add_drive_ro_with_if (guestfs_h *g,
                               const char *filename,
                               const char *iface);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_add_drive".

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

Те саме, що і "guestfs_add_drive_ro", але надає вам змогу вказати емуляцію інтерфейсу QEMU, яку буде використано під час роботи.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.84)

guestfs_add_drive_scratch

 int
 guestfs_add_drive_scratch (guestfs_h *g,
                            int64_t size,
                            ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_ADD_DRIVE_SCRATCH_NAME, const char *name,
 GUESTFS_ADD_DRIVE_SCRATCH_LABEL, const char *label,

Ця команда додає тимчасовий робочий диск до дескриптора. Параметр "size" визначає його віртуальний розмір (у байтах). Робочий диск є початково порожнім (усі спроби читання повертатимуть лише нулі, аж доки ви не почнете записувати на нього дані). Диск вилучається після закриття дескриптора.

Додаткові аргументи "name" і "label" передаються до "guestfs_add_drive".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.23.10)

guestfs_add_drive_scratch_va

 int
 guestfs_add_drive_scratch_va (guestfs_h *g,
                               int64_t size,
                               va_list args);

Це «варіант з va_list» "guestfs_add_drive_scratch"

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_drive_scratch_argv

 int
 guestfs_add_drive_scratch_argv (guestfs_h *g,
                                 int64_t size,
                                 const struct guestfs_add_drive_scratch_argv *optargs);

Це «варіант з argv» "guestfs_add_drive_scratch".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_drive_with_if

 int
 guestfs_add_drive_with_if (guestfs_h *g,
                            const char *filename,
                            const char *iface);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_add_drive".

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

Те саме, що і "guestfs_add_drive", але надає вам змогу вказати емуляцію інтерфейсу QEMU, яку буде використано під час роботи.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.84)

guestfs_add_libvirt_dom

 int
 guestfs_add_libvirt_dom (guestfs_h *g,
                          void * /* really virDomainPtr */ dom,
                          ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_ADD_LIBVIRT_DOM_READONLY, int readonly,
 GUESTFS_ADD_LIBVIRT_DOM_IFACE, const char *iface,
 GUESTFS_ADD_LIBVIRT_DOM_LIVE, int live,
 GUESTFS_ADD_LIBVIRT_DOM_READONLYDISK, const char *readonlydisk,
 GUESTFS_ADD_LIBVIRT_DOM_CACHEMODE, const char *cachemode,
 GUESTFS_ADD_LIBVIRT_DOM_DISCARD, const char *discard,
 GUESTFS_ADD_LIBVIRT_DOM_COPYONREAD, int copyonread,

Ця функція додає диски, долучені до вказаного за назвою домену libvirt "dom". Вона працює шляхом з'єднання із libvirt,
надсилання запиту щодо домену і XML домену до libvirt, обробки отриманих даних для дисків і виклику "guestfs_add_drive_opts" для кожного з дисків.

У програмному інтерфейсі мовою C ми оголошуємо "void *dom", але насправді типом змінної є "virDomainPtr dom". Так зроблено, щоб нам не потрібна була <libvirt.h>.

Буде повернуто значення кількості доданих дисків. Ця операція є атомарною: якщо буде повернуто помилку, жодного диска не додано.

Ця функція виконує деякі мінімальні перевірки, щоб переконатися, що домен libvirt не запущено (якщо "readonly" не дорівнює true). У майбутніх версіях ми спробуємо реалізувати блокування libvirt для кожного диска.

Диски мають бути доступними. Це часто означає, що додавання дисків з віддаленого з'єднання libvirt (див. http://libvirt.org/remote.html) завершиться помилкою, якщо ці диски не є доступними за тією самою адресою пристрою і локально.

Необов'язковий прапорець "live" керує тим, чи буде цей виклик намагатися з'єднатися із запущеним процесом "guestfsd" віртуальної машини, якщо буде виявлено відповідний елемент <channel> у визначення XML libvirt. Типовою поведінкою (якщо прапорець не встановлено) є поведінка, за якої спроби робитися не буде. Див. "ДОЛУЧЕННЯ ДО ЗАПУЩЕНИХ ФОНОВИХ СЛУЖБ", щоб дізнатися більше.

Необов'язковий параметр "readonlydisk" керує тим, що ми робимо із дисками, які позначено як <readonly/> у XML libvirt. Можливі значення описано у довідці щодо "guestfs_add_domain".

Інші необов'язкові параметри передаються безпосередньо до "guestfs_add_drive_opts".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.29.14)

guestfs_add_libvirt_dom_va

 int
 guestfs_add_libvirt_dom_va (guestfs_h *g,
                             void * /* really virDomainPtr */ dom,
                             va_list args);

Це «варіант з va_list» "guestfs_add_libvirt_dom".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_add_libvirt_dom_argv

 int
 guestfs_add_libvirt_dom_argv (guestfs_h *g,
                               void * /* really virDomainPtr */ dom,
                               const struct guestfs_add_libvirt_dom_argv *optargs);

Це «варіант з argv» "guestfs_add_libvirt_dom".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_aug_clear

 int
 guestfs_aug_clear (guestfs_h *g,
                    const char *augpath);

Встановлює значення, пов'язане "path" у "NULL". Те саме, що і команда augtool(1) "clear".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.4)

guestfs_aug_close

 int
 guestfs_aug_close (guestfs_h *g);

Закрити поточний дескриптор Augeas і вивільнити усі ресурси, які ним використовуються. Після виклику слід викликати "guestfs_aug_init" ще раз, перш ніж ви зможете скористатися будь-якими іншими функціями Augeas.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_defnode

 struct guestfs_int_bool *
 guestfs_aug_defnode (guestfs_h *g,
                      const char *name,
                      const char *expr,
                      const char *val);

Визначає змінну "назва", чиїм значенням є результат обчислення виразу "вираз".

Якщо використання виразу "вираз" дає порожній набір вузлів, створюється вузол. Еквівалент виклику "guestfs_aug_set" "вираз", "значення". "назва" буде мати значення набору вузлів, який містить єдиний створений вузол.

Якщо виконано успішно, повертає пару значень — кількість вузлів у наборі вузлів та булевий прапорець, якщо було створено вузол.

Ця функція повертає "struct guestfs_int_bool *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_int_bool".

(Додано у 0.7)

guestfs_aug_defvar

 int
 guestfs_aug_defvar (guestfs_h *g,
                     const char *name,
                     const char *expr);

Визначає змінну Augeas "назва", чиїм значенням є результат обчислення виразу "вираз". Якщо значенням "вираз" є NULL, "назва" є невизначеною.

Якщо виконано успішно, повертає кількість вузлів у виразі "вираз" або 0, якщо обробка виразу "вираз" дає щось, що не є набором вузлів.

У разі помилки цією функцією буде повернуто -1.

(Додано у 0.7)

guestfs_aug_get

 char *
 guestfs_aug_get (guestfs_h *g,
                  const char *augpath);

Виконати пошук значення, пов'язаного із шляхом "шлях". Якщо "шлях" визначає точно один вузол, буде повернуто "значення".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 0.7)

guestfs_aug_init

 int
 guestfs_aug_init (guestfs_h *g,
                   const char *root,
                   int flags);

Створити дескриптор Augeas для редагування файлів налаштувань. Якщо із цим сеансом guestfs вже було пов'язано дескриптор Augeas, його буде закрито.

Вам слід викликати цю команду до використання будь-яких інших команд "guestfs_aug_*".

"корінь" — коренева тека файлової системи. Значенням "корінь" не повинен бути NULL. Замість значення NULL слід використовувати /.

Прапорці є тими самими, що і прапорці, визначені у <augeas.h>, застосування логічного АБО до таких цілих значень:

"AUG_SAVE_BACKUP" = 1
Зберігати початковий файл із додаванням до назви суфікса ".augsave".
"AUG_SAVE_NEWFILE" = 2
Зберігати зміни до файла із суфіксом назви ".augnew" і не перезаписувати початковий файл. Має вищий пріоритет за "AUG_SAVE_BACKUP".
"AUG_TYPE_CHECK" = 4
Лінзи перевірки типів.

Цей параметр буде корисним, лише якщо ви виконуєте діагностику лінз Augeas. Використання цього параметра може потребувати додаткової пам'яті для базової системи libguestfs. Ймовірно, вам варто встановити відповідне значення для змінної середовища "LIBGUESTFS_MEMSIZE" або викликати "guestfs_set_memsize".

"AUG_NO_STDINC" = 8
Не використовувати стандартний шлях для завантаження модулів.
"AUG_SAVE_NOOP" = 16
Вимкнути дію зі збереження, просто записати, що могло б бути змінено.
"AUG_NO_LOAD" = 32
Не завантажувати ієрархію у "guestfs_aug_init".

Щоб закрити дескриптор, ви можете викликати "guestfs_aug_close".

Щоб дізнатися більше про Augeas, зверніться до http://augeas.net/.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_insert

 int
 guestfs_aug_insert (guestfs_h *g,
                     const char *augpath,
                     const char *label,
                     int before);

Створити мітку-близнюка "мітка" для шляху "шлях", вставивши її до ієрархії перед або після записом шляху "шлях" (залежно від додаткового булевого прапорця "до").

"шлях" має збігатися із точно одним наявним вузлом у ієрархії, а "мітка" має бути міткою, тобто не містити /, "*", або завершуватися індексом у дужках, "[N]".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_label

 char *
 guestfs_aug_label (guestfs_h *g,
                    const char *augpath);

Повертає мітку (назву останнього елемента) для виразу шляху Augeas "шлях". "шлях" має відповідати точно одному вузлу, інакше функцією буде повернуто повідомлення про помилку.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.23.14)

guestfs_aug_load

 int
 guestfs_aug_load (guestfs_h *g);

Завантажити файли до ієрархії.

Див. документацію Augeas щодо "aug_load", якщо хочете докладнішого опису.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_ls

 char **
 guestfs_aug_ls (guestfs_h *g,
                 const char *augpath);

Скорочена форма запису для побудови списку "guestfs_aug_match" "шлях/*" і упорядковування вузлів-результатів за абеткою.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 0.8)

guestfs_aug_match

 char **
 guestfs_aug_match (guestfs_h *g,
                    const char *augpath);

Повертає список шляхів, які відповідають виразу шляху "шлях". Повернуті записи шляхів є достатньо визначеними, щоб відповідати точно одному запису вузла у поточній ієрархії.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 0.7)

guestfs_aug_mv

 int
 guestfs_aug_mv (guestfs_h *g,
                 const char *src,
                 const char *dest);

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_rm

 int
 guestfs_aug_rm (guestfs_h *g,
                 const char *augpath);

Вилучити "шлях" і усі його підлеглі об'єкти.

Якщо виконано успішно, повертає кількість вилучених записів.

У разі помилки цією функцією буде повернуто -1.

(Додано у 0.7)

guestfs_aug_save

 int
 guestfs_aug_save (guestfs_h *g);

Записує зміни з черги на диск.

Прапорці, які передаються "guestfs_aug_init" впливають на те, як саме буде збережено файли.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_set

 int
 guestfs_aug_set (guestfs_h *g,
                  const char *augpath,
                  const char *val);

Встановлює для шляху "шлях" пов'язане значення "значення".

У програмному інтерфейсі Augeas можна спорожняти вузол наданням йому значення NULL. Через недогляд у програмному інтерфейсі libguestfs ви не зможете цього робити за допомогою цього виклику. Замість цього, доведеться викликати "guestfs_aug_clear".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.7)

guestfs_aug_setm

 int
 guestfs_aug_setm (guestfs_h *g,
                   const char *base,
                   const char *sub,
                   const char *val);

Змінити декілька вузлів Augeas однією командою. "основа" — вираз, що відповідає декільком вузлам. "підлеглий" — вираз шляху відносно шляху "основа". Буде знайдено усі вузли, які відповідають запису "основа", а потім для кожного вузла значення "підлеглий" буде змінено на "значення". Значенням "підлеглий" може бути "NULL", щоб призведе до внесення змін до вузлів "основа".

Повертає кількість модифікованих вузлів.

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.23.14)

guestfs_aug_transform

 int
 guestfs_aug_transform (guestfs_h *g,
                        const char *lens,
                        const char *file,
                        ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_AUG_TRANSFORM_REMOVE, int remove,

Додати перетворення Augeas до вказаної лінзи "лінза" так, щоб вона могла обробляти "файл".

Якщо значенням прапорця "вилучення" є true (типово його значенням є "false"), перетворення буде вилучено.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.35.2)

guestfs_aug_transform_va

 int
 guestfs_aug_transform_va (guestfs_h *g,
                           const char *lens,
                           const char *file,
                           va_list args);

Це «варіант з va_list» "guestfs_aug_transform"

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_aug_transform_argv

 int
 guestfs_aug_transform_argv (guestfs_h *g,
                             const char *lens,
                             const char *file,
                             const struct guestfs_aug_transform_argv *optargs);

Це «варіант з argv» "guestfs_aug_transform".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_available

 int
 guestfs_available (guestfs_h *g,
                    char *const *groups);

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

Список груп libguestfs та функцій, яким відповідають ці групи, наведено у розділі "ДОСТУПНІСТЬ". Ви також можете отримати цей список у робочому режимі викликом "guestfs_available_all_groups".

Аргумент "групи" є списком назв груп. Приклад: "["inotify", "augeas"]" має перевірити доступність функцій inotify Linux та функцій Augeas (редагування файла налаштувань).

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

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

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

Нотатки:

  • "guestfs_feature_available" є тим самим, що і цей виклик, але із дещо простішим у користуванні програмним інтерфейсом: цей виклик повертає булеве true/false замість надсилання повідомлення про помилку.
  • Вам слід викликати "guestfs_launch" до виклику цієї функції.

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

  • Якщо група функцій доступна, це не обов'язково означає, що функції працюватимуть. Вам все одно слід перевірити, чи не виникають помилки під час викликів окремих програмних інтерфейсів, навіть якщо вони доступні.
  • Зазвичай, збирання базової системи libguestfs із якомога ширшими функціональними можливостями є завданням пакувальників дистрибутивів. libguestfs із основної гілки коду, якщо програми зібрано із початкового коду із усіма залежностями, підтримуватиме роботу із усіма можливостями.
  • Цей виклик було додано у версії 1.0.80. У попередніх версіях libguestfs усе, що ви могли зробити, це спробувати виконати команду, щоб визначити, чи реалізовано її у фоновій службі. Див. також "guestfs_version".

Див. також "guestfs_filesystem_available".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.80)

guestfs_available_all_groups

 char **
 guestfs_available_all_groups (guestfs_h *g);

Ця команда повертає список усіх додаткових груп, про які знає ця фонова служба. Зауважте, що буде повернуто список підтримуваних і непідтримуваних груп. Щоб визначити групи, підтримку яких передбачено у фоновій службі, вам слід викликати "guestfs_available" / "guestfs_feature_available" для кожного запису із повернутого списку.

Див. також "guestfs_available", "guestfs_feature_available" і "AVAILABILITY".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.3.15)

guestfs_base64_in

 int
 guestfs_base64_in (guestfs_h *g,
                    const char *base64file,
                    const char *filename);

Ця команда вивантажує закодовані у base64 дані з файла "файл_base64" до файла назва_файла.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.5)

guestfs_base64_out

 int
 guestfs_base64_out (guestfs_h *g,
                     const char *filename,
                     const char *base64file);

Ця команда отримує вміст файла назва_файла і записує його до локального файла "файл_base64" у кодуванні base64.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.5)

guestfs_blkdiscard

 int
 guestfs_blkdiscard (guestfs_h *g,
                     const char *device);

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

Ця операція потребує підтримки у libguestfs, файловій системі основної системи, qemu та ядрі основної системи. Якщо цієї підтримки немає, операція призведе до помилки або навіть виконуватиметься, але без усіляких наслідків. Вам слід встановити атрибут "discard" на підлеглому диску (див. "guestfs_add_drive_opts").

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "blkdiscard". Див. також "guestfs_feature_available".

(Додано у 1.25.44)

guestfs_blkdiscardzeroes

 int
 guestfs_blkdiscardzeroes (guestfs_h *g,
                           const char *device);

Цей виклик повертає true, якщо блоки на пристрої "пристрій", які було відкинуто викликом "guestfs_blkdiscard", повернуто як блоки у нуль байтів під час наступного читання.

Якщо повертає false, може так статися, що відкинуті блоки читаються як застарілі або випадкові дані.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "blkdiscardzeroes". Див. також "guestfs_feature_available".

(Додано у 1.25.44)

guestfs_blkid

 char **
 guestfs_blkid (guestfs_h *g,
                const char *device);

Ця команда повертає атрибути блокового пристрою "пристрій". У виведеному хеші зазвичай є вказані нижче поля. Також у ньому можуть бути інші поля.

"UUID"
Код UUID цього пристрою.
"МІТКА"
Мітка пристрою.
"ВЕРСІЯ"
Версія програми blkid.
"ТИП"
Тип файлової системи або RAID для цього пристрою.
"ВИКОРИСТАННЯ"
Призначення цього пристрою, наприклад "filesystem" або "raid".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

(Додано у 1.15.9)

guestfs_blockdev_flushbufs

 int
 guestfs_blockdev_flushbufs (guestfs_h *g,
                             const char *device);

Ця команда наказує ядру спорожнити внутрішні буфери, які пов'язано із пристроєм "пристрій".

Використовується програма blockdev(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.9.3)

guestfs_blockdev_getbsz

 int
 guestfs_blockdev_getbsz (guestfs_h *g,
                          const char *device);

Повертає розмір блоку для пристрою.

Зауваження: цей розмір відрізняється від розміру у блоках і розміру блоку файлової системи. Крім того, цей параметр насправді ніде не використовується. Вам, ймовірно, не знадобляться ці дані. Файлові системі мають власні правила щодо вибору розміру блоку.

Використовується програма blockdev(8).

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.9.3)

guestfs_blockdev_getro

 int
 guestfs_blockdev_getro (guestfs_h *g,
                         const char *device);

Повертає булеве значення, яке визначається тим, чи призначено блоковий пристрій лише для читання (true, якщо пристрій призначено лише для читання, false, якщо ні).

Використовується програма blockdev(8).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.9.3)

guestfs_blockdev_getsize64

 int64_t
 guestfs_blockdev_getsize64 (guestfs_h *g,
                             const char *device);

Повертає розмір пристрою у байтах.

Див. також "guestfs_blockdev_getsz".

Використовується програма blockdev(8).

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.9.3)

guestfs_blockdev_getss

 int
 guestfs_blockdev_getss (guestfs_h *g,
                         const char *device);

Ця команда повертає розмір сектора на блоковому пристрої. Зазвичай, розміром є 512, але на сучасних пристроях розмір може бути більшим.

(Зауважте, що це не розмір у секторах. Щоб отримати розмір у секторах, скористайтеся "guestfs_blockdev_getsz").

Використовується програма blockdev(8).

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.9.3)

guestfs_blockdev_getsz

 int64_t
 guestfs_blockdev_getsz (guestfs_h *g,
                         const char *device);

Цей повертає розмір пристрою у одиницях 512-байтових секторах (навіть якщо розмір сектора не дорівнює 512 байтів ...дивно).

Див. також "guestfs_blockdev_getss", щоб дізнатися справжній розмір сектора пристрою, і "guestfs_blockdev_getsize64" для отримання кориснішого розміру у байтах.

Використовується програма blockdev(8).

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.9.3)

guestfs_blockdev_rereadpt

 int
 guestfs_blockdev_rereadpt (guestfs_h *g,
                            const char *device);

Повторно прочитати таблицю розділів з пристрою "пристрій".

Використовується програма blockdev(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.9.3)

guestfs_blockdev_setbsz

 int
 guestfs_blockdev_setbsz (guestfs_h *g,
                          const char *device,
                          int blocksize);

Ця функція вважається застарілою. Замінника не передбачено. Зверніться до документації із програмного інтерфейсу у підручнику з guestfs(3), щоб дізнатися більше.

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

Цей виклик не виконує ніяких дій і ніколи цього не робив через ваду у blockdev. Не використовуйте його.

Якщо вам потрібно встановити розмір блоку файлової системи, скористайтеся параметром "blocksize" "guestfs_mkfs".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.9.3)

guestfs_blockdev_setra

 int
 guestfs_blockdev_setra (guestfs_h *g,
                         const char *device,
                         int sectors);

Встановити випереджальне читання (у 512-байтових секторах) для пристрою.

Використовується програма blockdev(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.29.10)

guestfs_blockdev_setro

 int
 guestfs_blockdev_setro (guestfs_h *g,
                         const char *device);

Переводити блоковий пристрій з назвою "пристрій" у режим лише читання.

Використовується програма blockdev(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.9.3)

guestfs_blockdev_setrw

 int
 guestfs_blockdev_setrw (guestfs_h *g,
                         const char *device);

Встановлює для блокового пристрою із назвою "пристрій" режим читання-запису.

Використовується програма blockdev(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.9.3)

guestfs_btrfs_balance_cancel

 int
 guestfs_btrfs_balance_cancel (guestfs_h *g,
                               const char *path);

Скасувати поточний баланс на файловій системі btrfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_balance_pause

 int
 guestfs_btrfs_balance_pause (guestfs_h *g,
                              const char *path);

Призупинити запущений баланс у файловій системі btrfs

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_balance_resume

 int
 guestfs_btrfs_balance_resume (guestfs_h *g,
                               const char *path);

Поновити призупинений баланс на файловій системі btrfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_balance_status

 struct guestfs_btrfsbalance *
 guestfs_btrfs_balance_status (guestfs_h *g,
                               const char *path);

Показати стан використовуваного або призупиненого балансу на файловій системі btrfs.

Ця функція повертає "struct guestfs_btrfsbalance *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_btrfsbalance".

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.26)

guestfs_btrfs_device_add

 int
 guestfs_btrfs_device_add (guestfs_h *g,
                           char *const *devices,
                           const char *fs);

Додати список пристроїв у записі "пристрої" до файлової системи btrfs, змонтованої до файлової системи "файлова система". Якщо "пристрої" є порожнім списком, не виконувати ніяких дій.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_device_delete

 int
 guestfs_btrfs_device_delete (guestfs_h *g,
                              char *const *devices,
                              const char *fs);

Вилучити "пристрої" з файлової системи btrfs, змонтованої до точки "файлова система". Якщо запис "пристрої" є порожнім списком, не виконувати ніяких дій.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_filesystem_balance

 int
 guestfs_btrfs_filesystem_balance (guestfs_h *g,
                                   const char *fs);

Збалансувати фрагменти файлової системи btrfs, змонтованої до точки "файлова_система", між підлеглими пристроями.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_filesystem_defragment

 int
 guestfs_btrfs_filesystem_defragment (guestfs_h *g,
                                      const char *path,
                                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_BTRFS_FILESYSTEM_DEFRAGMENT_FLUSH, int flush,
 GUESTFS_BTRFS_FILESYSTEM_DEFRAGMENT_COMPRESS, const char *compress,

Виконати дефрагментацію файла або каталогу на файловій системі btrfs. Для параметра «стискання» передбачено два значення: zlib або lzo.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_filesystem_defragment_va

 int
 guestfs_btrfs_filesystem_defragment_va (guestfs_h *g,
                                         const char *path,
                                         va_list args);

Це «варіант з va_list» "guestfs_btrfs_filesystem_defragment".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_filesystem_defragment_argv

 int
 guestfs_btrfs_filesystem_defragment_argv (guestfs_h *g,
                                           const char *path,
                                           const struct guestfs_btrfs_filesystem_defragment_argv *optargs);

Це «варіант з argv» "guestfs_btrfs_filesystem_defragment".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_filesystem_resize

 int
 guestfs_btrfs_filesystem_resize (guestfs_h *g,
                                  const char *mountpoint,
                                  ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_BTRFS_FILESYSTEM_RESIZE_SIZE, int64_t size,

Ця команда змінює розмір файлової системи btrfs.

Зауважте, що на відміну від інших викликів команд зміни розмірів, файлову систему має бути змонтовано, а параметром команди є точка монтування, а не пристрій (це вимога самої btrfs).

Додатковими параметрами є:

"розмір"
Новий розмір (у байтах) файлової системи. Якщо не вказано, файлову систему буде розширено до максимального розміру.

Див. також btrfs(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.11.17)

guestfs_btrfs_filesystem_resize_va

 int
 guestfs_btrfs_filesystem_resize_va (guestfs_h *g,
                                     const char *mountpoint,
                                     va_list args);

Це «варіант з va_list» "guestfs_btrfs_filesystem_resize".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_filesystem_resize_argv

 int
 guestfs_btrfs_filesystem_resize_argv (guestfs_h *g,
                                       const char *mountpoint,
                                       const struct guestfs_btrfs_filesystem_resize_argv *optargs);

Це «варіант з argv» "guestfs_btrfs_filesystem_resize".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_filesystem_show

 char **
 guestfs_btrfs_filesystem_show (guestfs_h *g,
                                const char *device);

Вивести усі пристрої, на які поширюються файлові системи з пристрою "пристрій".

Якщо у системі наявні не усі пристрої для файлових систем, ця функція завершується повідомленням про помилку, а для "errno" встановлюється значення "ENODEV".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.33.29)

guestfs_btrfs_filesystem_sync

 int
 guestfs_btrfs_filesystem_sync (guestfs_h *g,
                                const char *fs);

Примусово синхронізувати файлову систему btrfs, яку змонтовано до точки "файлова_система".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_fsck

 int
 guestfs_btrfs_fsck (guestfs_h *g,
                     const char *device,
                     ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_BTRFS_FSCK_SUPERBLOCK, int64_t superblock,
 GUESTFS_BTRFS_FSCK_REPAIR, int repair,

Використовується для перевірки файлової системи btrfs, "пристрій" — файл пристрою, у якому зберігається файлова система.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.43)

guestfs_btrfs_fsck_va

 int
 guestfs_btrfs_fsck_va (guestfs_h *g,
                        const char *device,
                        va_list args);

Це «варіант з va_list» "guestfs_btrfs_fsck".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_fsck_argv

 int
 guestfs_btrfs_fsck_argv (guestfs_h *g,
                          const char *device,
                          const struct guestfs_btrfs_fsck_argv *optargs);

Це «варіант з argv» "guestfs_btrfs_fsck".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_image

 int
 guestfs_btrfs_image (guestfs_h *g,
                      char *const *source,
                      const char *image,
                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_BTRFS_IMAGE_COMPRESSLEVEL, int compresslevel,

Використовується для створення образу файлової системи btrfs. Усі дані буде перезаписано нулями, але метадані і подібні дані буде збережено.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.32)

guestfs_btrfs_image_va

 int
 guestfs_btrfs_image_va (guestfs_h *g,
                         char *const *source,
                         const char *image,
                         va_list args);

Це «варіант з va_list» "guestfs_btrfs_image"

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_image_argv

 int
 guestfs_btrfs_image_argv (guestfs_h *g,
                           char *const *source,
                           const char *image,
                           const struct guestfs_btrfs_image_argv *optargs);

Це «варіант з argv» "guestfs_btrfs_image".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_qgroup_assign

 int
 guestfs_btrfs_qgroup_assign (guestfs_h *g,
                              const char *src,
                              const char *dst,
                              const char *path);

Додає q-групу "джерело" до батьківської q-групи "призначення". Ця команда може групувати декілька q-груп до батьківської q-групи для спільного використання загальних обмежень.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_qgroup_create

 int
 guestfs_btrfs_qgroup_create (guestfs_h *g,
                              const char *qgroupid,
                              const char *subvolume);

Створити групу квот (q-групу) для підтому "підтом".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_qgroup_destroy

 int
 guestfs_btrfs_qgroup_destroy (guestfs_h *g,
                               const char *qgroupid,
                               const char *subvolume);

Знищити групу квот.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_qgroup_limit

 int
 guestfs_btrfs_qgroup_limit (guestfs_h *g,
                             const char *subvolume,
                             int64_t size);

Обмежити розмір підтому із шляхом "підтом".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_qgroup_remove

 int
 guestfs_btrfs_qgroup_remove (guestfs_h *g,
                              const char *src,
                              const char *dst,
                              const char *path);

Вилучити q-групу "джерело" з батьківської q-групи "призначення".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_qgroup_show

 struct guestfs_btrfsqgroup_list *
 guestfs_btrfs_qgroup_show (guestfs_h *g,
                            const char *path);

Вивести усі групи квот підтомів у файловій системі btrfs разом із даними щодо їхнього використання.

Ця функція повертає "struct guestfs_btrfsqgroup_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_btrfsqgroup_list".

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_quota_enable

 int
 guestfs_btrfs_quota_enable (guestfs_h *g,
                             const char *fs,
                             int enable);

Увімкнути або вимкнути підтримку квот підтомів для файлової системи, яка містить "шлях".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_quota_rescan

 int
 guestfs_btrfs_quota_rescan (guestfs_h *g,
                             const char *fs);

Викинути усі числові дані qgroup і виконати повторне сканування з поточними налаштуваннями.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_replace

 int
 guestfs_btrfs_replace (guestfs_h *g,
                        const char *srcdev,
                        const char *targetdev,
                        const char *mntpoint);

Замінити пристрій файлової системи btrfs. На «живій» файловій системі здублювати на пристрій призначення дані, які на поточний момент зберігаються на пристрої джерела. Після завершення операції пристрій джерела буде витерто і вилучено з файлової системи.

 C<пристрій_призначення> повинен мати той самий або більший розмір за
C<пристрій_джерела>. Пристрої, які на поточний момент змонтовано, не можна
використовувати як C<пристрій_призначення>.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.48)

guestfs_btrfs_rescue_chunk_recover

 int
 guestfs_btrfs_rescue_chunk_recover (guestfs_h *g,
                                     const char *device);

Відновити дерево фрагментів файлової системи btrfs шляхом послідовного сканування пристроїв.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_rescue_super_recover

 int
 guestfs_btrfs_rescue_super_recover (guestfs_h *g,
                                     const char *device);

Відновити пошкоджені суперблоки із якісних копій.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_scrub_cancel

 int
 guestfs_btrfs_scrub_cancel (guestfs_h *g,
                             const char *path);

Скасувати витирання, що виконується у файловій системі btrfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_scrub_resume

 int
 guestfs_btrfs_scrub_resume (guestfs_h *g,
                             const char *path);

Відновити раніше скасований або перерваний зріз на файловій системі btrfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_scrub_start

 int
 guestfs_btrfs_scrub_start (guestfs_h *g,
                            const char *path);

Читає усі дані і метадані на файловій системі і використовує контрольні суми та копії-дублікати зі сховища даних RAID для ідентифікації та відновлення усіх пошкоджених даних.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.22)

guestfs_btrfs_scrub_status

 struct guestfs_btrfsscrub *
 guestfs_btrfs_scrub_status (guestfs_h *g,
                             const char *path);

Показати дані щодо стану витирання, яке виконується або завершено на файловій системі btrfs.

Ця функція повертає "struct guestfs_btrfsscrub *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_btrfsscrub".

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.26)

guestfs_btrfs_set_seeding

 int
 guestfs_btrfs_set_seeding (guestfs_h *g,
                            const char *device,
                            int seeding);

Увімкнути або вимкнути можливість розсіювання для пристрою, на якому міститься файлова система btrfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.43)

guestfs_btrfs_subvolume_create

 int
 guestfs_btrfs_subvolume_create (guestfs_h *g,
                                 const char *dest);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_btrfs_subvolume_create_opts" без додаткових аргументів.

(Додано у 1.17.35)

guestfs_btrfs_subvolume_create_opts

 int
 guestfs_btrfs_subvolume_create_opts (guestfs_h *g,
                                      const char *dest,
                                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_BTRFS_SUBVOLUME_CREATE_OPTS_QGROUPID, const char *qgroupid,

Створити підтом btrfs. Значенням аргументу "призначення" є каталог призначення і назва підтому у формі /шлях/до/призначення/назва. Додатковий параметр "ідентифікатор q-групи" відповідає q-групі, до якої слід додати створений підтом.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_subvolume_create_opts_va

 int
 guestfs_btrfs_subvolume_create_opts_va (guestfs_h *g,
                                         const char *dest,
                                         va_list args);

Це «варіант з va_list» "guestfs_btrfs_subvolume_create_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_subvolume_create_opts_argv

 int
 guestfs_btrfs_subvolume_create_opts_argv (guestfs_h *g,
                                           const char *dest,
                                           const struct guestfs_btrfs_subvolume_create_opts_argv *optargs);

Це «варіант з argv» "guestfs_btrfs_subvolume_create_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_subvolume_delete

 int
 guestfs_btrfs_subvolume_delete (guestfs_h *g,
                                 const char *subvolume);

Вилучити вказаний за назвою підтом або знімок btrfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_subvolume_get_default

 int64_t
 guestfs_btrfs_subvolume_get_default (guestfs_h *g,
                                      const char *fs);

Отримати типовий підтом або знімок файлової системи, змонтований до точки "точка монтування".

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_subvolume_list

 struct guestfs_btrfssubvolume_list *
 guestfs_btrfs_subvolume_list (guestfs_h *g,
                               const char *fs);

Виводить список знімків btrfs і підтоми файлової системи btrfs, яку змонтовано до точки "файлова_система".

Ця функція повертає "struct guestfs_btrfssubvolume_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_btrfssubvolume_list".

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_subvolume_set_default

 int
 guestfs_btrfs_subvolume_set_default (guestfs_h *g,
                                      int64_t id,
                                      const char *fs);

Встановити підтом файлової системи btrfs "файлова_система", який буде типово змонтовано. Див. "guestfs_btrfs_subvolume_list", щоб отримати список підтомів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_subvolume_show

 char **
 guestfs_btrfs_subvolume_show (guestfs_h *g,
                               const char *subvolume);

Повернути докладні дані щодо підтому.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.17)

guestfs_btrfs_subvolume_snapshot

 int
 guestfs_btrfs_subvolume_snapshot (guestfs_h *g,
                                   const char *source,
                                   const char *dest);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_btrfs_subvolume_snapshot_opts" без додаткових аргументів.

(Додано у 1.17.35)

guestfs_btrfs_subvolume_snapshot_opts

 int
 guestfs_btrfs_subvolume_snapshot_opts (guestfs_h *g,
                                        const char *source,
                                        const char *dest,
                                        ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_BTRFS_SUBVOLUME_SNAPSHOT_OPTS_RO, int ro,
 GUESTFS_BTRFS_SUBVOLUME_SNAPSHOT_OPTS_QGROUPID, const char *qgroupid,

Створити знімок підтому btrfs. Значенням аргументу "призначення" є каталог призначення і назва знімка у формі /шлях/до/призначення/назва. Типово, новостворений знімок придатний до запису. Якщо значенням додаткового параметра "ro" є true, буде створено знімок придатний лише до читання. Додатковий параметр "ідентифікатор q-групи" відповідає q-групі, до якої слід додати створений знімок.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.35)

guestfs_btrfs_subvolume_snapshot_opts_va

 int
 guestfs_btrfs_subvolume_snapshot_opts_va (guestfs_h *g,
                                           const char *source,
                                           const char *dest,
                                           va_list args);

Це «варіант з va_list» "guestfs_btrfs_subvolume_snapshot_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfs_subvolume_snapshot_opts_argv

 int
 guestfs_btrfs_subvolume_snapshot_opts_argv (guestfs_h *g,
                                             const char *source,
                                             const char *dest,
                                             const struct guestfs_btrfs_subvolume_snapshot_opts_argv *optargs);

Це «варіант з argv» "guestfs_btrfs_subvolume_snapshot_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_btrfstune_enable_extended_inode_refs

 int
 guestfs_btrfstune_enable_extended_inode_refs (guestfs_h *g,
                                               const char *device);

Вмикає розширені посилання на inode.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.29)

guestfs_btrfstune_enable_skinny_metadata_extent_refs

 int
 guestfs_btrfstune_enable_skinny_metadata_extent_refs (guestfs_h *g,
                                                       const char *device);

Вмикає розширені посилання на спрощені метадані.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.29)

guestfs_btrfstune_seeding

 int
 guestfs_btrfstune_seeding (guestfs_h *g,
                            const char *device,
                            int seeding);

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.29.29)

guestfs_c_pointer

 int64_t
 guestfs_c_pointer (guestfs_h *g);

In non-C language bindings, this allows you to retrieve the underlying C pointer to the handle (ie. "guestfs_h *"). The purpose of this is to allow other libraries to interwork with libguestfs.

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.29.17)

guestfs_canonical_device_name

 char *
 guestfs_canonical_device_name (guestfs_h *g,
                                const char *device);

Ця допоміжна функція корисна для показу назв пристроїв користувачеві. Вона приймає декілька неформатованих назв пристроїв і повертає їх у відповідному форматі:

/dev/hdX
/dev/vdX
Дані повертаються у форматі /dev/sdX. Зауважте, що це працює для назв пристроїв і розділів. Це, у наближеному вигляді, обернення алгоритму, описаного у розділі "ІМЕНУВАННЯ БЛОКОВИХ ПРИСТРОЇВ".
/dev/mapper/VG-LV
/dev/dm-N
Перетворені до форми /dev/VG/LV за допомогою "guestfs_lvm_canonical_lv_name".

Інші рядки повертаються незмінними.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.7)

guestfs_cap_get_file

 char *
 guestfs_cap_get_file (guestfs_h *g,
                       const char *path);

Ця функція повертає можливості Linux, пов'язані із шляхом "шлях". Набір можливостей повертається у текстовій формі (див. cap_to_text(3)).

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

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "linuxcaps". Див. також "guestfs_feature_available".

(Додано у 1.19.63)

guestfs_cap_set_file

 int
 guestfs_cap_set_file (guestfs_h *g,
                       const char *path,
                       const char *cap);

Ця функція встановлює можливості Linux, пов'язані із шляхом "шлях". Набір можливостей "можливості" має бути передано у текстовій формі (див. cap_from_text(3)).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxcaps". Див. також "guestfs_feature_available".

(Додано у 1.19.63)

guestfs_case_sensitive_path

 char *
 guestfs_case_sensitive_path (guestfs_h *g,
                              const char *path);

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

Команда працює із особливістю драйвера файлових систем ntfs-3g Linux (та, ймовірно, інших драйверів), яка полягає у тому, що, хоча у підлеглій файловій системі регістр символів не враховується, драйвер експортує файлову систему до Linux як таку, де регістр символів враховується.

Одним із наслідків цього є те, що спеціалізовані каталоги, зокрема C:\windows, можуть показуватися як /WINDOWS або /windows (або інші записи), залежно від точних характеристик їхнього створення. У самій Windows це не спричиняє ніяких проблем.

Вада чи особливість? Вирішувати вам: http://www.tuxera.com/community/ntfs-3g-faq/#posixfilenames1

"guestfs_case_sensitive_path" намагається визначити справжній регістр символів кожного запису у шляху. Команда повертає визначений шлях, якщо існує відповідний повний шлях або його батьківський каталог. Якщо існує батьківський каталог, але повний шлях не існує, буде визначено регістр для батьківського каталогу, а решту запису буде додано без змін. Наприклад, якщо існує файл "/Windows/System32/netkvm.sys":

"guestfs_case_sensitive_path" ("/windows/system32/netkvm.sys")
"Windows/System32/netkvm.sys"
"guestfs_case_sensitive_path" ("/windows/system32/NoSuchFile")
"Windows/System32/NoSuchFile"
"guestfs_case_sensitive_path" ("/windows/system33/netkvm.sys")
ERROR

Зауваження: через описану вище поведінку "guestfs_case_sensitive_path" не можна використовувати для перевірки наявності файла.

Зауваження: ця функція не обробляє назви дисків, зворотні похилі риски тощо.

Див. також "guestfs_realpath".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.75)

guestfs_cat

 char *
 guestfs_cat (guestfs_h *g,
              const char *path);

Повертає вміст файла із назвою "шлях".

Оскільки у C ця функція повертає "char *", не існує способу відрізнити символ "\0" у вмісті файла і кінець рядка. Для обробки двійкових файлів скористайтеся функцією "guestfs_read_file" або "guestfs_download".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 0.4)

guestfs_checksum

 char *
 guestfs_checksum (guestfs_h *g,
                   const char *csumtype,
                   const char *path);

Цей виклик обчислює контрольну суму MD5, SHAx або CRC для файла із назвою "шлях".

Тип контрольної суми задається параметром "тип_контрольної_суми". Можливі значення цього параметра:

"crc"
Обчислити суму циклічної перевірки надлишковості (CRC) за стандартом POSIX для команди "cksum".
"md5"
Обчислити хеш-суму MD5 (за допомогою програми "md5sum").
"sha1"
Обчислити хеш-суму SHA1 (за допомогою програми "sha1sum").
"sha224"
Обчислити хеш-суму SHA224 (за допомогою програми "sha224sum").
"sha256"
Обчислити хеш-суму SHA256 (за допомогою програми "sha256sum").
"sha384"
Обчислити хеш-суму SHA384 (за допомогою програми "sha384sum").
"sha512"
Обчислити хеш-суму SHA512 (за допомогою програми "sha512sum").

Контрольна сума повертається у форматі рядка, придатного до друку (ASCII)

Щоб отримати контрольну суму пристрою, скористайтеся "guestfs_checksum_device".

Щоб отримати контрольні суми декількох файлів одразу, скористайтеся "guestfs_checksums_out".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.2)

guestfs_checksum_device

 char *
 guestfs_checksum_device (guestfs_h *g,
                          const char *csumtype,
                          const char *device);

Цей виклик обчислює контрольну суму MD5, SHAx або CRC для вмісту пристрою із назвою "пристрій". Типи підтримуваних контрольних сум описано у документації до команди "guestfs_checksum".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.3.2)

guestfs_checksums_out

 int
 guestfs_checksums_out (guestfs_h *g,
                        const char *csumtype,
                        const char *directory,
                        const char *sumsfile);

Ця команда обчислює контрольні суми звичайних файлів у каталозі каталог і видає список контрольних сум до локального файла результатів "файл_сум".

Командою можна скористатися для перевірки цілісності віртуальної машини. Втім, щоб забезпечити надійний захист, вам слід звернути увагу на виведені командою обчислення контрольних сум дані (використовується програма з GNU coreutils). Зокрема, якщо назва файла складається із символів, які непридатні до друку, coreutils використовує спеціалізований синтаксис із символом зворотної похилої риски. Щоб дізнатися більше, ознайомтеся із файлом info GNU coreutils.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.7)

guestfs_chmod

 int
 guestfs_chmod (guestfs_h *g,
                int mode,
                const char *path);

Змінити режим (права доступу) для шляху "шлях" на "режим". Передбачено підтримку лише числових записів режимів.

Зауваження: при використанні цієї команди з guestfish, "режим", типово, має бути вказано у десятковій формі, якщо не буде додано префікса 0 для вісімкової форми запису, тобто слід вказувати 0700 замість 700.

На встановлений режим доступу впливає umask.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_chown

 int
 guestfs_chown (guestfs_h *g,
                int owner,
                int group,
                const char *path);

Змінити власника файла на "власник" і групу на "група".

Передбачено підтримку лише числових uid і gid. Якщо ви хочете скористатися текстовими назвами, вам доведеться знайти і обробити файл паролів власноруч (підтримка Augeas робить це завдання відносно простим).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_clear_backend_setting

 int
 guestfs_clear_backend_setting (guestfs_h *g,
                                const char *name);

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

Цей виклик повертає кількість рядків, які було вилучено (може бути значення 0, 1 або більше за 1).

Див. "МОДУЛЬ", "ПАРАМЕТРИ МОДУЛЯ".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.27.2)

guestfs_command

 char *
 guestfs_command (guestfs_h *g,
                  char *const *arguments);

Цей виклик запускає команду з гостьової файлової системи. Файлову систему має бути змонтовано, вона має містити сумісну операційну систему (тобто якусь систему Linux із такою або сумісною архітектурою процесора).

Єдиним параметром є список аргументів у стилі argv. Першим елементом цього списку є назва програми, яку слід запустити. Наступні елементи є параметрами цієї програми. Список має бути непорожнім (тобто містити принаймні назву програми). Зауважте, що команда працює безпосередньо і не викликає командної оболонки (див. "guestfs_sh").

Повернутим значенням є усі дані, виведені командою до stdout.

Якщо команда повертає ненульовий стан виходу, тоді ця функція повертає повідомлення про помилку. Рядок повідомлення про помилку міститиме вміст stderr від команди.

Змінна середовища $PATH міститиме принаймні /usr/bin і /bin. Якщо вам потрібна програм з іншої теки, вам слід вказати шлях до неї повністю у першому параметрі.

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

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.9.1)

guestfs_command_lines

 char **
 guestfs_command_lines (guestfs_h *g,
                        char *const *arguments);

Те саме, що і "guestfs_command", але результат буде поділено на список рядків.

Див. також "guestfs_sh_lines"

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.9.1)

guestfs_compress_device_out

 int
 guestfs_compress_device_out (guestfs_h *g,
                              const char *ctype,
                              const char *device,
                              const char *zdevice,
                              ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COMPRESS_DEVICE_OUT_LEVEL, int level,

Ця команда стискає вміст пристрою "пристрій" і записує його до локального файла "z-пристрій".

Параметр "тип_стискання" і необов'язковий параметр "рівень" мають те саме значення, що і у команді "guestfs_compress_out".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.13.15)

guestfs_compress_device_out_va

 int
 guestfs_compress_device_out_va (guestfs_h *g,
                                 const char *ctype,
                                 const char *device,
                                 const char *zdevice,
                                 va_list args);

Це «варіант з va_list» "guestfs_compress_device_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_compress_device_out_argv

 int
 guestfs_compress_device_out_argv (guestfs_h *g,
                                   const char *ctype,
                                   const char *device,
                                   const char *zdevice,
                                   const struct guestfs_compress_device_out_argv *optargs);

Це «варіант з argv» "guestfs_compress_device_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_compress_out

 int
 guestfs_compress_out (guestfs_h *g,
                       const char *ctype,
                       const char *file,
                       const char *zfile,
                       ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COMPRESS_OUT_LEVEL, int level,

Ця команда стискає вміст файла "файл" і записує його до локального файла "z-файл".

Вибір програми для стискання керується параметром "тип_стискання". Поточні варіанти значень: "compress", "gzip", "bzip2", "xz" або "lzop". У деяких збірках libguestfs передбачено підтримку не усіх типів стискання. Якщо підтримки типу стискання не передбачено, буде виведено повідомлення про помилку, яке міститиме рядок «not supported».

Необов'язковий параметр "рівень" керує рівнем стискання. Значення і типові параметри залежать від використаної програми для стискання.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.13.15)

guestfs_compress_out_va

 int
 guestfs_compress_out_va (guestfs_h *g,
                          const char *ctype,
                          const char *file,
                          const char *zfile,
                          va_list args);

Це «варіант з va_list» "guestfs_compress_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_compress_out_argv

 int
 guestfs_compress_out_argv (guestfs_h *g,
                            const char *ctype,
                            const char *file,
                            const char *zfile,
                            const struct guestfs_compress_out_argv *optargs);

Це «варіант з argv» "guestfs_compress_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_config

 int
 guestfs_config (guestfs_h *g,
                 const char *hvparam,
                 const char *hvvalue);

Цією командою можна скористатися для додавання довільних параметрів гіпервізору у формі -параметр значення. Насправді, параметр не є зовсім довільним — ми не даємо вам встановлювати певні параметри, які суперечать параметрам, які ви використовуєте.

Першим символом рядка "параметр-г-в" має бути "-" (дефіс).

"hvvalue" може дорівнювати NULL.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_copy_attributes

 int
 guestfs_copy_attributes (guestfs_h *g,
                          const char *src,
                          const char *dest,
                          ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COPY_ATTRIBUTES_ALL, int all,
 GUESTFS_COPY_ATTRIBUTES_MODE, int mode,
 GUESTFS_COPY_ATTRIBUTES_XATTRIBUTES, int xattributes,
 GUESTFS_COPY_ATTRIBUTES_OWNERSHIP, int ownership,

Копіювати атрибути шляху (який може вказувати на файл або каталог) до іншого шляху.

Типово, атрибут "не" копіюється, отже, переконайтеся, що щось вказано (або вкажіть "all", щоб скопіювати усі).

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

"mode"
Копіювати частину режиму файла з запису "джерело" до запису "призначення". Скопіювати можна лише права доступу UNIX і липкі біти, setuid або setgid.
"xattributes"
Копіювати розширені атрибути Linux (xattrs) з запису "джерело" до запису "призначення". Цей прапорець не виконує ніяких дій, якщо можливість linuxxattrs недоступна (див. "guestfs_feature_available").
"ownership"
Копіювати uid власника і gid групи з запису "джерело" до запису "призначення".
"all"
Копіювати усі атрибути із запису "джерело" до запису "призначення". Вмикання цього прапорця вмикає усі інші прапорці, якщо їх ще не було вказано.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.25.21)

guestfs_copy_attributes_va

 int
 guestfs_copy_attributes_va (guestfs_h *g,
                             const char *src,
                             const char *dest,
                             va_list args);

Це «варіант з va_list» "guestfs_copy_attributes".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_attributes_argv

 int
 guestfs_copy_attributes_argv (guestfs_h *g,
                               const char *src,
                               const char *dest,
                               const struct guestfs_copy_attributes_argv *optargs);

Це «варіант з argv» "guestfs_copy_attributes".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_device_to_device

 int
 guestfs_copy_device_to_device (guestfs_h *g,
                                const char *src,
                                const char *dest,
                                ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COPY_DEVICE_TO_DEVICE_SRCOFFSET, int64_t srcoffset,
 GUESTFS_COPY_DEVICE_TO_DEVICE_DESTOFFSET, int64_t destoffset,
 GUESTFS_COPY_DEVICE_TO_DEVICE_SIZE, int64_t size,
 GUESTFS_COPY_DEVICE_TO_DEVICE_SPARSE, int sparse,
 GUESTFS_COPY_DEVICE_TO_DEVICE_APPEND, int append,

Чотири виклики — "guestfs_copy_device_to_device", "guestfs_copy_device_to_file", "guestfs_copy_file_to_device" та "guestfs_copy_file_to_file" — надають вам змогу копіювати дані джерела (пристрою або файла) до призначення (пристрою або файла).

Можливе створення часткових копій, оскільки ви можете додатково вказати зміщення у джерелі, зміщення у призначенні і розмір копії. Усі ці значення слід вказувати у байтах. Якщо значення не вказано, обидва зміщення вважатимуться нульовими, а розмір копії вважатиметься якомога більшим, аж доки під час копіювання не буде досягнуто кінця джерела.

Джерело і призначення можуть бути одним і тим самим об'єктом. Втім, області перекриття може бути скопійовано неправильно.

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

Якщо призначенням є файл і не встановлено прапорець "append", файл призначення буде обрізано. Якщо встановлено прапорець "append", копію буде дописано до початкового файла призначення. У поточній версії прапорець "append" не можна встановлювати для пристроїв.

Якщо значенням прапорця "sparse" є true, виклик уникатиме запису блоку, які містять лише нулі, що має допомогти у певних ситуаціях, коли резервний диск є обмеженим у ресурсах. Зауважте, що якщо призначення ще не занулено, використання цього параметра призведе до некоректних результатів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.13.25)

guestfs_copy_device_to_device_va

 int
 guestfs_copy_device_to_device_va (guestfs_h *g,
                                   const char *src,
                                   const char *dest,
                                   va_list args);

Це «варіант з va_list» "guestfs_copy_device_to_device".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_device_to_device_argv

 int
 guestfs_copy_device_to_device_argv (guestfs_h *g,
                                     const char *src,
                                     const char *dest,
                                     const struct guestfs_copy_device_to_device_argv *optargs);

Це «варіант з argv» "guestfs_copy_device_to_device".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_device_to_file

 int
 guestfs_copy_device_to_file (guestfs_h *g,
                              const char *src,
                              const char *dest,
                              ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COPY_DEVICE_TO_FILE_SRCOFFSET, int64_t srcoffset,
 GUESTFS_COPY_DEVICE_TO_FILE_DESTOFFSET, int64_t destoffset,
 GUESTFS_COPY_DEVICE_TO_FILE_SIZE, int64_t size,
 GUESTFS_COPY_DEVICE_TO_FILE_SPARSE, int sparse,
 GUESTFS_COPY_DEVICE_TO_FILE_APPEND, int append,

Див. "guestfs_copy_device_to_device", щоб ознайомитися із загальним описом цього виклику.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.13.25)

guestfs_copy_device_to_file_va

 int
 guestfs_copy_device_to_file_va (guestfs_h *g,
                                 const char *src,
                                 const char *dest,
                                 va_list args);

Це «варіант з va_list» "guestfs_copy_device_to_file".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_device_to_file_argv

 int
 guestfs_copy_device_to_file_argv (guestfs_h *g,
                                   const char *src,
                                   const char *dest,
                                   const struct guestfs_copy_device_to_file_argv *optargs);

Це «варіант з argv» "guestfs_copy_device_to_file".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_file_to_device

 int
 guestfs_copy_file_to_device (guestfs_h *g,
                              const char *src,
                              const char *dest,
                              ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COPY_FILE_TO_DEVICE_SRCOFFSET, int64_t srcoffset,
 GUESTFS_COPY_FILE_TO_DEVICE_DESTOFFSET, int64_t destoffset,
 GUESTFS_COPY_FILE_TO_DEVICE_SIZE, int64_t size,
 GUESTFS_COPY_FILE_TO_DEVICE_SPARSE, int sparse,
 GUESTFS_COPY_FILE_TO_DEVICE_APPEND, int append,

Див. "guestfs_copy_device_to_device", щоб ознайомитися із загальним описом цього виклику.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.13.25)

guestfs_copy_file_to_device_va

 int
 guestfs_copy_file_to_device_va (guestfs_h *g,
                                 const char *src,
                                 const char *dest,
                                 va_list args);

Це «варіант з va_list» "guestfs_copy_file_to_device".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_file_to_device_argv

 int
 guestfs_copy_file_to_device_argv (guestfs_h *g,
                                   const char *src,
                                   const char *dest,
                                   const struct guestfs_copy_file_to_device_argv *optargs);

Це «варіант з argv» "guestfs_copy_file_to_device".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_file_to_file

 int
 guestfs_copy_file_to_file (guestfs_h *g,
                            const char *src,
                            const char *dest,
                            ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_COPY_FILE_TO_FILE_SRCOFFSET, int64_t srcoffset,
 GUESTFS_COPY_FILE_TO_FILE_DESTOFFSET, int64_t destoffset,
 GUESTFS_COPY_FILE_TO_FILE_SIZE, int64_t size,
 GUESTFS_COPY_FILE_TO_FILE_SPARSE, int sparse,
 GUESTFS_COPY_FILE_TO_FILE_APPEND, int append,

Див. "guestfs_copy_device_to_device", щоб ознайомитися із загальним описом цього виклику.

Це не функція для копіювання файлів. Цю функцію призначено для копіювання блоків у наявних файлах. Загальними функціями для копіювання та пересування файлів є функції "guestfs_cp", "guestfs_cp-a" та "guestfs_mv".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.13.25)

guestfs_copy_file_to_file_va

 int
 guestfs_copy_file_to_file_va (guestfs_h *g,
                               const char *src,
                               const char *dest,
                               va_list args);

Це «варіант з va_list» "guestfs_copy_file_to_file".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_file_to_file_argv

 int
 guestfs_copy_file_to_file_argv (guestfs_h *g,
                                 const char *src,
                                 const char *dest,
                                 const struct guestfs_copy_file_to_file_argv *optargs);

Це «варіант з argv» "guestfs_copy_file_to_file".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_copy_in

 int
 guestfs_copy_in (guestfs_h *g,
                  const char *localpath,
                  const char *remotedir);

"guestfs_copy_in" копіює локальні файли або каталоги рекурсивно до образу диска, розташувавши його у каталозі із назвою "remotedir" (який має існувати).

Не можна використовувати символи-замінники.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.29.24)

guestfs_copy_out

 int
 guestfs_copy_out (guestfs_h *g,
                   const char *remotepath,
                   const char *localdir);

"guestfs_copy_out" копіює віддалені файли або каталоги рекурсивно з образу диска, розташовуючи їх на диску основної системи у каталозі із назвою /локальний_каталог (цей каталог має існувати). Ця метакоманда guestfish перетворюється у послідовність "download", "tar-out" та інших команд, якщо це потрібно.

Щоб отримати поточний каталог, скористайтеся ".", ось так:

 C<guestfs_copy_out> /home .

Не можна використовувати символи-замінники.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.29.24)

guestfs_copy_size

 int
 guestfs_copy_size (guestfs_h *g,
                    const char *src,
                    const char *dest,
                    int64_t size);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_copy_device_to_device".

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

Ця команда копіює точно "розмір" байтів з одного пристрою або файла джерела "джерело" до іншого пристрою або файла "призначення".

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.0.87)

guestfs_cp

 int
 guestfs_cp (guestfs_h *g,
             const char *src,
             const char *dest);

Копіює файл з "джерело" до "призначення", де "призначення" — або назва файла призначення або назва каталогу призначення.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.18)

guestfs_cp_a

 int
 guestfs_cp_a (guestfs_h *g,
               const char *src,
               const char *dest);

Копіює файл або каталог з "джерела" до "призначення" рекурсивно з використанням команди "cp -a".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.18)

guestfs_cp_r

 int
 guestfs_cp_r (guestfs_h *g,
               const char *src,
               const char *dest);

Копіює файл або каталог з "джерела" до "призначення" рекурсивно з використанням команди "cp -rP".

Більшості користувачів слід використовувати "guestfs_cp_a" замість цієї команди. Ця команда корисна, якщо вам не хочеться зберігати права доступу, оскільки у файловій системі призначення їх не передбачено (в основному при записів до файлових систем FAT DOS).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.21.38)

guestfs_cpio_out

 int
 guestfs_cpio_out (guestfs_h *g,
                   const char *directory,
                   const char *cpiofile,
                   ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_CPIO_OUT_FORMAT, const char *format,

Ця команда пакує вміст каталогу каталог отримує його до локального файла "файл cpio".

Передбачено додатковий параметр "format", яким можна скористатися для вибору формату. У поточній версії передбачено підтримку лише таких форматів:

"newc"
Новий портативний формат (SVR4). Цей формат вважається сумісним із cpio-подібним форматом, який використовується ядром Linux для initramfs.

Цей формат є типовим.

"crc"
Новий портативний формат (SVR4) із контрольною сумою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.27.9)

guestfs_cpio_out_va

 int
 guestfs_cpio_out_va (guestfs_h *g,
                      const char *directory,
                      const char *cpiofile,
                      va_list args);

Це «варіант з va_list» "guestfs_cpio_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_cpio_out_argv

 int
 guestfs_cpio_out_argv (guestfs_h *g,
                        const char *directory,
                        const char *cpiofile,
                        const struct guestfs_cpio_out_argv *optargs);

Це «варіант з argv» "guestfs_cpio_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_dd

 int
 guestfs_dd (guestfs_h *g,
             const char *src,
             const char *dest);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_copy_device_to_device".

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

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

Якщо призначенням є пристрій, він має бути таким самим або більшим за розміром за файл або пристрій джерела, інакше копіювання виконати не вдасться. Ця команда не може виконувати часткове копіювання (див. "guestfs_copy_device_to_device").

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.80)

guestfs_device_index

 int
 guestfs_device_index (guestfs_h *g,
                       const char *device);

Ця функція приймає назву пристрою (наприклад, «/dev/sdb») і повертає індекс пристрою у списку пристроїв.

Нумерація індексів починається з 0. Іменований пристрій має існувати, наприклад, як рядок, повернутий з "guestfs_list_devices".

Див. також "guestfs_list_devices", "guestfs_part_to_dev".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.19.7)

guestfs_df

 char *
 guestfs_df (guestfs_h *g);

Ця команда запускає програму "df" для отримання даних щодо використаного місця на диску.

Ця команда здебільшого корисна для інтерактивних сеансів. Її не призначено для випадків, коли ви намагаєтеся обробити виведений командою рядок. Скористайтеся командою "guestfs_statvfs", якщо віддаєте команди з інших програм.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.54)

guestfs_df_h

 char *
 guestfs_df_h (guestfs_h *g);

Ця команда запускає програму "df -h" для отримання даних щодо використаного місця на диску у зручному для читання форматі.

Ця команда здебільшого корисна для інтерактивних сеансів. Її не призначено для випадків, коли ви намагаєтеся обробити виведений командою рядок. Скористайтеся командою "guestfs_statvfs", якщо віддаєте команди з інших програм.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.54)

guestfs_disk_create

 int
 guestfs_disk_create (guestfs_h *g,
                      const char *filename,
                      const char *format,
                      int64_t size,
                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_DISK_CREATE_BACKINGFILE, const char *backingfile,
 GUESTFS_DISK_CREATE_BACKINGFORMAT, const char *backingformat,
 GUESTFS_DISK_CREATE_PREALLOCATION, const char *preallocation,
 GUESTFS_DISK_CREATE_COMPAT, const char *compat,
 GUESTFS_DISK_CREATE_CLUSTERSIZE, int clustersize,

Створити порожній образ диска із назвою назва_файла (файл основної системи) із форматом "формат" (зазвичай, "raw" або "qcow2"). Розмір визначається параметром "розмір" у байтах.

Якщо команда використовується із необов'язковим параметром "backingfile", знімок створюється на основі файла резервної копії. У цьому випадку "розмір" має бути передано як "-1". Розмір знімка є таким самим, як і розмір файла резервної копії, який визначається автоматично. Вам також варто передати "backingformat" для опису формату "backingfile".

Якщо назва_файла відповідає блоковому пристрою, пристрій буде форматовано. Параметр "розмір" ігнорується, оскільки блокові пристрої мають незмінний встановлений розмір.

Іншими необов’язковими параметрами є:

"preallocation"
Якщо форматом є "raw", цей параметр може мати значення "off" (або "sparse") або "full" для створення розрідженого або повністю розподіленого файла, відповідно. Типовим є значення "off".

Якщо форматом є "qcow2", цей параметр може мати значення "off" (або "sparse"), "metadata" або "full". Попереднє отримання місця під метадані є швидшим, коли виконується багато записів, але використовує більше місця. Типовим є значення "off".

"compat"
Лише "qcow2": передайте рядок 1.1, щоб скористатися розширеним форматом qcow2, підтримку якого передбачено у qemu ≥ 1.1.
"clustersize"
Лише "qcow2": змінити розмір кластера qcow2. Типовим є 65536 (байтів). Встановлювати можна будь-яке значення, яке є степенем двійки від 512 до 2097152.

Зауважте, що цей виклик не додає новий диск до дескриптора. Вам доведеться викликати "guestfs_add_drive_opts" окремо.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.25.31)

guestfs_disk_create_va

 int
 guestfs_disk_create_va (guestfs_h *g,
                         const char *filename,
                         const char *format,
                         int64_t size,
                         va_list args);

Це «варіант з va_list» "guestfs_disk_create".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_disk_create_argv

 int
 guestfs_disk_create_argv (guestfs_h *g,
                           const char *filename,
                           const char *format,
                           int64_t size,
                           const struct guestfs_disk_create_argv *optargs);

Це «варіант з argv» "guestfs_disk_create".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_disk_format

 char *
 guestfs_disk_format (guestfs_h *g,
                      const char *filename);

Визначити і повернути формат образу диска із назвою назва_файла. Значенням назва_файла може бути також пристрій основної системи. Якщо формат образу диска визначити не вдасться, буде повернуто рядок "unknown".

Зауважте, що визначення формату диска може бути небезпечною дією за певних обставин. Див. "CVE-2010-3851".

Див. також: "ФОРМАТИ ОБРАЗІВ ДИСКІВ"

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.38)

guestfs_disk_has_backing_file

 int
 guestfs_disk_has_backing_file (guestfs_h *g,
                                const char *filename);

Визначає і повідомляє, чи є у образу диска назва_файла файл резервної копії.

Зауважте, що визначення можливостей диска може, за певних обставин, зашкодити захисту системи. Див. "CVE-2010-3851".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.19.39)

guestfs_disk_virtual_size

 int64_t
 guestfs_disk_virtual_size (guestfs_h *g,
                            const char *filename);

Визначає і повідомляє віртуальний розмір у байтах образу диска із назвою назва_файла.

Зауважте, що визначення можливостей диска може, за певних обставин, зашкодити захисту системи. Див. "CVE-2010-3851".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.19.39)

guestfs_dmesg

 char *
 guestfs_dmesg (guestfs_h *g);

Повертає повідомлення ядра (виведення команди "dmesg") гостьової системи. Іноді корисно для розширеної діагностики проблеми.

Іншим способом отримання тих самих даних є вмикання докладних повідомлень за допомогою "guestfs_set_verbose" або встановленням змінної середовища "LIBGUESTFS_DEBUG=1" перед запуском програми.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.18)

guestfs_download

 int
 guestfs_download (guestfs_h *g,
                   const char *remotefilename,
                   const char *filename);

Отримати файл назва_віддаленого_файла і зберегти його як назва_файла на локальній машині.

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

Див. також "guestfs_upload", "guestfs_cat".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.0.2)

guestfs_download_blocks

 int
 guestfs_download_blocks (guestfs_h *g,
                          const char *device,
                          int64_t start,
                          int64_t stop,
                          const char *filename,
                          ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_DOWNLOAD_BLOCKS_UNALLOCATED, int unallocated,

Отримати модулі даних з адреси початок до адреси кінець з розділу диска (наприклад /dev/sda1) і зберегти їх до файла назва_файла у локальній машині.

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

Розмір модуля даних залежить від реалізації файлової системи. На файлових системах NTFS модулі даних називаються кластерами, а у ExtX вони називаються фрагментами.

Якщо для необов'язкового прапорця "unallocated" встановлено значення true (типовим значенням є false), буде видобуто лише нерозміщені блоки. Це корисно для виявлення прихованих даних або отримання вилучених файлів, модулі даних яких ще не перезаписано.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

Працездатність цієї функції залежить від можливості "sleuthkit". Див. також "guestfs_feature_available".

(Додано у 1.33.45)

guestfs_download_blocks_va

 int
 guestfs_download_blocks_va (guestfs_h *g,
                             const char *device,
                             int64_t start,
                             int64_t stop,
                             const char *filename,
                             va_list args);

Це «варіант з va_list» "guestfs_download_blocks".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_download_blocks_argv

 int
 guestfs_download_blocks_argv (guestfs_h *g,
                               const char *device,
                               int64_t start,
                               int64_t stop,
                               const char *filename,
                               const struct guestfs_download_blocks_argv *optargs);

Це «варіант з argv» "guestfs_download_blocks".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_download_inode

 int
 guestfs_download_inode (guestfs_h *g,
                         const char *device,
                         int64_t inode,
                         const char *filename);

Отримати файл, заданий за допомогою inode, з розділу диска (наприклад /dev/sda1) і зберегти його із назвою назва_файла у локальній системі.

Для виконання цієї команди диск не обов'язково має бути змонтовано.

Команда здатна отримувати вилучені файли та файли недоступні системі.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

Працездатність цієї функції залежить від можливості "sleuthkit". Див. також "guestfs_feature_available".

(Додано у 1.33.14)

guestfs_download_offset

 int
 guestfs_download_offset (guestfs_h *g,
                          const char *remotefilename,
                          const char *filename,
                          int64_t offset,
                          int64_t size);

Отримати файл назва_віддаленого_файла і зберегти його як назва_файла на локальній машині.

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

Зауважте, що немає обмеження на обсяг даних, які може бути отримано за допомогою цього виклику, на відміну від команди "guestfs_pread", і цей виклик завжди читає дані до кінця, якщо не станеться помилки.

Див. також "guestfs_download", "guestfs_pread".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.5.17)

guestfs_drop_caches

 int
 guestfs_drop_caches (guestfs_h *g,
                      int whattodrop);

Це наказує ядру гостьової системи скинути кеш сторінок і/або кеші d-записів та inode. Параметр "що_скидати" вказує ядру, що саме слід скидати, див. http://linux-mm.org/Drop_Caches

Встановлення для "що_скидати" значення 3 призведе до скидання усього.

Це автоматично викликає sync(2) перед операцією, отже вивільняє максимальний обсяг пам'яті гостьової системи.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.18)

guestfs_du

 int64_t
 guestfs_du (guestfs_h *g,
             const char *path);

Ця команда викликає команду "du -s" для оцінки використання місця на диску для шляху "шлях".

"шлях" може бути адресою файла або каталогу. Якщо "шлях" є каталогом, оцінка включатиме дані для самого каталогу та усіх його підкаталогів (рекурсивно).

Результатом є оцінка розміру у кілобайтах (тобто у одиницях, які відповідають 1024 байтам).

У разі помилки цією функцією буде повернуто -1.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.0.54)

guestfs_e2fsck

 int
 guestfs_e2fsck (guestfs_h *g,
                 const char *device,
                 ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_E2FSCK_CORRECT, int correct,
 GUESTFS_E2FSCK_FORCEALL, int forceall,

Ця команда виконує перевірку файлової системи ext2/ext3 на пристрої "пристрій". Вона може приймати такі необов'язкові аргументи:

"correct"
Автоматично виправляти файлову систему. Використання цього параметра призведе до того, що e2fsck автоматично виправлятиме усі проблеми файлової системи, які може бути безпечно виправлено без втручання людини.

Цей параметр не можна використовувати одночасно із параметром "forceall".

"forceall"
Припускати відповідь «так» на усі питання; уможливлює неінтерактивне використання e2fsck.

Цей параметр не можна використовувати одночасно із параметром "correct".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.15.17)

guestfs_e2fsck_va

 int
 guestfs_e2fsck_va (guestfs_h *g,
                    const char *device,
                    va_list args);

Це «варіант з va_list» "guestfs_e2fsck".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_e2fsck_argv

 int
 guestfs_e2fsck_argv (guestfs_h *g,
                      const char *device,
                      const struct guestfs_e2fsck_argv *optargs);

Це «варіант з argv» "guestfs_e2fsck".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_e2fsck_f

 int
 guestfs_e2fsck_f (guestfs_h *g,
                   const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_e2fsck".

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

Ця команда виконує команду "e2fsck -p -f пристрій", тобто запускає засіб перевірки файлової системи ext2/ext3 для пристрою "пристрій" у неінтерактивному режимі (-p), навіть якщо файлову систему позначено як безпомилкову (-f).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.29)

guestfs_echo_daemon

 char *
 guestfs_echo_daemon (guestfs_h *g,
                      char *const *words);

Ця команда з'єднує список слів "слова", у якому окремі слова розділено пробілами, і повертає рядок-результат.

Ви можете скористатися цією командою для перевірки з'єднання із фоновою службою.

Див. також "guestfs_ping_daemon".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.69)

guestfs_egrep

 char **
 guestfs_egrep (guestfs_h *g,
                const char *regex,
                const char *path);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_grep".

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

Викликає зовнішню програму "egrep" і повертає рядки-відповідники.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.66)

guestfs_egrepi

 char **
 guestfs_egrepi (guestfs_h *g,
                 const char *regex,
                 const char *path);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_grep".

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

Викликає зовнішню програму "egrep -i" і повертає рядки-відповідники.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.66)

guestfs_equal

 int
 guestfs_equal (guestfs_h *g,
                const char *file1,
                const char *file2);

Порівнює два файли, файл1 і файл2 і повертає true, якщо їхній вміст повністю ідентичний; якщо це не так, повертає false.

Для порівнювання використовується зовнішня програма cmp(1).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.18)

guestfs_exists

 int
 guestfs_exists (guestfs_h *g,
                 const char *path);

Ця команда повертає "true" тоді і лише тоді, коли існує файл, каталог (або будь-який інший об'єкт файлової системи) із вказаною назвою "шлях".

Див. також "guestfs_is_file", "guestfs_is_dir", "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_extlinux

 int
 guestfs_extlinux (guestfs_h *g,
                   const char *directory);

Встановлює завантажувач SYSLINUX на пристрій, змонтований до каталогу directory. На відміну від команди "guestfs_syslinux", якій потрібна файлова система FAT, ця команда може бути використана для файлових систем ext2/3/4 та btrfs.

Параметр каталог може бути точкою монтування або каталогом у точці монтування.

Крім того, вам слід позначити розділ як «активний» ("guestfs_part_set_bootable"), і на першому секторі усього диска має бути встановлено MBR (наприклад, за допомогою "guestfs_pwrite_device"). До складу пакунка SYSLINUX включено деякі з відповідних MBR. Щоб дізнатися більше, див. сторінку підручника extlinux(1).

Додатково налаштувати SYSLINUX можна за допомогою файла із назвою extlinux.conf у каталозі файлової системи каталог. Докладніше про це та вміст файла можна дізнатися зі сторінки підручника extlinux(1).

Див. також "guestfs_syslinux".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "extlinux". Див. також "guestfs_feature_available".

(Додано у 1.21.27)

guestfs_f2fs_expand

 int
 guestfs_f2fs_expand (guestfs_h *g,
                      const char *device);

This expands a f2fs filesystem to match the size of the underlying device.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

This function depends on the feature "f2fs". See also "guestfs_feature_available".

(Added in 1.39.3)

guestfs_fallocate

 int
 guestfs_fallocate (guestfs_h *g,
                    const char *path,
                    int len);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_fallocate64".

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

Ця команда отримує місце для файла (заповнене нульовими байтами) із назвою "шлях" і розміром "довжина" байтів. Якщо файл вже існує, його буде перезаписано.

Не слід плутати цю команду із специфічною для guestfish командою "alloc", яка отримує місце для файла у основній системі і долучає його як пристрій.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.66)

guestfs_fallocate64

 int
 guestfs_fallocate64 (guestfs_h *g,
                      const char *path,
                      int64_t len);

Ця команда отримує місце для файла (заповнене нульовими байтами) із назвою "шлях" і розміром "довжина" байтів. Якщо файл вже існує, його буде перезаписано.

Зауважте, що ця команда отримує блоки на диску для файла. Щоб створити розріджений файл, скористайтеся "guestfs_truncate_size".

Застаріла команда "guestfs_fallocate" виконує те саме завдання, але через недогляд функція надає змогу використовувати лише 30-бітові довжини, що обмежує максимальний можливий розмір створених за допомогою цієї команди файлів 1 ГБ.

Не слід плутати цю команду із специфічними для guestfish командами "alloc" та "sparse", які створюють файл у основній системі і долучають його як пристрій.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.17)

guestfs_feature_available

 int
 guestfs_feature_available (guestfs_h *g,
                            char *const *groups);

Те саме, що і "guestfs_available", але повертає простий результат у булевій формі true або false замість виклику виключення, якщо можливості не буде виявлено. Із іншими аспектами документації можна ознайомитися у розділі "guestfs_available".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.21.26)

guestfs_fgrep

 char **
 guestfs_fgrep (guestfs_h *g,
                const char *pattern,
                const char *path);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_grep".

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

Викликає зовнішню програму "fgrep" і повертає рядки-відповідники.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.66)

guestfs_fgrepi

 char **
 guestfs_fgrepi (guestfs_h *g,
                 const char *pattern,
                 const char *path);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_grep".

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

Викликає зовнішню програму "fgrep -i" і повертає рядки-відповідники.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.66)

guestfs_file

 char *
 guestfs_file (guestfs_h *g,
               const char *path);

Для визначення типу або вмісту файла використовується стандартна програма file(1).

Цей виклик також прозоро обробляє різні типи стиснутих файлів.

Команда, яку буде виконано, — це "file -zb шлях". Зокрема, слід зауважити, що до виведених даних не буде додано назву файла (параметр -b).

Виведені дані залежать від того, що виведе підлегла команда file(1), їх може бути змінено у майбутньому у спосіб, який залишається поза нашим контролем. Іншими словами, ABI щодо виведених даних не гарантовано.

Див. також: file(1), "guestfs_vfs_type", "guestfs_lstat", "guestfs_is_file", "guestfs_is_blockdev" (тощо), "guestfs_is_zero".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.9.1)

guestfs_file_architecture

 char *
 guestfs_file_architecture (guestfs_h *g,
                            const char *filename);

Визначає архітектуру виконуваного файла назва_файла і повертає її значення, якщо воно визначене у програмі.

Архітектурами, визначеними у поточній версії є:

"aarch64"
64-бітовий ARM.
"arm"
32-бітовий ARM.
"i386"
Цей рядок буде повернуто для всіх виконуваних файлів для 32-бітових процесорів i386, i486, i586, i686, незалежно від точного значення версії процесора, визначеного для виконуваного файла.
"ia64"
Intel Itanium.
"ppc"
32-бітовий Power PC.
"ppc64"
64-бітовий Power PC (зворотний порядок байтів).
"ppc64le"
64-бітовий Power PC (прямий порядок байтів).
"riscv32"
"riscv64"
"riscv128"
32-, 64- і 128- бітові різновиди RISC-V.
"s390"
31-бітовий IBM S/390.
"s390x"
64-бітовий IBM S/390.
"sparc"
32-бітовий SPARC.
"sparc64"
64-бітовий SPARC V9 або новіша версія.
"x86_64"
64-бітовий x86-64.

У майбутніх версіях Libguestfs може повертати і інші рядки назв архітектур.

Функція працює принаймні для таких типів файлів:

  • багатьох типів виконуваних файлів Un*x та Linux
  • багатьох типів бібліотек спільного використання Un*x та Linux
  • виконуваних файлів Windows Win32 та Win64
  • DLL Windows Win32 і Win64

    виконувані файли та DLL Win32 повертають "i386".

    виконувані файли та DLL Win64 повертають "x86_64".

  • модулів ядра Linux
  • образів нового стилю initrd Linux
  • деяких ядер vmlinuz Linux для архітектур, відмінних від x86

Що не можна зробити у поточній версії:

  • статичні бібліотеки (libfoo.a)
  • initrd Linux у старому стилі, зі стиснутою файловою системою ext2 (RHEL 3)
  • ядра vmlinuz Linux x86

    Образи vmlinuz архітектури x86 (формат bzImage) складаються із суміші 16-бітового, 32-бітового і стисненого коду. Їх дуже важко розпаковувати. Якщо ви хочете визначити архітектуру ядра, скористайтеся архітектурою пов'язаного initrd або модулів ядра.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_filesize

 int64_t
 guestfs_filesize (guestfs_h *g,
                   const char *file);

Ця команда повертає розмір файла файл у байтах.

Щоб отримати інші статистичні дані щодо файла, скористайтеся "guestfs_stat", "guestfs_lstat", "guestfs_is_dir", "guestfs_is_file" тощо. Щоб отримати розміри блокових пристроїв, скористайтеся "guestfs_blockdev_getsize64".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.0.82)

guestfs_filesystem_available

 int
 guestfs_filesystem_available (guestfs_h *g,
                               const char *filesystem);

Перевірити, чи передбачено у libguestfs підтримку вказаної за назвою файлової системи. Аргумент "файлова_система" є назвою файлової системи, наприклад, "ext3".

Перед використанням цієї команди вам слід викликати "guestfs_launch".

Головним чином корисне для перевірки того, що підтримки не передбачено. Те, що команда повертає true, ще не означає, що певну файлову систему може бути створено чи змонтовано, оскільки помилки можуть траплятися через інші причини, зокрема невідповідність версії файлової системи, несумісність можливостей або недоступність належного засобу mkfs.<файлова_система>.

Див. також "guestfs_available", "guestfs_feature_available", "AVAILABILITY".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.19.5)

guestfs_filesystem_walk

 struct guestfs_tsk_dirent_list *
 guestfs_filesystem_walk (guestfs_h *g,
                          const char *device);

Пройтися внутрішньою структурою розділу диска (наприклад /dev/sda1) з метою визначення і повернення списку усіх файлів та каталогів, які на ньому зберігаються.

Для виконання цієї команди монтування розділу диска не є обов'язковим.

Буде повернуто усі записи у файловій системі. Ця функція може виводити список вилучених або недоступних файлів. Записи не упорядковуються.

Структура "tsk_dirent" містить вказані нижче поля.

"tsk_inode"
Номер вузла у файловій системі. Може дорівнювати 0, якщо вузол було вилучено.
"tsk_type"
Базові дані щодо типу файлів. Докладний список значень наведено нижче.
"tsk_size"
Розмір файла у байтах. Може мати значення "-1", якщо вузол файла було вилучено.
"tsk_name"
Шлях до файла відносно його каталогу.
"tsk_flags"
Бітове поле, яке містить додаткові дані щодо запису. Є результатом застосування логічного АБО до таких значень:
0x0001
Якщо встановлено значення 1, файл розміщено у файловій системі, і файл є видимим. Якщо ні, файл було вилучено. За певних обставин функцією "download_inode" можна скористатися для відновлення вилучених файлів.
0x0002
У деяких файлових системах, зокрема NTFS та Ext2 і новіших, назву файла відокремлено від структури метаданих. Цей біт встановлюється у значення 1, якщо назва файла перебуває у нерозміщеному стані, а структура даних — у розміщеному. Це, загалом кажучи, неявно вказує на те, що метадані було повторно використано для нового файла. Тому дані щодо типу файла, розміру файла, часових позначок, кількості посилань та призначення символічного посилання можуть не відповідати даним початкового вилученого запису.
0x0004
Цей біт встановлюється у значення 1, якщо файл було стиснуто з використанням вбудованої підтримки стискання у файловій системі (NTFS). Програмний інтерфейс не може визначити застосований рівень стискання.
"tsk_atime_sec"
"tsk_atime_nsec"
"tsk_mtime_sec"
"tsk_mtime_nsec"
"tsk_ctime_sec"
"tsk_ctime_nsec"
"tsk_crtime_sec"
"tsk_crtime_nsec"
Час доступу, внесення змін, останньої зміни стану та часу створення, відповідно, у форматі Unix, визначений у секундах і наносекундах.
"tsk_nlink"
Кількість назв файлів, які вказують на цей запис.
"tsk_link"
Якщо записом є символічне посилання, у цьому полі міститиметься шлях до файла призначення.

Поле "tsk_type" міститиме один із таких символів:

'b'
Блоковий особливий
'c'
Символьний особливий
'd'
Каталог
'f'
FIFO (іменований канал)
'l'
Символічне посилання
'r'
Звичайний файл
's'
Сокет
'h'
Тіньовий inode (Solaris)
'w'
Витерти inode (BSD)
'u'
Невідомий тип файла

Ця функція повертає "struct guestfs_tsk_dirent_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_tsk_dirent_list".

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

Працездатність цієї функції залежить від можливості "libtsk". Див. також "guestfs_feature_available".

(Додано у 1.33.39)

guestfs_fill

 int
 guestfs_fill (guestfs_h *g,
               int c,
               int len,
               const char *path);

Ця команда створює новий файл із назвою "шлях". Спочатку файл буде заповнено вісімковими значеннями до довжини "кількість". Вісімкове значення задається параметром "c", де "c" має бути числом у діапазоні "[0..255]".

Для заповнення файла нульовими байтами (розріджено) набагато ефективнішим є використання "guestfs_truncate_size". Для створення файла, заповненого повторюваними вказаними послідовностями байтів, скористайтеся командою "guestfs_fill_pattern".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.0.79)

guestfs_fill_dir

 int
 guestfs_fill_dir (guestfs_h *g,
                   const char *dir,
                   int nr);

Ця корисна для тестування файлових систем функція створює "число" порожніх файлів у каталозі "каталог" із назвами від 00000000 до "число-1" (тобто кожна назва файла складається з 8 цифр, які доповнено нулями).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.19.32)

guestfs_fill_pattern

 int
 guestfs_fill_pattern (guestfs_h *g,
                       const char *pattern,
                       int len,
                       const char *path);

Ця функція подібна до "guestfs_fill", але створює файл довжини "len", заповнений повторюваними наборами байтів "pattern". Якщо потрібно, взірець буде обрізано так, щоб довжина файла складала точно "len" байтів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.3.12)

guestfs_find

 char **
 guestfs_find (guestfs_h *g,
               const char *directory);

Ця команда виводить список усіх файлів і каталогів, рекурсивно, починаючи з каталогу каталог. В основному, еквівалентна команді оболонки "find каталог -print", але виведені дані буде дещо оброблено. Опис обробки наведено нижче.

Ця команда повертає список рядків без будь-якого префікса. Отже, якщо структура каталогів є такою:

 /tmp/a
 /tmp/b
 /tmp/c/d

повернутий "guestfs_find" /tmp список складатиметься з 4 елементів:

 a
 b
 c
 c/d

Якщо каталог не є каталогом, ця команда повертає помилку.

Список результатів буде впорядковано.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.0.27)

guestfs_find0

 int
 guestfs_find0 (guestfs_h *g,
                const char *directory,
                const char *files);

Ця команда виводить список усіх файлів і каталогів, рекурсивно, починаючи з каталогу каталог, записуючи отриманий список до зовнішнього файла із назвою файли.

Ця команда працює так само, як"guestfs_find", за такими виключеннями:

  • Список результат записується до зовнішнього файла.
  • Записи (назви файлів) у результаті буде відокремлено символами "\0". Див. параметр find(1) -print0.
  • Список результатів не буде впорядковано.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.74)

guestfs_find_inode

 struct guestfs_tsk_dirent_list *
 guestfs_find_inode (guestfs_h *g,
                     const char *device,
                     int64_t inode);

Шукає усі записи, пов'язані із заданим inode.

Для кожного запису буде повернуто структуру "tsk_dirent". Див. "filesystem_walk", щоб дізнатися більше про структури "tsk_dirent".

Ця функція повертає "struct guestfs_tsk_dirent_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_tsk_dirent_list".

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

Працездатність цієї функції залежить від можливості "libtsk". Див. також "guestfs_feature_available".

(Додано у 1.35.6)

guestfs_findfs_label

 char *
 guestfs_findfs_label (guestfs_h *g,
                       const char *label);

Ця команда виконує пошук у файлових системах і повертає ту з них, яка має вказану мітку. Якщо таких систем не буде знайдено, буде повернуто повідомлення про помилку.

Щоб визначити мітку файлової системи, скористайтеся "guestfs_vfs_label".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_findfs_uuid

 char *
 guestfs_findfs_uuid (guestfs_h *g,
                      const char *uuid);

Ця команда виконує пошук у файлових системах і повертає ту з них, яка має вказаний UUID. Якщо таких систем не буде знайдено, буде повернуто повідомлення про помилку.

Щоб визначити UUID файлової системи, скористайтеся "guestfs_vfs_uuid".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_fsck

 int
 guestfs_fsck (guestfs_h *g,
               const char *fstype,
               const char *device);

Виконує перевірку файлової системи (fsck) на пристрої "пристрій", де дані зберігаються у файловій системі типу "тип_файлової_системи".

Повернуте ціле число є станом. Зі списком кодів стану "fsck" можна ознайомитися у документації до fsck(8).

Нотатки:

  • Якщо кодів стану декілька, виводиться їхня сума.
  • Ненульовий повернутий код може означати «успіх», наприклад, якщо помилки у файловій системі було виправлено.
  • Підтримки перевірки або відновлення томів NTFS не передбачено (у linux-ntfs).

Ця команда повністю еквівалентна запуску "fsck -a -t тип_файлової_системи пристрій".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.0.16)

guestfs_fstrim

 int
 guestfs_fstrim (guestfs_h *g,
                 const char *mountpoint,
                 ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_FSTRIM_OFFSET, int64_t offset,
 GUESTFS_FSTRIM_LENGTH, int64_t length,
 GUESTFS_FSTRIM_MINIMUMFREEEXTENT, int64_t minimumfreeextent,

Обрізати вільне місце на файловій системі, змонтованій до точки монтування "точка_монтування". Файлову систему має бути змонтовано для читання і запису.

Вміст файлової системи змінено не буде, але усе вільне місце на ній буде «обрізано», тобто, якщо розглядати пристрій основної системи, повернуто до пристрою, що зробить образ диска розрідженішим і уможливить повторне використання невикористаного простору у файлах qcow2 тощо.

Ця операція потребує підтримки у libguestfs, змонтованій файловій системі, файловій системі основної системи, qemu та ядрі основної системи. Якщо цієї підтримки немає, операція призведе до помилки або навіть виконуватиметься.

Якщо у драйвері віртуальної файлової системи ядра не передбачено обрізання, цей виклик завершиться повідомленням про помилку із номером помилки "ENOTSUP". У поточній версії таке трапляється під час спроб обрізання файлових систем FAT.

Див. також "guestfs_zero_free_space". Це дещо інша операція, яка занулює вільне місце у файловій системі. Ви можете викликати "guestfs_fstrim" замість команди або після команди "guestfs_zero_free_space".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "fstrim". Див. також "guestfs_feature_available".

(Додано у 1.19.6)

guestfs_fstrim_va

 int
 guestfs_fstrim_va (guestfs_h *g,
                    const char *mountpoint,
                    va_list args);

Це «варіант з va_list» "guestfs_fstrim".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_fstrim_argv

 int
 guestfs_fstrim_argv (guestfs_h *g,
                      const char *mountpoint,
                      const struct guestfs_fstrim_argv *optargs);

Це «варіант з argv» "guestfs_fstrim".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_get_append

 const char *
 guestfs_get_append (guestfs_h *g);

Повертає додаткові параметри ядра, які було додано до командного рядка ядра базової системи libguestfs.

Якщо повернуто "NULL", до командного рядка не додавалося параметрів.

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

(Додано у 1.0.26)

guestfs_get_attach_method

 char *
 guestfs_get_attach_method (guestfs_h *g);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_get_backend".

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

Повертає назву поточного модуля.

Див. "guestfs_set_backend" і "МОДУЛЬ".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.9.8)

guestfs_get_autosync

 int
 guestfs_get_autosync (guestfs_h *g);

Отримати значення прапорця автоматичної синхронізації.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_get_backend

 char *
 guestfs_get_backend (guestfs_h *g);

Повертає назву поточного модуля.

Ця властивість дескриптора раніше називалася «метод долучення».

Див. "guestfs_set_backend" і "МОДУЛЬ".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.21.26)

guestfs_get_backend_setting

 char *
 guestfs_get_backend_setting (guestfs_h *g,
                              const char *name);

Знайти рядок параметрів модуля обробки, який або дорівнює "назва", або починається із запису "назва=". Якщо знайдено рядок "назва", буде повернуто рядок "1". Якщо знайдено рядок "назва=", буде повернуто частину рядка після знаку рівності (може бути повернуто порожній рядок).

Якщо відповідного параметра не знайдено, ця функція повертає повідомлення про помилку. У такому випадку для номера помилки (див. "guestfs_last_errno") буде встановлено значення "ESRCH".

Див. "МОДУЛЬ", "ПАРАМЕТРИ МОДУЛЯ".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.27.2)

guestfs_get_backend_settings

 char **
 guestfs_get_backend_settings (guestfs_h *g);

Повертає поточні параметри модуля.

Цей виклик повертає рядки параметрів усіх модулів. Якщо вам потрібен лише якийсь окремий параметр модуля, скористайтеся "guestfs_get_backend_setting".

Див. "МОДУЛЬ", "ПАРАМЕТРИ МОДУЛЯ".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.25.24)

guestfs_get_cachedir

 char *
 guestfs_get_cachedir (guestfs_h *g);

Отримати назву каталогу, який використовується дескриптором для зберігання кешу базової системи.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.58)

guestfs_get_direct

 int
 guestfs_get_direct (guestfs_h *g);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_internal_get_console_socket".

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

Повертає значення прапорця безпосередньої роботи із базовою системою.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.72)

guestfs_get_e2attrs

 char *
 guestfs_get_e2attrs (guestfs_h *g,
                      const char *file);

Ця команда повертає атрибути файла, пов'язані із назвою файл.

Атрибути є пов'язаним зі кожним записом inode набором бітів, який впливає на поведінку файла. Атрибути повертаються як рядок літер (описано нижче). Рядок може бути порожнім, що означає, що ніяких атрибутів для файла не встановлено.

Ці атрибути є, лише якщо файл зберігається у файловій системі ext2/3/4. Використання цієї команди для інших типів файлових систем призведе до помилки.

У поточній версії передбачено такі повернуті символи (атрибути файла):

'A'
Під час доступу до файла його atime не змінюється.
'a'
До файла можна лише дописувати дані.
'c'
Файл стиснено на диску.
'D'
(Лише для каталогів.) Зміни до цього каталогу синхронно записуються на диск.
'd'
Файл не є кандидатом на резервне копіювання (див. dump(8)).
'E'
Файл стиснуто з помилками.
'e'
Файл використовує розширення.
'h'
Файл зберігає свої блоки у одиницях розміру блоків файлової системи замість секторів.
'I'
(Лише каталоги.) У каталозі використовуються хешовані дерева ієрархії.
'i'
Цей файл є незмінним. До нього не можна вносити зміни, його не можна вилучати або перейменовувати. На цей файл не можна створювати посилання.
'j'
Файл входить до журналу даних.
's'
Після вилучення файла усі його блоки буде перезаписано нулями.
'S'
Зміни до цього файла синхронно записуються на диск.
'T'
(Лише каталоги.) Це підказка засобу розміщення у блоках щодо того, що підкаталоги, які містяться у цьому каталозі слід розподілити між блоками. Якщо немає, засіб розподілу за блоками спробує згрупувати підкаталоги.
't'
Для файлів вимикає об'єднання «хвостів». (Не використовується у основних реалізаціях ext2.)
'u'
Коли файл вилучається, його блоки буде збережено, уможливлюючи відновлення вилученого файла.
'X'
Можна отримувати доступ до необробленого вмісту стисненого файла.
'Z'
Для стисненого файла встановлено прапорець незавершеної зміни.

У майбутніх версіях може бути додано інші атрибути файлів. Тип встановлюваних атрибутів залежить від типу файла. Докладний опис можна знайти на сторінці підручника щодо chattr(1).

Див. також "guestfs_set_e2attrs".

Don't confuse these attributes with extended attributes (see "guestfs_getxattr").

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.17.31)

guestfs_get_e2generation

 int64_t
 guestfs_get_e2generation (guestfs_h *g,
                           const char *file);

Повертає генерацію файла ext2 для файла. Генерація (яку зазвичай називають «версією») є числом, пов'язаним із inode. Найпоширенішою областю використання є сервери NFS.

Генерація є характерною особливістю файлової системи ext2/3/4. Використання цієї команди для інших типів файлових систем призведе до помилки.

Див. "guestfs_set_e2generation".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.17.31)

guestfs_get_e2label

 char *
 guestfs_get_e2label (guestfs_h *g,
                      const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_vfs_label".

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

Ця команда повертає мітку файлової системи ext2/3/4 для файлової системи на пристрої "пристрій".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.15)

guestfs_get_e2uuid

 char *
 guestfs_get_e2uuid (guestfs_h *g,
                     const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_vfs_uuid".

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

Ця команда повертає UUID файлової системи ext2/3/4 для файлової системи на пристрої "пристрій".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.15)

guestfs_get_hv

 char *
 guestfs_get_hv (guestfs_h *g);

Повертає назву виконуваного файла поточного гіпервізору.

Це значення ніколи не дорівнює NULL. Якщо його ще не встановлено, команда поверне типову назву виконуваного файла qemu.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.23.17)

guestfs_get_identifier

 const char *
 guestfs_get_identifier (guestfs_h *g);

Отримати ідентифікатор дескриптора. Див. "guestfs_set_identifier".

Ця функція повертає рядок або NULL, якщо сталася помилка. Рядок належить дескриптору гостьової системи, його не слід звільняти.

(Додано у 1.31.14)

guestfs_get_libvirt_requested_credential_challenge

 char *
 guestfs_get_libvirt_requested_credential_challenge (guestfs_h *g,
                                                     int index);

Виконати перевірку (за даними libvirt) реєстраційних даних із номером "індекс". Якщо у libvirt не буде знайдено відповідника для перевірки, команда поверне порожній рядок, "".

Документацію і приклад коду наведено у розділі "РОЗПІЗНАВАННЯ ЗА ДОПОМОГОЮ LIBVIRT".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.52)

guestfs_get_libvirt_requested_credential_defresult

 char *
 guestfs_get_libvirt_requested_credential_defresult (guestfs_h *g,
                                                     int index);

Отримати типовий результат (за даними libvirt) реєстраційних даних із номером "індекс". Якщо у libvirt не буде знайдено відповідника для типового результату, команда поверне порожній рядок, "".

Документацію і приклад коду наведено у розділі "РОЗПІЗНАВАННЯ ЗА ДОПОМОГОЮ LIBVIRT".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.52)

guestfs_get_libvirt_requested_credential_prompt

 char *
 guestfs_get_libvirt_requested_credential_prompt (guestfs_h *g,
                                                  int index);

Отримати запит (за даними libvirt) реєстраційних даних із номером "індекс". Якщо у libvirt не буде знайдено відповідника для запиту, команда поверне порожній рядок, "".

Документацію і приклад коду наведено у розділі "РОЗПІЗНАВАННЯ ЗА ДОПОМОГОЮ LIBVIRT".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.52)

guestfs_get_libvirt_requested_credentials

 char **
 guestfs_get_libvirt_requested_credentials (guestfs_h *g);

Цю команду слід викликати під час зворотного виклику подій для подій типу "GUESTFS_EVENT_LIBVIRT_AUTH".

Повертає список реєстраційних даних, запит на які надсилає libvirt. Можливі значення є підмножиною рядків, які надаються, коли ви викликаєте "guestfs_set_libvirt_supported_credentials".

Документацію і приклад коду наведено у розділі "РОЗПІЗНАВАННЯ ЗА ДОПОМОГОЮ LIBVIRT".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.19.52)

guestfs_get_memsize

 int
 guestfs_get_memsize (guestfs_h *g);

Отримує розмір у мегабайтах отриманої для гіпервізору пам'яті.

Якщо для цього дескриптора не було викликано "guestfs_set_memsize" і якщо не було встановлено "LIBGUESTFS_MEMSIZE", якщо команда повертає типове вкомпільоване значення розміру пам'яті (memsize).

Докладніший опис архітектури libguestfs наведено у підручнику з guestfs(3).

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.0.55)

guestfs_get_network

 int
 guestfs_get_network (guestfs_h *g);

Повертає значення прапорця вмикання мережі.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.4)

guestfs_get_path

 const char *
 guestfs_get_path (guestfs_h *g);

Повертає поточний шлях пошуку.

Це значення ніколи не дорівнює NULL. Якщо його ще не встановлено, команда поверне типовий вміст змінної середовища PATH.

Ця функція повертає рядок або NULL, якщо сталася помилка. Рядок належить дескриптору гостьової системи, його не слід звільняти.

(Додано у 0.3)

guestfs_get_pgroup

 int
 guestfs_get_pgroup (guestfs_h *g);

Повертає прапорець групи процесів.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.11.18)

guestfs_get_pid

 int
 guestfs_get_pid (guestfs_h *g);

Повертає ідентифікатор гіпервізору. Якщо жодного гіпервізору не запущено, команда поверне повідомлення про помилку.

Це внутрішній виклик, який використовується для діагностики і тестування.

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.0.56)

guestfs_get_program

 const char *
 guestfs_get_program (guestfs_h *g);

Отримати назву програми. Див. "guestfs_set_program".

Ця функція повертає рядок або NULL, якщо сталася помилка. Рядок належить дескриптору гостьової системи, його не слід звільняти.

(Додано у 1.21.29)

guestfs_get_qemu

 const char *
 guestfs_get_qemu (guestfs_h *g);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_get_hv".

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

Повертає назву поточного виконуваного файла гіпервізору (типово, qemu).

Це значення ніколи не дорівнює NULL. Якщо його ще не встановлено, команда поверне типову назву виконуваного файла qemu.

Ця функція повертає рядок або NULL, якщо сталася помилка. Рядок належить дескриптору гостьової системи, його не слід звільняти.

(Додано у 1.0.6)

guestfs_get_recovery_proc

 int
 guestfs_get_recovery_proc (guestfs_h *g);

Повертає прапорець вмикання відновлення процесу.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.77)

guestfs_get_selinux

 int
 guestfs_get_selinux (guestfs_h *g);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_selinux_relabel".

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

Повертає поточне значення прапорця selinux, який передається базовій системі під час її завантаження. Див. "guestfs_set_selinux".

Докладніший опис архітектури libguestfs наведено у підручнику з guestfs(3).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.67)

guestfs_get_smp

 int
 guestfs_get_smp (guestfs_h *g);

Повертає кількість віртуальних процесорів, які пов'язано із базовою системою.

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.13.15)

guestfs_get_sockdir

 char *
 guestfs_get_sockdir (guestfs_h *g);

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

Ця команда відрізняється від "guestfs_tmpdir", оскільки для сокетів потрібні коротші шляхи (через обмеження буферів назв файлів для сокетів UNIX), а "guestfs_tmpdir" може бути надто довгим для таких шляхів.

Типове значення керується змінною середовища "XDG_RUNTIME_DIR": якщо встановлено "XDG_RUNTIME_DIR", її значення буде типовим. Якщо ж значення змінної не встановлено, типовим значенням буде /tmp.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.33.8)

guestfs_get_state

 int
 guestfs_get_state (guestfs_h *g);

Повертає поточний стан як непрозоре ціле число. Корисно лише для виведення діагностичних повідомлень та повідомлень про внутрішні помилки.

Докладніший опис станів наведено у підручнику з guestfs(3).

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.0.2)

guestfs_get_tmpdir

 char *
 guestfs_get_tmpdir (guestfs_h *g);

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

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.58)

guestfs_get_trace

 int
 guestfs_get_trace (guestfs_h *g);

Повертає прапорець трасування команди.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.69)

guestfs_get_umask

 int
 guestfs_get_umask (guestfs_h *g);

Повертає поточне значення umask. Типовим значенням umask є 022, якщо інше значення не було встановлено за допомогою виклику "guestfs_umask".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.3.4)

guestfs_get_verbose

 int
 guestfs_get_verbose (guestfs_h *g);

Повертає значення прапорця докладності повідомлень.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_getcon

 char *
 guestfs_getcon (guestfs_h *g);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_selinux_relabel".

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

Ця команда отримує контекст безпеки SELinux фонової служби.

Див. документацію з SELINUX у guestfs(3) та c<guestfs_setcon>

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "selinux". Див. також "guestfs_feature_available".

(Додано у 1.0.67)

guestfs_getxattr

 char *
 guestfs_getxattr (guestfs_h *g,
                   const char *path,
                   const char *name,
                   size_t *size_r);

Отримати окремий розширений атрибут з файла "path" за назвою "name". У цьому виклику виконується перехід за символічними посиланнями. Якщо ви хочете визначити розширений атрибут для самого символічного посилання, скористайтеся "guestfs_lgetxattr".

Зазвичай, краще отримати усі розширені атрибути файла одним викликом "guestfs_getxattrs". Втім, у реалізації деяких файлових систем у Linux є вади, які заважають отримання повного списку атрибутів. Для таких файлових систем (найпоширенішою з яких є ntfs-3g) вам доведеться визначити назви потрібних вам розширених атрибутів і викликати цю функцію.

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

Див. також "guestfs_getxattrs", "guestfs_lgetxattr", attr(5).

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.7.24)

guestfs_getxattrs

 struct guestfs_xattr_list *
 guestfs_getxattrs (guestfs_h *g,
                    const char *path);

Ця команда виводить список розширених атрибутів файла або каталогу "шлях".

На рівні системи, ця команда є поєднанням викликів listxattr(2) і getxattr(2).

Див. також "guestfs_lgetxattrs", attr(5).

Ця функція повертає "struct guestfs_xattr_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_xattr_list".

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.0.59)

guestfs_glob_expand

 char **
 guestfs_glob_expand (guestfs_h *g,
                      const char *pattern);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_glob_expand_opts" без додаткових аргументів.

(Додано у 1.0.50)

guestfs_glob_expand_opts

 char **
 guestfs_glob_expand_opts (guestfs_h *g,
                           const char *pattern,
                           ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_GLOB_EXPAND_OPTS_DIRECTORYSLASH, int directoryslash,

Ця команда виконує пошук усіх назв шляхів, які збігаються із шаблоном "шаблон", відповідно до правил розгортання замінників, які використовуються командною оболонкою.

Якщо шляхів знайдено не буде, команда поверне порожній список (не помилку).

Це обгортка навколо функції C glob(3) із прапорцями "GLOB_MARK|GLOB_BRACE". Див. відповідну сторінку підручника, щоб дізнатися більше.

Аргумент "directoryslash" визначає, чи слід використовувати прапорець "GLOB_MARK" для glob(3). Типовим його значенням є true (використовувати). Його можна явним чином вимкнути, щоб команда не повертала завершальних символів похилої риски у назвах каталогів.

Зауважте, що схожої команди для розгортання назв пристроїв (наприклад /dev/sd*) не існує. З цією метою слід використовувати "guestfs_list_devices", "guestfs_list_partitions" тощо.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.0.50)

guestfs_glob_expand_opts_va

 char **
 guestfs_glob_expand_opts_va (guestfs_h *g,
                              const char *pattern,
                              va_list args);

Це «варіант з va_list» "guestfs_glob_expand_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_glob_expand_opts_argv

 char **
 guestfs_glob_expand_opts_argv (guestfs_h *g,
                                const char *pattern,
                                const struct guestfs_glob_expand_opts_argv *optargs);

Це «варіант з argv» "guestfs_glob_expand_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_grep

 char **
 guestfs_grep (guestfs_h *g,
               const char *regex,
               const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_grep_opts" без додаткових аргументів.

(Додано у 1.0.66)

guestfs_grep_opts

 char **
 guestfs_grep_opts (guestfs_h *g,
                    const char *regex,
                    const char *path,
                    ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_GREP_OPTS_EXTENDED, int extended,
 GUESTFS_GREP_OPTS_FIXED, int fixed,
 GUESTFS_GREP_OPTS_INSENSITIVE, int insensitive,
 GUESTFS_GREP_OPTS_COMPRESSED, int compressed,

Викликає зовнішню програму "grep" і повертає рядки-відповідники.

Необов'язковими прапорцями є такі:

"extended"
Використовувати розширені формальні вирази. Те саме, що використання прапорця -E.
"fixed"
Фіксована відповідність (не використовувати формальні вирази). Те саме, що використання прапорця -F.
"insensitive"
Не враховувати під час пошуку регістр символів. Те саме, що використання прапорця -i.
"compressed"
Використовує "zgrep" замість "grep". Це надає змогу обробляти стиснені compress або gzip дані.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.66)

guestfs_grep_opts_va

 char **
 guestfs_grep_opts_va (guestfs_h *g,
                       const char *regex,
                       const char *path,
                       va_list args);

Це «варіант з va_list» "guestfs_grep_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_grep_opts_argv

 char **
 guestfs_grep_opts_argv (guestfs_h *g,
                         const char *regex,
                         const char *path,
                         const struct guestfs_grep_opts_argv *optargs);

Це «варіант з argv» "guestfs_grep_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_grepi

 char **
 guestfs_grepi (guestfs_h *g,
                const char *regex,
                const char *path);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_grep".

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

Ця функція викликає зовнішню програму "grep -i" і повертає відповідні рядки.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.66)

guestfs_grub_install

 int
 guestfs_grub_install (guestfs_h *g,
                       const char *root,
                       const char *device);

Ця команда встановлює GRUB 1 (Grand Unified Bootloader) на "пристрій" із кореневим каталогом "корінь".

Нотатки:

  • У програмному інтерфейсі поточної версії немає способів встановити завантажувач grub2, який використовується у більшості сучасних гостьових систем Linux. Команду grub2 можна запустити з самої гостьової системи, втім, у такого способу запуску є певні проблеми, описані у розділі "ЗАПУСК КОМАНД".
  • Ця команда використовує "grub-install" з основної системи. На жаль, grub не завжди сумісний сам із собою, отже це працює у доволі вузькому діапазоні ситуацій. Радимо ретельно усе перевіряти для кожної версії гостьової системи.
  • Якщо grub-install повідомляє про помилку «No suitable drive was found in the generated device map.», ймовірно, вам слід спочатку створити файл /boot/grub/device.map, який міститиме прив'язки назв пристроїв grub до назв пристроїв Linux. Зазвичай, достатньо створити файл з таким вмістом:

     (hd0) /dev/vda
        

    замінивши /dev/vda на назву пристрою для встановлення.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "grub". Див. також "guestfs_feature_available".

(Додано у 1.0.17)

guestfs_head

 char **
 guestfs_head (guestfs_h *g,
               const char *path);

Ця команда повертає перші 10 рядків файла як список рядків.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.54)

guestfs_head_n

 char **
 guestfs_head_n (guestfs_h *g,
                 int nrlines,
                 const char *path);

Якщо параметр "к-ть_рядків" є додатним числом, повертає перші "к-ть_рядків" рядків з файла "шлях".

Якщо значенням параметра "к-ть_рядків" є від'ємне число, команда повертає усі рядки з файла "шлях", окрім останніх "к-ть_рядків" рядків.

Якщо значенням параметра "к-ть_рядків" є нуль, команда повертає порожній список.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.54)

guestfs_hexdump

 char *
 guestfs_hexdump (guestfs_h *g,
                  const char *path);

Ця команда виконує "hexdump -C" для вказаного файла "шлях". Результатом виконання є зручний для читання канонічний шістнадцятковий дамп файла.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.22)

guestfs_hivex_close

 int
 guestfs_hivex_close (guestfs_h *g);

Закрити поточний елемент керування hivex.

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_commit

 int
 guestfs_hivex_commit (guestfs_h *g,
                       const char *filename);

Вносить (записує) зміни до рою.

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

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_add_child

 int64_t
 guestfs_hivex_node_add_child (guestfs_h *g,
                               int64_t parent,
                               const char *name);

Додати дочірній вузол до із назвою "назва" до батьківського запису "батьківський_запис".

Обгортка до команди hivex(3) із тією ж самою назвою.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_children

 struct guestfs_hivex_node_list *
 guestfs_hivex_node_children (guestfs_h *g,
                              int64_t nodeh);

Повертає список вузлів, які є підключами вузла "вузол".

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає "struct guestfs_hivex_node_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_hivex_node_list".

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_delete_child

 int
 guestfs_hivex_node_delete_child (guestfs_h *g,
                                  int64_t nodeh);

Вилучаєe "вузол", якщо потрібно, рекурсивно.

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_get_child

 int64_t
 guestfs_hivex_node_get_child (guestfs_h *g,
                               int64_t nodeh,
                               const char *name);

Повертає дочірній вузол із назвою "назва" для вузла "вузол", якщо такий існує. Може повернути 0, що означатиме, що вузла із вказаною назвою не існує.

Обгортка до команди hivex(3) із тією ж самою назвою.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_get_value

 int64_t
 guestfs_hivex_node_get_value (guestfs_h *g,
                               int64_t nodeh,
                               const char *key);

Повертає значення, пов'язане із вузлом "вузол", яке має назву "ключ", якщо таке існує. Може повернути 0, що означатиме, що ключа із вказаною назвою не існує.

Обгортка до команди hivex(3) із тією ж самою назвою.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_name

 char *
 guestfs_hivex_node_name (guestfs_h *g,
                          int64_t nodeh);

Повернути назву "nodeh".

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_parent

 int64_t
 guestfs_hivex_node_parent (guestfs_h *g,
                            int64_t nodeh);

Повернути батьківський вузол "nodeh".

Обгортка до команди hivex(3) із тією ж самою назвою.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_set_value

 int
 guestfs_hivex_node_set_value (guestfs_h *g,
                               int64_t nodeh,
                               const char *key,
                               int64_t t,
                               const char *val,
                               size_t val_size);

Встановлює або замінює окреме значення у вузлі "вузол". Значенням аргументу "ключ" є назва, "тип" — тип, а "значення" — дані.

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_node_values

 struct guestfs_hivex_value_list *
 guestfs_hivex_node_values (guestfs_h *g,
                            int64_t nodeh);

Повертає масив кортежів (ключ, тип даних, дані), пов'язаний із "nodeh".

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає "struct guestfs_hivex_value_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_hivex_value_list".

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_open

 int
 guestfs_hivex_open (guestfs_h *g,
                     const char *filename,
                     ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_HIVEX_OPEN_VERBOSE, int verbose,
 GUESTFS_HIVEX_OPEN_DEBUG, int debug,
 GUESTFS_HIVEX_OPEN_WRITE, int write,
 GUESTFS_HIVEX_OPEN_UNSAFE, int unsafe,

Відкриває файл рою реєстру Windows із назвою назва_файла. Якщо вже існував дескриптор hivex, пов'язаний із цим сеансом guestfs, його буде закрито.

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_open_va

 int
 guestfs_hivex_open_va (guestfs_h *g,
                        const char *filename,
                        va_list args);

Це «варіант з va_list» "guestfs_hivex_open".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_hivex_open_argv

 int
 guestfs_hivex_open_argv (guestfs_h *g,
                          const char *filename,
                          const struct guestfs_hivex_open_argv *optargs);

Це «варіант з argv» "guestfs_hivex_open".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_hivex_root

 int64_t
 guestfs_hivex_root (guestfs_h *g);

Повернути кореневий вузол гілки.

Обгортка до команди hivex(3) із тією ж самою назвою.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_value_key

 char *
 guestfs_hivex_value_key (guestfs_h *g,
                          int64_t valueh);

Повертає ключ (назву) поля для кортежу (ключ, тип даних, дані).

Обгортка до команди hivex(3) із тією ж самою назвою.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_value_string

 char *
 guestfs_hivex_value_string (guestfs_h *g,
                             int64_t valueh);

Ця команда викликає "guestfs_hivex_value_value" (яка повертає поле даних на основі кортежу значень hivex). Далі, припускається, що вмістом поля є рядок UTF-16LE, який перетворюється на рядок UTF-8 (або, якщо це неможливо, команда повертає повідомлення про помилку).

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

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.37.22)

guestfs_hivex_value_type

 int64_t
 guestfs_hivex_value_type (guestfs_h *g,
                           int64_t valueh);

Повертає значення поля типу даних для кортежу (ключ, тип даних, дані).

Обгортка до команди hivex(3) із тією ж самою назвою.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_value_utf8

 char *
 guestfs_hivex_value_utf8 (guestfs_h *g,
                           int64_t valueh);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_hivex_value_string".

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

Ця команда викликає "guestfs_hivex_value_value" (яка повертає поле даних на основі кортежу значень hivex). Далі, припускається, що вмістом поля є рядок UTF-16LE, який перетворюється на рядок UTF-8 (або, якщо це неможливо, команда повертає повідомлення про помилку).

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

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_hivex_value_value

 char *
 guestfs_hivex_value_value (guestfs_h *g,
                            int64_t valueh,
                            size_t *size_r);

Повертає значення поля даних для кортежу (ключ, тип даних, дані).

Обгортка до команди hivex(3) із тією ж самою назвою.

Див. також "guestfs_hivex_value_utf8".

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

Працездатність цієї функції залежить від можливості "hivex". Див. також "guestfs_feature_available".

(Додано у 1.19.35)

guestfs_initrd_cat

 char *
 guestfs_initrd_cat (guestfs_h *g,
                     const char *initrdpath,
                     const char *filename,
                     size_t *size_r);

Ця команда розпаковує файл назва_файла з файла initrd із назвою шлях_initrd. Назву файла слід вказувати без початкового символу /.

Наприклад, у guestfish ви можете скористатися такою командою для вивчення скрипту завантаження (зазвичай, він має назву /init), який міститься у initrd Linux або образі initramfs:

 initrd-cat /boot/initrd-<версія>.img init

Див. також "guestfs_initrd_list".

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.84)

guestfs_initrd_list

 char **
 guestfs_initrd_list (guestfs_h *g,
                      const char *path);

Ця команда виводить список файлів, які містяться у initrd.

Записи у списку буде виведено без початкового символу /. Список буде упорядковано за появою файлів (не обов'язково за абеткою). Назви каталогів буде показано у списку як окремі записи.

У старих ядрах Linux (2.4 і старіших) як initrd використовується стиснена файлова система ext2. У нашій команді передбачено підтримку лише новішого формату initramfs (стиснених файлів cpio).

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.0.54)

guestfs_inotify_add_watch

 int64_t
 guestfs_inotify_add_watch (guestfs_h *g,
                            const char *path,
                            int mask);

Спостерігати для запису "шлях" за появою подій зі списку "маска".

Зауважте, що якщо запис "шлях" є каталогом, спостереження вестиметься і за подіями у каталозі, але не виконуватиметься рекурсивно (у підкаталогах).

Зауваження для викликів з-поза C та з-поза Linux: події inotify визначено у ABI ядра Linux. Список наведено у /usr/include/sys/inotify.h.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "inotify". Див. також "guestfs_feature_available".

(Додано у 1.0.66)

guestfs_inotify_close

 int
 guestfs_inotify_close (guestfs_h *g);

Ця команда закриває дескриптор inotify, який раніше було відкрито inotify_init. Команда вилучає усі спостереження, викидає усі події з черги і скасовує надання пам'яті для усіх ресурсів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "inotify". Див. також "guestfs_feature_available".

(Додано у 1.0.66)

guestfs_inotify_files

 char **
 guestfs_inotify_files (guestfs_h *g);

Ця функція є корисною обгорткою навколо "guestfs_inotify_read", яка просто повертає список назв шляхів об'єктів, які було оброблено touch. Список назв шляхів буде упорядковано, дублікати записів буде вилучено.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "inotify". Див. також "guestfs_feature_available".

(Додано у 1.0.66)

guestfs_inotify_init

 int
 guestfs_inotify_init (guestfs_h *g,
                       int maxevents);

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

Значенням параметра "maxevents" є максимальна кількість подій, які може бути додано до черги між викликами "guestfs_inotify_read" або "guestfs_inotify_files". Якщо буде передано значення 0, буде використано типове значення для ядра (або раніше встановлене значення). Для Linux 2.6.29 типовим значенням є 16384 подій. Якщо обмеження буде перевищено, ядро просто відкидатиме події, але записуватиме повідомлення щодо факту відкидання, встановлюючи прапорець "IN_Q_OVERFLOW" у списку повернутої структури (див. "guestfs_inotify_read").

Перш ніж буде створено якесь повідомлення про подію, вам слід додати певні спостереження до внутрішнього списку спостережень. Див. "guestfs_inotify_add_watch" та "guestfs_inotify_rm_watch".

Записи подій з черги мають періодично читатися викликом "guestfs_inotify_read" (або "guestfs_inotify_files", який є корисною обгорткою навколо "guestfs_inotify_read"). Якщо записи подій не читатимуться достатньо часто, внутрішню чергу записів може бути переповнено.

Після використання дескриптор слід закрити викликом "guestfs_inotify_close". У процесі закриття буде автоматично вилучено усі спостереження.

Огляд інтерфейсу inotify, який відкриває ядро Linux, можна знайти на сторінці підручника inotify(7). Саме цей інтерфейс, грубо кажучи, ми і відкриваємо за допомогою libguestfs. Зауважте, що для кожного екземпляра libguestfs відкривається один загальний дескриптор inotify.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "inotify". Див. також "guestfs_feature_available".

(Додано у 1.0.66)

guestfs_inotify_read

 struct guestfs_inotify_event_list *
 guestfs_inotify_read (guestfs_h *g);

Повертає повну чергу подій, які трапилися з моменту попереднього виклику читання черги.

Якщо подій не траплялося, повертає порожній список.

Зауваження: щоб переконатися, що усі записи подій було прочитано, вам слід повторно викликати цю функцію, аж доки не буде повернуто порожній список. Причиною є те, що виклик читає записи подій до досягнення максимального розміру черги повідомлень appliance-to-host і лишає решту подій у черзі.

Ця функція повертає "struct guestfs_inotify_event_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_inotify_event_list".

Працездатність цієї функції залежить від можливості "inotify". Див. також "guestfs_feature_available".

(Додано у 1.0.66)

guestfs_inotify_rm_watch

 int
 guestfs_inotify_rm_watch (guestfs_h *g,
                           int wd);

Вилучити раніше визначене спостереження inotify. Див. "guestfs_inotify_add_watch".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "inotify". Див. також "guestfs_feature_available".

(Додано у 1.0.66)

guestfs_inspect_get_arch

 char *
 guestfs_inspect_get_arch (guestfs_h *g,
                           const char *root);

Повертає архітектуру інспектованої операційної системи. Список можливих повернутих значень можна знайти у описі "guestfs_file_architecture".

Якщо архітектуру визначити не вдасться, буде повернуто рядок "unknown".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_inspect_get_distro

 char *
 guestfs_inspect_get_distro (guestfs_h *g,
                             const char *root);

Ця команда повертає дистрибутив інспектованої операційної системи.

У поточній версії визначено такі дистрибутиви:

"alpinelinux"
Alpine Linux.
"altlinux"
ALT Linux.
"archlinux"
Arch Linux.
"buildroot"
Дистрибутив, що походить від buildroot, але не той, який ми можемо окремо визначити.
"centos"
CentOS.
"cirros"
Cirros.
"coreos"
CoreOS.
"debian"
Debian.
"fedora"
Fedora.
"freebsd"
FreeBSD.
"freedos"
FreeDOS.
"frugalware"
Frugalware.
"gentoo"
Gentoo.
"kalilinux"
Kali Linux.
"linuxmint"
Linux Mint.
"mageia"
Mageia.
"mandriva"
Mandriva.
"meego"
MeeGo.
"msdos"
Microsoft DOS.
"neokylin"
NeoKylin.
"netbsd"
NetBSD.
"openbsd"
OpenBSD.
"opensuse"
OpenSUSE.
"oraclelinux"
Oracle Linux.
"pardus"
Pardus.
"pldlinux"
PLD Linux.
"redhat-based"
Дистрибутив, що походить від Red Hat.
"rhel"
Red Hat Enterprise Linux.
"scientificlinux"
Scientific Linux.
"slackware"
Slackware.
"sles"
SuSE Linux Enterprise Server або Desktop.
"suse-based"
Дистрибутив, заснований на openSuSE.
"ttylinux"
ttylinux.
"ubuntu"
Ubuntu.
"unknown"
Дистрибутив, тип якого не вдалося визначити.
"voidlinux"
Void Linux.
"windows"
У Windows немає дистрибутивів. Цей рядок буде повернуто, якщо операційна система належить до сімейства Windows.

У майбутніх версіях libguestfs цією командою можуть повертатися інші рядки. Функція, звідки викликається команда, має готуватися до обробки будь-якого рядка.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_inspect_get_drive_mappings

 char **
 guestfs_inspect_get_drive_mappings (guestfs_h *g,
                                     const char *root);

Цей виклик корисний для Windows, де використовується примітивна система призначення літер дисків (зокрема C:\) до розділів. Цей програмний інтерфейс інспектування вивчає реєстр Windows, щоб визначити спосіб прив'язування дисків і розділів до літер, і повертає хеш-таблицю, як у наведеному нижче прикладі:

 C      =>     /dev/vda2
 E      =>     /dev/vdb1
 F      =>     /dev/vdc1

Зауважте, що ключі є літерами дисків. Для Windows регістр символів запису ключа не враховується і складається із простої літери диска без символу-відокремлювача, двокрапки.

У майбутньому ми можемо реалізувати підтримку інших операційних систем, де також використовуються літери для дисків, але ключі для таких систем можуть не бути незалежними від регістру символів і можуть перевищувати за довжиною 1 символ. Наприклад, у OS-9 диски називалися "h0", "h1" тощо.

Для гостьових систем Windows у поточній версії повертається лише прив'язка жорстких дисків. Портативні диски (зокрема DVD-ROM) ігноруються.

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

З докладнішими даними можна ознайомитися у розділі "INSPECTION". Див. також <guestfs_inspect_get_mountpoints>, <guestfs_inspect_get_filesystems>.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

(Додано у 1.9.17)

guestfs_inspect_get_filesystems

 char **
 guestfs_inspect_get_filesystems (guestfs_h *g,
                                  const char *root);

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

У випадку віртуальної машини із варіантами завантаження операційних систем файлова система може бути спільною для одразу декількох операційних систем.

З докладнішими даними можна ознайомитися у розділі "INSPECTION". Див. також <guestfs_inspect_get_mountpoints>.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.5.3)

guestfs_inspect_get_format

 char *
 guestfs_inspect_get_format (guestfs_h *g,
                             const char *root);

Ця функція вважається застарілою. Замінника не передбачено. Зверніться до документації із програмного інтерфейсу у підручнику з guestfs(3), щоб дізнатися більше.

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

До libguestfs 1.38 було передбачено певну ненадійну підтримку виявлення образів компакт-дисків для встановлення. Цей програмний інтерфейс мав повертати таке:

"installed"
Це встановлена операційна система.
"installer"
Інспектований образ диска не є встановленою операційною системою, а лише придатним до завантаження диском, компакт-диском із портативною операційною системою або чимось подібним.
"unknown"
Формат цього образу диска є невідомим.

У libguestfs ≥ 1.38 ця команда повертала лише "installed". Скористайтеся безпосередньо libosinfo для визначення системи на компакт-диску зі встановлювачем.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.9.4)

guestfs_inspect_get_hostname

 char *
 guestfs_inspect_get_hostname (guestfs_h *g,
                               const char *root);

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

Якщо назву вузла не вдасться визначити, буде повернуто рядок "unknown".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.7.9)

guestfs_inspect_get_icon

 char *
 guestfs_inspect_get_icon (guestfs_h *g,
                           const char *root,
                           size_t *size_r,
                           ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_INSPECT_GET_ICON_FAVICON, int favicon,
 GUESTFS_INSPECT_GET_ICON_HIGHQUALITY, int highquality,

Ця функція повертає піктограму, яка відповідає інспектованій операційній системі. Піктограма повертається як буфер, який містить зображення PNG (перекодується до PNG, якщо потрібно).

Якщо отримання піктограми неможливе, ця функція повертає буфер нульової довжини (не-NULL). Функції, які викликають цю команду, мають перевіряти цей випадок.

Libguestfs починає із пошуку файла із назвою /etc/favicon.png або C:\etc\favicon.png і, якщо дані зберігаються у належному форматі, буде повернуто вміст цього файла. Ви можете вимкнути такі піктограми передаванням для необов'язкового параметра "favicon" значення false (типовим значенням є true).

Якщо пошук favicon завершиться невдачею, буде виконано пошук відповідної піктограми у інших місцях гостьової системи.

Якщо для необов'язкового параметра "highquality" встановлено значення true, команда повертатиме лише високоякісні піктограми, тобто піктограми із високою роздільною здатністю і каналом прозорості. Типово, (зі значенням false) буде повернуто будь-яку знайдено піктограму, навіть якщо її якість буде низькою.

Нотатки:

  • На відміну від більшості інших викликів програмного інтерфейсу, перш ніж ви викличете цю команду, диски гостьової системи має бути змонтовано, оскільки під час виклику доведеться читати дані з файлової системи гостьової операційної системи.
  • Безпека: Дані піктограми походять із ненадійної гостьової системи, ними слід користуватися обережно. Відомі випадки додавання шкідливого коду до файлів PNG. Переконайтеся, що ви користуєтеся libpng (або іншими відповідними бібліотеками) останньої версії, перш ніж намагатися обробити або показати піктограму.
  • Розмір повернутого зображення PNG може бути довільним. Зображення може бути неквадратним. Libguestfs намагається повернути найбільшу доступну піктограму найвищої якості. Програма сама має масштабувати її до бажаного розміру.
  • Для видобування піктограм із гостьових систем Windows потрібна зовнішня програма "wrestool" з пакунка "icoutils" та декілька програм ("bmptopnm", "pnmtopng", "pamcut") з пакунка "netpbm". Ці програми має бути встановлено окремо.
  • Піктограми операційної системи захищено авторськими правами. Перш ніж використовувати захищені авторським правом дані у власних програмах, проконсультуйтеся щодо законодавчих аспектів такого використання.

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

(Додано у 1.11.12)

guestfs_inspect_get_icon_va

 char *
 guestfs_inspect_get_icon_va (guestfs_h *g,
                              const char *root,
                              size_t *size_r,
                              va_list args);

Це «варіант з va_list» "guestfs_inspect_get_icon".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_inspect_get_icon_argv

 char *
 guestfs_inspect_get_icon_argv (guestfs_h *g,
                                const char *root,
                                size_t *size_r,
                                const struct guestfs_inspect_get_icon_argv *optargs);

Це «варіант з argv» "guestfs_inspect_get_icon".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_inspect_get_major_version

 int
 guestfs_inspect_get_major_version (guestfs_h *g,
                                    const char *root);

Ця команда повертає номер основної версії інспектованої операційної системи.

У Windows використовується послідовна схема нумерування версій, яку не відображено у назвах ринкових продуктів операційної системи. Зокрема, операційна система, яку ми знаємо за назвою «Windows 7», насправді має номер 6.1 (тобто основна версія = 6, додаткова версія = 1). Ви можете визначити справжні номери версій випусків Windows за статтями Вікіпедії або MSDN.

Якщо версію не вдасться визначити, буде повернуто 0.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.5.3)

guestfs_inspect_get_minor_version

 int
 guestfs_inspect_get_minor_version (guestfs_h *g,
                                    const char *root);

Ця команда повертає номер додаткової версії інспектованої операційної системи.

Якщо версію не вдасться визначити, буде повернуто 0.

З докладнішими даними можна ознайомитися у розділі "INSPECTION". Див. також <guestfs_inspect_get_major_version>.

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.5.3)

guestfs_inspect_get_mountpoints

 char **
 guestfs_inspect_get_mountpoints (guestfs_h *g,
                                  const char *root);

Ця команда повертає хеш даних щодо місця, у якому, як ми гадаємо, має бути змонтовано файлові системи, пов'язані із операційною системою. Слід зауважити, що ці дані, у найкращому випадку, визначено на основі здогадок, заснованих на вивченні файлів налаштувань, зокрема /etc/fstab. Зокрема, використання цієї команди може призвести до отримання записів файлових систем, яких не існує або які непридатні до монтування. У коді, який викликатиме команду, слід правильно обробити випадки, коли під час спроби монтування отриманих файлових систем ставатимуться помилки.

У кожного з елементів повернутої хеш-таблиці буде ключ, який відповідатиме шляху до точки монтування (наприклад, /boot), і значення, яке відповідатиме файловій системі, яку має бути змонтовано до цієї точки монтування (наприклад, /dev/sda1).

Непридатні до монтування пристрої, зокрема пристрої резервної пам'яті на диску, не включатимуться до повернутого списку.

Для операційних систем, подібних до Windows, де для позначення дисків усе ще використовуються літери, ця команда поверне запис першого диска «змонтованого до» /. Щоб дізнатися більше про прив'язку літер дисків до розділів, див. "guestfs_inspect_get_drive_mappings".

З докладнішими даними можна ознайомитися у розділі "INSPECTION". Див. також <guestfs_inspect_get_filesystems>.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

(Додано у 1.5.3)

guestfs_inspect_get_osinfo

 char *
 guestfs_inspect_get_osinfo (guestfs_h *g,
                             const char *root);

This function returns a possible short ID for libosinfo corresponding to the guest.

Note: The returned ID is only a guess by libguestfs, and nothing ensures that it actually exists in osinfo-db.

If no ID could not be determined, then the string "unknown" is returned.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Added in 1.39.1)

guestfs_inspect_get_package_format

 char *
 guestfs_inspect_get_package_format (guestfs_h *g,
                                     const char *root);

Ця функція і "guestfs_inspect_get_package_management" повертають формат пакунків та засіб для керування пакунками, який використовується у інспектованій операційній системі. Наприклад, для Fedora ці функції мають повернути "rpm" (формат пакунків) та "yum" або "dnf" (засіб для керування пакунками).

Ця команда поверне рядок "unknown", якщо не вдасться визначити формат пакунків або якщо у операційній системі не використовується система пакунків (наприклад, у Windows).

Можливі варіанти рядків: "rpm", "deb", "ebuild", "pisi", "pacman", "pkgsrc", "apk", "xbps". У майбутніх версіях libguestfs може бути реалізовано повернення інших рядків.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.7.5)

guestfs_inspect_get_package_management

 char *
 guestfs_inspect_get_package_management (guestfs_h *g,
                                         const char *root);

"guestfs_inspect_get_package_format" і ця функція повертають формат пакунків та засіб для керування пакунками, який використовується у інспектованій операційній системі. Наприклад, для Fedora ці функції мають повернути "rpm" (формат пакунків) та "yum" або "dnf" (засіб для керування пакунками).

Ця команда поверне рядок "unknown", якщо не вдасться визначити засіб для керування пакунками або якщо у операційній системі не використовується система пакунків (наприклад, у Windows).

Можливі варіанти повернутих рядків: "yum", "dnf", "up2date", "apt" (для усіх похідних Debian), "portage", "pisi", "pacman", "urpmi", "zypper", "apk", "xbps". У майбутніх версіях libguestfs може бути реалізовано повернення інших рядків.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.7.5)

guestfs_inspect_get_product_name

 char *
 guestfs_inspect_get_product_name (guestfs_h *g,
                                   const char *root);

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

Якщо назву продукту визначити не вдалося, буде повернуто рядок "unknown".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_inspect_get_product_variant

 char *
 guestfs_inspect_get_product_variant (guestfs_h *g,
                                      const char *root);

Ця команда повертає варіант продукту інспектованої операційної системи.

Для гостьових операційних систем Windows ця команда повертає вміст ключа реєстру "HKLM\Software\Microsoft\Windows NT\CurrentVersion" "InstallationType", який типово є рядком, зокрема "Client" або "Server" (можливі й інші варіанти). Цим рядком можна скористатися для розрізнення домашніх і промислових версій Windows для випусків із однаковим номером версії (наприклад, Windows 7 і Windows 2008 Server обидві мають номер версії 6.1, але перша має значення варіанта "Client", а друга — "Server").

Для промислових версій гостьових систем Linux у майбутньому ми маємо намір реалізувати код, який повертатиме варіанти продукту, зокрема "Desktop", "Server" тощо. Але у поточній версії цей код ще не реалізовано.

Якщо варіант продукту визначити не вдалося, буде повернуто рядок "unknown".

З докладнішими даними можна ознайомитися у розділі "INSPECTION". Див. також <guestfs_inspect_get_product_name>, <guestfs_inspect_get_major_version>.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.9.13)

guestfs_inspect_get_roots

 char **
 guestfs_inspect_get_roots (guestfs_h *g);

Ця функція є зручним способом отримання списку кореневих пристроїв, повернутого попереднім викликом "guestfs_inspect_os", але без повторного виконання усієї процедури інспектування.

Команда повертає порожній список, якщо не буде знайдено кореневих пристроїв або якщо не було викликано "guestfs_inspect_os".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.7.3)

guestfs_inspect_get_type

 char *
 guestfs_inspect_get_type (guestfs_h *g,
                           const char *root);

Ця команда повертає тип інспектованої операційної системи. У поточній версії визначено такі типи:

"linux"
Будь-яка заснована на Linux операційна система.
"windows"
Будь-яка операційна система Microsoft Windows.
"freebsd"
FreeBSD.
"netbsd"
NetBSD.
"openbsd"
OpenBSD.
"hurd"
GNU/Hurd.
"dos"
MS-DOS, FreeDOS та інші.
"minix"
MINIX.
"unknown"
Не вдалося визначити тип операційної системи.

У майбутніх версіях libguestfs цією командою можуть повертатися інші рядки. Функція, звідки викликається команда, має готуватися до обробки будь-якого рядка.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.3)

guestfs_inspect_get_windows_current_control_set

 char *
 guestfs_inspect_get_windows_current_control_set (guestfs_h *g,
                                                  const char *root);

Ця команда повертає Windows CurrentControlSet інспектованої гостьової системи. CurrentControlSet є назвою ключа реєстру, наприклад "ControlSet001".

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

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.9.17)

guestfs_inspect_get_windows_software_hive

 char *
 guestfs_inspect_get_windows_software_hive (guestfs_h *g,
                                            const char *root);

Ця команда повертає шлях до рою (двійкового файла реєстру Windows), який відповідає HKLM\SOFTWARE.

У цій команді припускається, що гостьовою системою є Windows і що у гостьовій системі є файл рою програмного забезпечення із відповідною назвою. Якщо ці припущення не справджуються, команда поверне повідомлення про помилку. Ця команд не виконує перевірки того, що знайдений рій є коректним роєм реєстру Windows.

Ви можете скористатися командою "guestfs_hivex_open" для читання або запису рою.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.35.26)

guestfs_inspect_get_windows_system_hive

 char *
 guestfs_inspect_get_windows_system_hive (guestfs_h *g,
                                          const char *root);

Ця команда повертає шлях до рою (двійкового файла реєстру Windows), який відповідає HKLM\SYSTEM.

У цій команді припускається, що гостьовою системою є Windows і що у гостьовій системі є файл рою системи із відповідною назвою. Якщо ці припущення не справджуються, команда поверне повідомлення про помилку. Ця команда не виконує перевірки того, що знайдений рій є коректним роєм реєстру Windows.

Ви можете скористатися командою "guestfs_hivex_open" для читання або запису рою.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.35.26)

guestfs_inspect_get_windows_systemroot

 char *
 guestfs_inspect_get_windows_systemroot (guestfs_h *g,
                                         const char *root);

Ця команда повертає системний кореневий каталог інспектованої гостьової системи Windows. Системним кореневим каталогом є шлях, зокрема /WINDOWS.

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

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.25)

guestfs_inspect_is_live

 int
 guestfs_inspect_is_live (guestfs_h *g,
                          const char *root);

Ця функція вважається застарілою. Замінника не передбачено. Зверніться до документації із програмного інтерфейсу у підручнику з guestfs(3), щоб дізнатися більше.

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

Ця команда є застарілою і завжди повертає "false".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.9.4)

guestfs_inspect_is_multipart

 int
 guestfs_inspect_is_multipart (guestfs_h *g,
                               const char *root);

Ця функція вважається застарілою. Замінника не передбачено. Зверніться до документації із програмного інтерфейсу у підручнику з guestfs(3), щоб дізнатися більше.

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

Ця команда є застарілою і завжди повертає "false".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.9.4)

guestfs_inspect_is_netinst

 int
 guestfs_inspect_is_netinst (guestfs_h *g,
                             const char *root);

Ця функція вважається застарілою. Замінника не передбачено. Зверніться до документації із програмного інтерфейсу у підручнику з guestfs(3), щоб дізнатися більше.

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

Ця команда є застарілою і завжди повертає "false".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.9.4)

guestfs_inspect_list_applications

 struct guestfs_application_list *
 guestfs_inspect_list_applications (guestfs_h *g,
                                    const char *root);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_inspect_list_applications2".

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

Повертає список програм, встановлених у операційній системі.

Зауваження: ця команда працює інакше за інші частини програмного інтерфейсу інспектування. Вам слід викликати "guestfs_inspect_os", потім "guestfs_inspect_get_mountpoints", потім змонтувати диски, потім викликати цю команду. Побудова списку програм є значно складнішою операцією, яка потребує доступу до усієї файлової системи. Також зауважте, що на відміну від інших команд "guestfs_inspect_get_*", які лише повертають дані, кешовані у дескрипторі libguestfs, ця команда справді читає частини змонтованої файлової системи під час виконання.

Ця команда повертає порожній список, якщо засобу інспектування не вдасться визначити список програм.

Структура application містить такі поля:

"app_name"
Назва програми. Для гостьових систем Linux на основі Red Hat або Debian це назва пакунка.
"app_display_name"
Показана назва програми, іноді локалізована відповідно до мови встановлення гостьової операційної системи.

Якщо дані недоступні, команда поверне порожній рядок "". Там, де потрібно щось показати, можна скористатися замість цієї команди командою "app_name".

"app_epoch"
Для засобів керування пакунками, у яких використовуються епохи, це поле містить дані щодо епохи пакунка (ціле число). Якщо дані недоступні, буде повернуто значення 0.
"app_version"
Рядок версії програми або пакунка. Якщо такого рядка не передбачено, буде повернуто порожній рядок "".
"app_release"
Рядок випуску програми або пакунка у системах пакування, де передбачено підтримку відповідних даних. Якщо такого рядка не передбачено, буде повернуто порожній рядок "".
"app_install_path"
Шлях встановлення програми (у операційних системах, зокрема Windows, де використовуються шляхи встановлення). Цей шлях записується у форматі, який використовується гостьовою операційною системою, а не у форматі шляху libguestfs.

Якщо не передбачено, буде повернуто порожній рядок "".

"app_trans_path"
Шлях для встановлення, перетворений у шлях libguestfs. Якщо такого шляху не передбачено, буде повернуто порожній рядок "".
"app_publisher"
Назва розповсюджувача програми у системах пакування, де передбачено підтримку відповідних даних. Якщо такої назви не передбачено, буде повернуто порожній рядок "".
"app_url"
Адреса (сайта) програми. Якщо такої адреси не передбачено, буде повернуто порожній рядок "".
"app_source_package"
Для систем пакування, де передбачено таку підтримку, назва пакунка із початковим кодом. Якщо такої назви не передбачено, буде повернуто порожній рядок "".
"app_summary"
Короткий (зазвичай, у один рядок) опис програми або пакунка. Якщо такого опису не передбачено, буде повернуто порожній рядок "".
"app_description"
Докладніший опис програми або пакунка. Якщо опис недоступний, замість нього буде повернуто порожній рядок "".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає "struct guestfs_application_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_application_list".

(Додано у 1.7.8)

guestfs_inspect_list_applications2

 struct guestfs_application2_list *
 guestfs_inspect_list_applications2 (guestfs_h *g,
                                     const char *root);

Повертає список програм, встановлених у операційній системі.

Зауваження: ця команда працює інакше за інші частини програмного інтерфейсу інспектування. Вам слід викликати "guestfs_inspect_os", потім "guestfs_inspect_get_mountpoints", потім змонтувати диски, потім викликати цю команду. Побудова списку програм є значно складнішою операцією, яка потребує доступу до усієї файлової системи. Також зауважте, що на відміну від інших команд "guestfs_inspect_get_*", які лише повертають дані, кешовані у дескрипторі libguestfs, ця команда справді читає частини змонтованої файлової системи під час виконання.

Ця команда повертає порожній список, якщо засобу інспектування не вдасться визначити список програм.

Структура application містить такі поля:

"app2_name"
Назва програми. Для гостьових систем Linux на основі Red Hat або Debian це назва пакунка.
"app2_display_name"
Показана назва програми, іноді локалізована відповідно до мови встановлення гостьової операційної системи.

Якщо дані недоступні, команда поверне порожній рядок "". Там, де потрібно щось показати, можна скористатися замість цієї команди командою "app2_name".

"app2_epoch"
Для засобів керування пакунками, у яких використовуються епохи, це поле містить дані щодо епохи пакунка (ціле число). Якщо дані недоступні, буде повернуто значення 0.
"app2_version"
Рядок версії програми або пакунка. Якщо такого рядка не передбачено, буде повернуто порожній рядок "".
"app2_release"
Рядок випуску програми або пакунка у системах пакування, де передбачено підтримку відповідних даних. Якщо такого рядка не передбачено, буде повернуто порожній рядок "".
"app2_arch"
Рядок архітектури програми або пакунка у системах пакування, де передбачено підтримку відповідних даних. Якщо такого рядка не передбачено, буде повернуто порожній рядок "".
"app2_install_path"
Шлях встановлення програми (у операційних системах, зокрема Windows, де використовуються шляхи встановлення). Цей шлях записується у форматі, який використовується гостьовою операційною системою, а не у форматі шляху libguestfs.

Якщо не передбачено, буде повернуто порожній рядок "".

"app2_trans_path"
Шлях для встановлення, перетворений у шлях libguestfs. Якщо такого шляху не передбачено, буде повернуто порожній рядок "".
"app2_publisher"
Назва розповсюджувача програми у системах пакування, де передбачено підтримку відповідних даних. Якщо такої назви не передбачено, буде повернуто порожній рядок "".
"app2_url"
Адреса (сайта) програми. Якщо такої адреси не передбачено, буде повернуто порожній рядок "".
"app2_source_package"
Для систем пакування, де передбачено таку підтримку, назва пакунка із початковим кодом. Якщо такої назви не передбачено, буде повернуто порожній рядок "".
"app2_summary"
Короткий (зазвичай, у один рядок) опис програми або пакунка. Якщо такого опису не передбачено, буде повернуто порожній рядок "".
"app2_description"
Докладніший опис програми або пакунка. Якщо опис недоступний, замість нього буде повернуто порожній рядок "".

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Ця функція повертає "struct guestfs_application2_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_application2_list".

(Додано у 1.19.56)

guestfs_inspect_os

 char **
 guestfs_inspect_os (guestfs_h *g);

Ця функція використовує інші функції libguestfs та певну евристику для інспектування дисків (зазвичай, диски належать до віртуальної машини) під час пошуку операційних систем.

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

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

Ви можете передати повернуті рядки кореневих каталогів іншим функціями "guestfs_inspect_get_*", щоб отримати подальші відомості щодо усіх операційних систем, зокрема назву і версію.

Ця функція використовує інші можливості libguestfs, зокрема "guestfs_mount_ro" і "guestfs_umount_all", щоб монтувати і демонтовувати файлові системи і переглядати їхній вміст. Її слід викликати до того, як буде змонтовано диски. Ця функція також може використовувати Augeas, отже усі наявні дескриптори Augeas буде закрито.

Ця функція не може розшифровувати зашифровані диски. Якщо диск зашифровано, про його розшифровування має подбати (надати відповідні ключі) функція виклику.

З докладнішими даними можна ознайомитися у розділі "INSPECTION".

Див. також "guestfs_list_filesystems".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.5.3)

guestfs_is_blockdev

 int
 guestfs_is_blockdev (guestfs_h *g,
                      const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_is_blockdev_opts" без додаткових аргументів.

(Додано у 1.5.10)

guestfs_is_blockdev_opts

 int
 guestfs_is_blockdev_opts (guestfs_h *g,
                           const char *path,
                           ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_IS_BLOCKDEV_OPTS_FOLLOWSYMLINKS, int followsymlinks,

Повертає "true" і лише тоді, якщо існує блоковий пристрій із вказаною назвою "шлях".

Якщо додатковий прапорець "followsymlinks" має значення true, функція поверне true, якщо існує символічне посилання (або ланцюжок символічних посилань), який завершується блоковим пристроєм.

Ця команда лише шукає файли у файловій системі гостьової системи. У цій команді як параметр "шлях" не можна використовувати розділи і блокові пристрої libguestfs (наприклад /dev/sda).

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.10)

guestfs_is_blockdev_opts_va

 int
 guestfs_is_blockdev_opts_va (guestfs_h *g,
                              const char *path,
                              va_list args);

Це «варіант з va_list» "guestfs_is_blockdev_opts"

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_blockdev_opts_argv

 int
 guestfs_is_blockdev_opts_argv (guestfs_h *g,
                                const char *path,
                                const struct guestfs_is_blockdev_opts_argv *optargs);

Це «варіант з argv» "guestfs_is_blockdev_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_busy

 int
 guestfs_is_busy (guestfs_h *g);

Ця функція завжди повертає false. Ця функція вважається застарілою і не має новішого аналогу. Не використовуйте цю функцію.

Докладніший опис станів наведено у підручнику з guestfs(3).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.2)

guestfs_is_chardev

 int
 guestfs_is_chardev (guestfs_h *g,
                     const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_is_chardev_opts" без додаткових аргументів.

(Додано у 1.5.10)

guestfs_is_chardev_opts

 int
 guestfs_is_chardev_opts (guestfs_h *g,
                          const char *path,
                          ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_IS_CHARDEV_OPTS_FOLLOWSYMLINKS, int followsymlinks,

Повертає "true" і лише тоді, якщо існує символьний пристрій із вказаною назвою "шлях".

Якщо додатковий прапорець "followsymlinks" має значення true, функція поверне true, якщо існує символічне посилання (або ланцюжок символічних посилань), який завершується символьним пристроєм.

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.10)

guestfs_is_chardev_opts_va

 int
 guestfs_is_chardev_opts_va (guestfs_h *g,
                             const char *path,
                             va_list args);

Це «варіант з va_list» "guestfs_is_chardev_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_chardev_opts_argv

 int
 guestfs_is_chardev_opts_argv (guestfs_h *g,
                               const char *path,
                               const struct guestfs_is_chardev_opts_argv *optargs);

Це «варіант з argv» "guestfs_is_chardev_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_config

 int
 guestfs_is_config (guestfs_h *g);

Повертає true тоді і лише тоді, коли налаштовується цей дескриптор (у стані "CONFIG").

Докладніший опис станів наведено у підручнику з guestfs(3).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.2)

guestfs_is_dir

 int
 guestfs_is_dir (guestfs_h *g,
                 const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_is_dir_opts" без додаткових аргументів.

(Додано у 0.8)

guestfs_is_dir_opts

 int
 guestfs_is_dir_opts (guestfs_h *g,
                      const char *path,
                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_IS_DIR_OPTS_FOLLOWSYMLINKS, int followsymlinks,

Повертає "true" і лише тоді, якщо існує каталог із вказаною назвою "шлях". Зауважте, що команда повертає false для усіх інших об'єктів, зокрема файлів.

Якщо додатковий прапорець "followsymlinks" має значення true, функція поверне true, якщо існує символічне посилання (або ланцюжок символічних посилань), який завершується каталогом.

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_is_dir_opts_va

 int
 guestfs_is_dir_opts_va (guestfs_h *g,
                         const char *path,
                         va_list args);

Це «варіант з va_list» "guestfs_is_dir_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_dir_opts_argv

 int
 guestfs_is_dir_opts_argv (guestfs_h *g,
                           const char *path,
                           const struct guestfs_is_dir_opts_argv *optargs);

Це «варіант з argv» "guestfs_is_dir_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_fifo

 int
 guestfs_is_fifo (guestfs_h *g,
                  const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_is_fifo_opts" без додаткових аргументів.

(Додано у 1.5.10)

guestfs_is_fifo_opts

 int
 guestfs_is_fifo_opts (guestfs_h *g,
                       const char *path,
                       ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_IS_FIFO_OPTS_FOLLOWSYMLINKS, int followsymlinks,

Повертає "true" і лише тоді, якщо існує FIFO (іменований канал) із вказаною назвою "шлях".

Якщо додатковий прапорець "followsymlinks" має значення true, функція поверне true, якщо існує символічне посилання (або ланцюжок символічних посилань), який завершується FIFO.

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.10)

guestfs_is_fifo_opts_va

 int
 guestfs_is_fifo_opts_va (guestfs_h *g,
                          const char *path,
                          va_list args);

Це «варіант з va_list» "guestfs_is_fifo_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_fifo_opts_argv

 int
 guestfs_is_fifo_opts_argv (guestfs_h *g,
                            const char *path,
                            const struct guestfs_is_fifo_opts_argv *optargs);

Це «варіант з argv» "guestfs_is_fifo_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_file

 int
 guestfs_is_file (guestfs_h *g,
                  const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_is_file_opts" без додаткових аргументів.

(Додано у 0.8)

guestfs_is_file_opts

 int
 guestfs_is_file_opts (guestfs_h *g,
                       const char *path,
                       ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, int followsymlinks,

Повертає "true" і лише тоді, якщо існує звичайний файл із вказаною назвою "шлях". Зауважте, що команда повертає false для усіх інших об'єктів, зокрема каталогів.

Якщо додатковий прапорець "followsymlinks" має значення true, функція поверне true, якщо існує символічне посилання (або ланцюжок символічних посилань), який завершується файлом.

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_is_file_opts_va

 int
 guestfs_is_file_opts_va (guestfs_h *g,
                          const char *path,
                          va_list args);

Це «варіант з va_list» "guestfs_is_file_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_file_opts_argv

 int
 guestfs_is_file_opts_argv (guestfs_h *g,
                            const char *path,
                            const struct guestfs_is_file_opts_argv *optargs);

Це «варіант з argv» "guestfs_is_file_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_launching

 int
 guestfs_is_launching (guestfs_h *g);

Ця функція повертає true тоді і лише тоді, коли дескриптор запускає підпроцес (у стані "LAUNCHING").

Докладніший опис станів наведено у підручнику з guestfs(3).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.2)

guestfs_is_lv

 int
 guestfs_is_lv (guestfs_h *g,
                const char *mountable);

Ця команда перевіряє, чи є "монтування" логічним томом, і повертає true тоді і лише тоді, коли це так.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.3)

guestfs_is_ready

 int
 guestfs_is_ready (guestfs_h *g);

Ця функція повертає true тоді і лише тоді, коли дескриптор готовий до отримання команд (у стані "READY").

Докладніший опис станів наведено у підручнику з guestfs(3).

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.0.2)

guestfs_is_socket

 int
 guestfs_is_socket (guestfs_h *g,
                    const char *path);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_is_socket_opts" без додаткових аргументів.

(Додано у 1.5.10)

guestfs_is_socket_opts

 int
 guestfs_is_socket_opts (guestfs_h *g,
                         const char *path,
                         ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_IS_SOCKET_OPTS_FOLLOWSYMLINKS, int followsymlinks,

Повертає "true" і лише тоді, якщо існує сокет домену UNIX із вказаною назвою "шлях".

Якщо додатковий прапорець "followsymlinks" має значення true, функція поверне true, якщо існує символічне посилання (або ланцюжок символічних посилань), який завершується сокетом.

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.10)

guestfs_is_socket_opts_va

 int
 guestfs_is_socket_opts_va (guestfs_h *g,
                            const char *path,
                            va_list args);

Це «варіант з va_list» "guestfs_is_socket_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_is_socket_opts_argv

 int
 guestfs_is_socket_opts_argv (guestfs_h *g,
                              const char *path,
                              const struct guestfs_is_socket_opts_argv *optargs);

Це «варіант з argv» "guestfs_is_socket_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 int
 guestfs_is_symlink (guestfs_h *g,
                     const char *path);

Повертає "true" і лише тоді, якщо існує символічне посилання із вказаною назвою "шлях".

Див. також "guestfs_stat".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.5.10)

guestfs_is_whole_device

 int
 guestfs_is_whole_device (guestfs_h *g,
                          const char *device);

Ця команда повертає "true" тоді і лише тоді, коли "пристрій" стосується повного блокового пристрою, тобто не розділу і не логічного пристрою.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.21.9)

guestfs_is_zero

 int
 guestfs_is_zero (guestfs_h *g,
                  const char *path);

Повертає true тоді і лише тоді, коли файл існує і є порожнім або містить лише нульові байти.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.11.8)

guestfs_is_zero_device

 int
 guestfs_is_zero_device (guestfs_h *g,
                         const char *device);

Повертає true тоді і лише тоді, коли пристрій існує і містить лише нульові байти.

Зауважте, що на пристроях великого об'єму виконання цієї програми може бути досить тривалим.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.11.8)

guestfs_isoinfo

 struct guestfs_isoinfo *
 guestfs_isoinfo (guestfs_h *g,
                  const char *isofile);

Це те саме, що і "guestfs_isoinfo_device", але працює для файла ISO, розташованого всередині якоїсь іншої змонтованої файлової системи. Зауважте, що у типовому випадку, коли ви додали файл ISO як пристрій libguestfs, вам не слід викликати цю команду. Замість цього, слід викликати "guestfs_isoinfo_device".

Ця функція повертає "struct guestfs_isoinfo *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_isoinfo".

(Додано у 1.17.19)

guestfs_isoinfo_device

 struct guestfs_isoinfo *
 guestfs_isoinfo_device (guestfs_h *g,
                         const char *device);

"пристрій" є пристроєм ISO. Ця команда повертає структуру даних, прочитану з дескриптора основного тому (еквівалента суперблоку у ISO) вказаного пристрою.

Зазвичай, ефективніше скористатися командою isoinfo(1) з параметром -d у основній системі для аналізу файлів ISO, а не використовувати засоби libguestfs.

Відомості щодо полів дескриптора основного тому можна отримати тут: http://wiki.osdev.org/ISO_9660#The_Primary_Volume_Descriptor

Ця функція повертає "struct guestfs_isoinfo *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_isoinfo".

(Додано у 1.17.19)

guestfs_journal_close

 int
 guestfs_journal_close (guestfs_h *g);

Завершити роботу обробника журналу.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_journal_get

 struct guestfs_xattr_list *
 guestfs_journal_get (guestfs_h *g);

Читає поточний запис журналу. Команда повертає усі поля у журналі як набір пар значень "(назва_атрибута, значення_атрибута)". Значенням "назва_атрибута" є назва поля (рядок).

Значенням "значення_атрибута" є значення поля (двійковий набір даних, часто, але не завжди, рядок). Будь ласка, зауважте, що "значення_атрибута" є масивом байтів, а не рядком C, який завершується символом \0.

Дані може бути обрізано за пороговою довжиною (див. "guestfs_journal_set_data_threshold", "guestfs_journal_get_data_threshold").

Якщо ви не обмежуєте порогове значення даних (0), ця команда може прочитати запис журналу довільного розміру, тобто розмір не обмежуватиметься протоколом libguestfs.

Ця функція повертає "struct guestfs_xattr_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_xattr_list".

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_journal_get_data_threshold

 int64_t
 guestfs_journal_get_data_threshold (guestfs_h *g);

Отримує поточне значення порогу даних для читання записів журналу. Це значення є підказкою журналу щодо того, що засіб журналювання може обрізати поля даних до цього розміру під час читання (зауважте також, що засіб журналювання може і не обрізати їх). Якщо команда повертає 0, порогове обмеження не встановлено.

Див. також "guestfs_journal_set_data_threshold"

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_journal_get_realtime_usec

 int64_t
 guestfs_journal_get_realtime_usec (guestfs_h *g);

Отримує поточну часову позначку (за годинником системи) поточного запису журналу

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.27.18)

guestfs_journal_next

 int
 guestfs_journal_next (guestfs_h *g);

Переводить до наступного запису журналу. Вам слід викликати цю команду принаймні один раз, одразу після відкриття дескриптора, перш ніж ви зможете читати дані.

Ця команда повертає булеве значення, яке повідомляє вам, чи існують ще записи журналу для читання. Значення "true" означає, що ви можете прочитати наступний запис (наприклад, за допомогою "guestfs_journal_get"), а значення "false" означає, що досягнуто кінця журналу.

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_journal_open

 int
 guestfs_journal_open (guestfs_h *g,
                       const char *directory);

Відкриває журналу systemd, який зберігається у каталозі каталог. Усі раніше відкриті дескриптори журналу при цьому буде закрито.

Вміст журналу можна прочитати за допомогою "guestfs_journal_next" і "guestfs_journal_get".

Після завершення використання журналу вам слід закрити дескриптор викликом "guestfs_journal_close".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_journal_set_data_threshold

 int
 guestfs_journal_set_data_threshold (guestfs_h *g,
                                     int64_t threshold);

Встановлює значення порогу даних для читання записів журналу. Це значення є підказкою журналу щодо того, що засіб журналювання може обрізати поля даних до цього розміру під час читання (зауважте також, що засіб журналювання може і не обрізати їх). Якщо ви встановите значення 0, порогове обмеження застосовано не буде.

Див. також "guestfs_journal_get_data_threshold".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_journal_skip

 int64_t
 guestfs_journal_skip (guestfs_h *g,
                       int64_t skip);

Прокручування записів журналу вперед ("пропуск ≥ 0") або назад ("пропуск < 0").

Команда повертає кількість записів, на яку насправді вдалося просунутися (зауважте, що "rskip ≥ 0"). Якщо повернуте значення не дорівнює пропуску за модулем ("|пропуск|"), ви досягли кінця або початку журналу.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "journal". Див. також "guestfs_feature_available".

(Додано у 1.23.11)

guestfs_kill_subprocess

 int
 guestfs_kill_subprocess (guestfs_h *g);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_shutdown".

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

Ця команда завершує роботу гіпервізору.

Не викликайте цю функцію. Замість неї слід використовувати "guestfs_shutdown".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_launch

 int
 guestfs_launch (guestfs_h *g);

Вам слід викликати цю команду після налаштовування дескриптора (наприклад, після додавання дисків), але перед виконанням із ним будь-яких інших дій.

Не викликайте "guestfs_launch" двічі для одного і того самого дескриптора. Хоча такий виклик і не призведе до помилки (з історичних причин), точну поведінку бібліотеки у цьому випадку не визначено. Дескриптори є доволі невибагливими до ресурсів об'єктами, тому варто створювати окремий новий дескриптор для кожного запуску.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 0.3)

guestfs_lchown

 int
 guestfs_lchown (guestfs_h *g,
                 int owner,
                 int group,
                 const char *path);

Змінює власника файла на "власник" і групу на "група". Команда подібна до "guestfs_chown", але якщо "шлях" є символічним посиланням, буде змінено параметри самого посилання, а не файла чи каталогу, на яке воно вказує.

Передбачено підтримку лише числових uid і gid. Якщо ви хочете скористатися текстовими назвами, вам доведеться знайти і обробити файл паролів власноруч (підтримка Augeas робить це завдання відносно простим).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.77)

guestfs_ldmtool_create_all

 int
 guestfs_ldmtool_create_all (guestfs_h *g);

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

Викликати "guestfs_list_ldm_volumes" і "guestfs_list_ldm_partitions" для повернення списку усіх пристроїв.

Зауважте, що зазвичай вам не потрібно викликати цю команду явним чином, оскільки вона виконується автоматично під час виконання "guestfs_launch". Втім, може виникнути потреба у виклику цієї функції, якщо ви з'єднували диски у «гарячому» режимі або щойно створили динамічний диск Windows.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_diskgroup_disks

 char **
 guestfs_ldmtool_diskgroup_disks (guestfs_h *g,
                                  const char *diskgroup);

Повертає диски у групі динамічних дисків Windows. Значенням параметра "diskgroup" має бути GUID групи дисків, одним із елементів списку, який повертає "guestfs_ldmtool_scan".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_diskgroup_name

 char *
 guestfs_ldmtool_diskgroup_name (guestfs_h *g,
                                 const char *diskgroup);

Повертає назву групи динамічних дисків Windows. Значенням параметра "diskgroup" має бути GUID групи дисків, одним із елементів списку, який повертає "guestfs_ldmtool_scan".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_diskgroup_volumes

 char **
 guestfs_ldmtool_diskgroup_volumes (guestfs_h *g,
                                    const char *diskgroup);

Повертає томи у групі динамічних дисків Windows. Значенням параметра "diskgroup" має бути GUID групи дисків, одним із елементів списку, який повертає "guestfs_ldmtool_scan".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_remove_all

 int
 guestfs_ldmtool_remove_all (guestfs_h *g);

Загалом, ця функція є оберненою до "guestfs_ldmtool_create_all". Вона вилучає прив'язки пристроїв для усіх томів динамічних дисків Windows.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_scan

 char **
 guestfs_ldmtool_scan (guestfs_h *g);

Ця функція шукає динамічні диски Windows. Вона повертає список ідентифікаторів (GUID) для усіх груп дисків, які було знайдено. Ці ідентифікатори можна передавати іншим функціям "guestfs_ldmtool_*".

Ця функція сканує усі блокові пристрої. Щоб виконати сканування якоїсь підмножини блокових пристроїв, скористайтеся функцією "guestfs_ldmtool_scan_devices".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_scan_devices

 char **
 guestfs_ldmtool_scan_devices (guestfs_h *g,
                               char *const *devices);

Ця функція шукає динамічні диски Windows. Вона повертає список ідентифікаторів (GUID) для усіх груп дисків, які було знайдено. Ці ідентифікатори можна передавати іншим функціям "guestfs_ldmtool_*".

Параметр "пристрої" є списком блокових пристроїв, на яких слід виконати пошук. Якщо список є порожнім, буде виконано сканування усіх блокових пристроїв.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_volume_hint

 char *
 guestfs_ldmtool_volume_hint (guestfs_h *g,
                              const char *diskgroup,
                              const char *volume);

Повертає поле підказки для тому із назвою "том" у групі дисків із GUID "група_дисків". Таку підказку може бути не визначено. Якщо підказку не визначено, команда поверне порожній рядок. У полі підказки часто, але не завжди, міститься назва диска у Windows, наприклад "E:".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_volume_partitions

 char **
 guestfs_ldmtool_volume_partitions (guestfs_h *g,
                                    const char *diskgroup,
                                    const char *volume);

Повертає список розділів на томі із назвою "том" у групі дисків із GUID "група_дисків".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_ldmtool_volume_type

 char *
 guestfs_ldmtool_volume_type (guestfs_h *g,
                              const char *diskgroup,
                              const char *volume);

Повертає тип тому із назвою "том" у групі дисків із GUID "група_дисків".

Можливими типами томів, які повертає ця команда є такі: "simple", "spanned", "striped", "mirrored", "raid5". Також може бути повернуто інші типи.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_lgetxattr

 char *
 guestfs_lgetxattr (guestfs_h *g,
                    const char *path,
                    const char *name,
                    size_t *size_r);

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

Зазвичай, краще отримати усі розширені атрибути файла одним викликом "guestfs_getxattrs". Втім, у реалізації деяких файлових систем у Linux є вади, які заважають отримання повного списку атрибутів. Для таких файлових систем (найпоширенішою з яких є ntfs-3g) вам доведеться визначити назви потрібних вам розширених атрибутів і викликати цю функцію.

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

Див. також "guestfs_lgetxattrs", "guestfs_getxattr", attr(5).

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.7.24)

guestfs_lgetxattrs

 struct guestfs_xattr_list *
 guestfs_lgetxattrs (guestfs_h *g,
                     const char *path);

Те саме, що і "guestfs_getxattrs", але якщо "шлях" є символічним посиланням, повертає розширені атрибути самого символічного посилання.

Ця функція повертає "struct guestfs_xattr_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_xattr_list".

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.0.59)

guestfs_list_9p

 char **
 guestfs_list_9p (guestfs_h *g);

Виводить список усіх файлових систем 9p, з'єднаних із гостьовою системою. Повертає список теґів монтування.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.11.12)

guestfs_list_devices

 char **
 guestfs_list_devices (guestfs_h *g);

Вивести список усіх блокових пристроїв.

Буде повернуто повні назви блокових пристроїв, наприклад /dev/sda.

Див. також "guestfs_list_filesystems".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 0.4)

guestfs_list_disk_labels

 char **
 guestfs_list_disk_labels (guestfs_h *g);

Якщо ви додаєте диски з використанням необов'язкового параметра "label" команди "guestfs_add_drive_opts", ви можете скористатися цією командою для прив'язування міток до простих блокових пристроїв та назв розділів (наприклад /dev/sda та /dev/sda1).

Ця команда повертає таблицю хешів, у якій ключами є мітки дисків (без префіксів /dev/disk/guestfs), а значеннями є повні назви простих блокових пристроїв та розділів (наприклад /dev/sda і /dev/sda1).

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

(Додано у 1.19.49)

guestfs_list_dm_devices

 char **
 guestfs_list_dm_devices (guestfs_h *g);

Виводить список усіх пристроїв засобу прив'язування пристроїв.

У повернутому списку міститимуться пристрої /dev/mapper/*, наприклад, пристрої, створені попереднім викликом "guestfs_luks_open".

Пристрої засобу прив'язування пристроїв, які відповідають логічним томам не буде включено до повернутого списку. Якщо вам потрібен список логічних томів, скористайтеся командою "guestfs_lvs".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.11.15)

guestfs_list_filesystems

 char **
 guestfs_list_filesystems (guestfs_h *g);

Ця команда засобу інспектування шукає усі файлові системи на розділах, блокових пристроях та логічних томах і повертає список "монтувань", де містяться дані щодо файлових систем та їхнього типу.

Повернуте значення є хешем, де ключами є пристрої, на яких містяться файлові системи, а значеннями є типи файлових систем. Приклад:

 "/dev/sda1" => "ntfs"
 "/dev/sda2" => "ext2"
 "/dev/vg_guest/lv_root" => "ext4"
 "/dev/vg_guest/lv_swap" => "swap"

Ключем не обов'язково є блоковий пристрій. Ним також може бути не зовсім прозорий рядок «mountable», який можна передавати "guestfs_mount".

Значенням може бути особливий рядок «unknown», який означає, що вміст пристрою не вдалося визначити або пристрій є порожнім. Рядок «swap» означає розділ резервної пам'яті Linux.

У libguestfs ≤ 1.36 ця команда запускає інші команди libguestfs, серед яких можуть бути команди "guestfs_mount" і "guestfs_umount". Тому її слід віддавати поближче до launch і лише тоді, коли ще нічого не змонтовано. Це обмеження було усунено у libguestfs ≥ 1.38.

Не усі файлові системи із повернутого списку є придатними до монтування. Зокрема, у списку можуть бути розділи резервної пам'яті. Крім того, ця команда не перевіряє, чи є кожна зі знайдених файлових систем коректною і придатною до монтування. Деякі із систем можуть бути придатними до монтування, але потребувати спеціальних параметрів. Файлові системи можуть належати різним логічним операційними системами (для пошуку операційних систем скористайтеся командою "guestfs_inspect_os").

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

(Додано у 1.5.15)

guestfs_list_ldm_partitions

 char **
 guestfs_list_ldm_partitions (guestfs_h *g);

Ця функція повертає усі розділи динамічних дисків Windows, які було знайдено на час запуску. Повернутим значенням є список назв пристроїв.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_list_ldm_volumes

 char **
 guestfs_list_ldm_volumes (guestfs_h *g);

Ця функція повертає усі томи динамічних дисків Windows, які було знайдено на час запуску. Повернутим значенням є список назв пристроїв.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "ldm". Див. також "guestfs_feature_available".

(Додано у 1.20.0)

guestfs_list_md_devices

 char **
 guestfs_list_md_devices (guestfs_h *g);

Вивести список усіх пристроїв md у Linux.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 1.15.4)

guestfs_list_partitions

 char **
 guestfs_list_partitions (guestfs_h *g);

Вивести усі розділи, визначені як блокові пристрої.

Буде повернуто назви пристроїв розділів повністю, наприклад /dev/sda1

Не повертає логічних томів. Для логічних томів слід викликати "guestfs_lvs".

Див. також "guestfs_list_filesystems".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 0.4)

guestfs_ll

 char *
 guestfs_ll (guestfs_h *g,
             const char *directory);

Виводить список файлів у каталозі каталог (відносно кореневого каталогу, немає поточного робочого каталогу) у форматі команди «ls -la».

Ця команда здебільшого корисна для інтерактивних сеансів. Її не призначено для випадків, коли ви намагаєтеся обробити виведений командою рядок.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 0.4)

guestfs_llz

 char *
 guestfs_llz (guestfs_h *g,
              const char *directory);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_lgetxattrs".

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

Виводить список файлів у каталозі каталог у форматі команди «ls -laZ».

Ця команда здебільшого корисна для інтерактивних сеансів. Її не призначено для випадків, коли ви намагаєтеся обробити виведений командою рядок.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.17.6)

guestfs_ln

 int
 guestfs_ln (guestfs_h *g,
             const char *target,
             const char *linkname);

Ця команда створює жорстке посилання за допомогою команди "ln".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.66)

guestfs_ln_f

 int
 guestfs_ln_f (guestfs_h *g,
               const char *target,
               const char *linkname);

Ця команда створює жорстке посилання за допомогою команди "ln -f". Наявність параметра -f вилучає посилання ("назва_посилання"), якщо таке вже існує.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.66)

guestfs_ln_s

 int
 guestfs_ln_s (guestfs_h *g,
               const char *target,
               const char *linkname);

Ця команда створює символічне посилання за допомогою команди "ln -s".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.66)

guestfs_ln_sf

 int
 guestfs_ln_sf (guestfs_h *g,
                const char *target,
                const char *linkname);

Ця команда створює символічне посилання за допомогою команди "ln -sf". Наявність параметра -f вилучає посилання ("назва_посилання"), якщо таке вже існує.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.66)

guestfs_lremovexattr

 int
 guestfs_lremovexattr (guestfs_h *g,
                       const char *xattr,
                       const char *path);

Те саме, що і "guestfs_removexattr", але якщо "path" є символічним посиланням, вилучає розширені атрибути самого символічного посилання.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.0.59)

guestfs_ls

 char **
 guestfs_ls (guestfs_h *g,
             const char *directory);

Виводить список файлів у каталозі каталог (відносно кореневого каталогу, немає поточного робочого каталогу). Записи «.» та «..» повернуто не буде, але приховані файли буде показано.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 0.4)

guestfs_ls0

 int
 guestfs_ls0 (guestfs_h *g,
              const char *dir,
              const char *filenames);

Цю спеціалізовану команду використовують для отримання списку назв файлів у каталозі "каталог". Список назв файлів буде записано до локального файла назви_файлів (у основній системі).

У файлі результатів обробки назви файлів буде відокремлено символами "\0".

Серед записів результатів не буде "." і "..". Назви файлів не упорядковуватимуться.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.19.32)

guestfs_lsetxattr

 int
 guestfs_lsetxattr (guestfs_h *g,
                    const char *xattr,
                    const char *val,
                    int vallen,
                    const char *path);

Те саме, що і "guestfs_setxattr", але якщо "path" є символічним посиланням, встановлює розширений атрибут самого символічного посилання.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.0.59)

guestfs_lstat

 struct guestfs_stat *
 guestfs_lstat (guestfs_h *g,
                const char *path);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_lstatns".

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

Повертає дані щодо файла за вказаним шляхом "шлях".

Те саме, що і "guestfs_stat", але якщо "path" є символічним посиланням, статистику буде зібрано для цього посилання, а не для запису, на який воно посилається.

Це те саме, що системний виклик lstat(2).

Ця функція повертає "struct guestfs_stat *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_stat".

(Додано у 1.9.2)

guestfs_lstatlist

 struct guestfs_stat_list *
 guestfs_lstatlist (guestfs_h *g,
                    const char *path,
                    char *const *names);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_lstatnslist".

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

Цей виклик надає змогу виконувати дію "guestfs_lstat" над декількома файлами, які зберігаються у каталозі "path". Значенням аргументу "names" є список файлів у цьому каталозі.

Команда повертає список структур статистичних даних із однозначною відповідністю до списку "назви". Якщо якоїсь із назв не існує або для якоїсь із назв не вдасться зібрати статистичні дані, для поля "st_ino" структури буде встановлено значення "-1".

Цю команду призначено для програм, яким потрібно ефективно будувати список вмісту каталогів без виконання багатьох обходів. Див. також "guestfs_lxattrlist", якщо потрібний подібний ефективний підхід для отримання розширених атрибутів.

Ця функція повертає "struct guestfs_stat_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_stat_list".

(Додано у 1.0.77)

guestfs_lstatns

 struct guestfs_statns *
 guestfs_lstatns (guestfs_h *g,
                  const char *path);

Повертає дані щодо файла за вказаним шляхом "шлях".

Те саме, що і "guestfs_statns", але якщо "path" є символічним посиланням, статистику буде зібрано для цього посилання, а не для запису, на який воно посилається.

Це те саме, що системний виклик lstat(2).

Ця функція повертає "struct guestfs_statns *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_statns".

(Додано у 1.27.53)

guestfs_lstatnslist

 struct guestfs_statns_list *
 guestfs_lstatnslist (guestfs_h *g,
                      const char *path,
                      char *const *names);

Цей виклик надає змогу виконувати дію "guestfs_lstatns" над декількома файлами, які зберігаються у каталозі "шлях". Значенням аргументу "назви" є список файлів у цьому каталозі.

Команда повертає список структур статистичних даних із однозначною відповідністю до списку "назви". Якщо якоїсь із назв не існує або для якоїсь із назв не вдасться зібрати статистичні дані, для поля "st_ino" структури буде встановлено значення "-1".

Цю команду призначено для програм, яким потрібно ефективно будувати список вмісту каталогів без виконання багатьох обходів. Див. також "guestfs_lxattrlist", якщо потрібний подібний ефективний підхід для отримання розширених атрибутів.

Ця функція повертає "struct guestfs_statns_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_statns_list".

(Додано у 1.27.53)

guestfs_luks_add_key

 int
 guestfs_luks_add_key (guestfs_h *g,
                       const char *device,
                       const char *key,
                       const char *newkey,
                       int keyslot);

Ця команда додає новий ключ на пристрій LUKS "пристрій". Ключем "ключ" є будь-який наявний ключ, його буде використано для доступу до пристрою. Значенням параметра "новий_ключ" є новий ключ, який слід додати. Значенням параметра "слот_ключів" є слот ключів, який має бути замінено.

Зауважте, що якщо у слоті "keyslot" вже міститься ключ, успішно виконати цю команду не вдасться. Вам доведеться спочатку скористатися командою "guestfs_luks_kill_slot" для вилучення наявного ключа.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Ця функція отримує параметр ключа або пароля, тобто дані, які можуть бути конфіденційними. Щоб дізнатися більше про це, ознайомтеся із розділом "КЛЮЧІ І ПАРОЛІ".

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.2)

guestfs_luks_close

 int
 guestfs_luks_close (guestfs_h *g,
                     const char *device);

Ця команда закриває пристрій LUKS, який раніше було створено за допомогою "guestfs_luks_open" або "guestfs_luks_open_ro". Значенням параметра "device" має бути назва пристрою прив'язки LUKS (тобто /dev/mapper/назва_прив'язки), а не назва підлеглого блокового пристрою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.1)

guestfs_luks_format

 int
 guestfs_luks_format (guestfs_h *g,
                      const char *device,
                      const char *key,
                      int keyslot);

Ця команда витирає наявні дані на пристрої "пристрій" і форматує пристрій як зашифрований пристрій LUKS. Значенням параметра "ключ" є початковий ключ, який додається до слоту ключів "слот". (У LUKS передбачено підтримку 8 слотів ключів, пронумерованих 0-7).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Ця функція отримує параметр ключа або пароля, тобто дані, які можуть бути конфіденційними. Щоб дізнатися більше про це, ознайомтеся із розділом "КЛЮЧІ І ПАРОЛІ".

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.2)

guestfs_luks_format_cipher

 int
 guestfs_luks_format_cipher (guestfs_h *g,
                             const char *device,
                             const char *key,
                             int keyslot,
                             const char *cipher);

Ця команда виконує ті самі дії, що і "guestfs_luks_format", але, крім того, надає вам змогу вказати використане "cipher".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Ця функція отримує параметр ключа або пароля, тобто дані, які можуть бути конфіденційними. Щоб дізнатися більше про це, ознайомтеся із розділом "КЛЮЧІ І ПАРОЛІ".

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.2)

guestfs_luks_kill_slot

 int
 guestfs_luks_kill_slot (guestfs_h *g,
                         const char *device,
                         const char *key,
                         int keyslot);

Ця команда вилучає ключ у слоті ключів "слот_ключів" із зашифрованого пристрою LUKS "пристрій". Значенням параметра "ключ" має бути один з інших ключів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Ця функція отримує параметр ключа або пароля, тобто дані, які можуть бути конфіденційними. Щоб дізнатися більше про це, ознайомтеся із розділом "КЛЮЧІ І ПАРОЛІ".

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.2)

guestfs_luks_open

 int
 guestfs_luks_open (guestfs_h *g,
                    const char *device,
                    const char *key,
                    const char *mapname);

Ця команда відкриває блоковий пристрій, який було зашифровано відповідно до стандарту Linux Unified Key Setup (LUKS).

"пристрій" — шифрований блоковий пристрій або розділ.

Засіб виклику має надати один з ключів, пов'язаних із блоковим пристроєм LUKS, у параметрі "ключ".

Ця команда створює блоковий пристрій із назвою /dev/mapper/назва_прив'язки. Читання та запис на цій блоковий пристрій відбувається із розшифровуванням та шифруванням на підлеглому пристрої "пристрій".

If this block device contains LVM volume groups, then calling "guestfs_lvm_scan" with the "activate" parameter "true" will make them visible.

Скористайтеся командою "guestfs_list_dm_devices", щоб отримати список усіх пристроїв засобу прив'язування пристроїв.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Ця функція отримує параметр ключа або пароля, тобто дані, які можуть бути конфіденційними. Щоб дізнатися більше про це, ознайомтеся із розділом "КЛЮЧІ І ПАРОЛІ".

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.1)

guestfs_luks_open_ro

 int
 guestfs_luks_open_ro (guestfs_h *g,
                       const char *device,
                       const char *key,
                       const char *mapname);

Виконує ті самі дії, що і "guestfs_luks_open", але зі створенням прив'язки, яка придатна лише для читання даних.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Ця функція отримує параметр ключа або пароля, тобто дані, які можуть бути конфіденційними. Щоб дізнатися більше про це, ознайомтеся із розділом "КЛЮЧІ І ПАРОЛІ".

Працездатність цієї функції залежить від можливості "luks". Див. також "guestfs_feature_available".

(Додано у 1.5.1)

guestfs_lvcreate

 int
 guestfs_lvcreate (guestfs_h *g,
                   const char *logvol,
                   const char *volgroup,
                   int mbytes);

Ця команда створює логічний том LVM із назвою "логічний_том" у групі томів "група_томів" із розміром "мегабайти" мегабайтів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.8)

guestfs_lvcreate_free

 int
 guestfs_lvcreate_free (guestfs_h *g,
                        const char *logvol,
                        const char *volgroup,
                        int percent);

Створює логічний том LVM із назвою /dev/група_томів/логічний_том, який використовуватиме приблизно "відсоткиt" % залишкового вільного місця у групі томів. Найпоширенішим є використання значення "відсотки" рівного 100 для створення найбільшого можливого логічного тому.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.17.18)

guestfs_lvm_canonical_lv_name

 char *
 guestfs_lvm_canonical_lv_name (guestfs_h *g,
                                const char *lvname);

Ця команда перетворює альтернативні схеми найменування логічних томів, які можуть зустрітися на практиці, на канонічні назви. Приклад: /dev/mapper/група_томів-логічний_том буде перетворено на /dev/група_томів/логічний_том.

Ця команда повертає повідомлення про помилку, якщо параметр "назва_логічного_тому" не є назвою наявного логічного тому.

Див. також "guestfs_is_lv", "guestfs_canonical_device_name".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.24)

guestfs_lvm_clear_filter

 int
 guestfs_lvm_clear_filter (guestfs_h *g);

Скасовує дію "guestfs_lvm_set_filter". LVM зможе бачити усі блокові пристрої.

Крім того, ця команда спорожняє кеш LVM і виконує сканування груп томів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.5.1)

guestfs_lvm_remove_all

 int
 guestfs_lvm_remove_all (guestfs_h *g);

Ця команда вилучає усі логічні томи, групи томів та фізичні томи LVM.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.8)

guestfs_lvm_scan

 int
 guestfs_lvm_scan (guestfs_h *g,
                   int activate);

This scans all block devices and rebuilds the list of LVM physical volumes, volume groups and logical volumes.

If the "activate" parameter is "true" then newly found volume groups and logical volumes are activated, meaning the LV /dev/VG/LV devices become visible.

When a libguestfs handle is launched it scans for existing devices, so you do not normally need to use this API. However it is useful when you have added a new device or deleted an existing device (such as when the "guestfs_luks_open" API is used).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Added in 1.39.8)

guestfs_lvm_set_filter

 int
 guestfs_lvm_set_filter (guestfs_h *g,
                         char *const *devices);

Ця команда встановлює фільтр пристроїв LVM так, що LVM зможе «бачити» лише блокові пристрої зі списку "пристрої" і ігноруватиме усі інші з'єднані блокові пристрої.

Там, де образи дисків містять дублікати фізичних томів або груп томів, ця команда корисна для того, щоб LVM ігнорувала такі дублікати і уникала конфліктів. Слід також зауважити, що існує два типи дублювання: клоновані фізичні томи або групи томів, які мають однакові UUIDs; та групи томів, які не було клоновано, але які мають однакові назви. За звичайних умов, створення таких дублікатів неможливе, але їх може бути створено за межами LVM, наприклад, внаслідок клонування образів дисків або втручання до метаданих LVM.

Крім того, ця команда спорожняє кеш LVM і виконує сканування груп томів.

Ви можете фільтрувати усі блокові пристрої або окремі розділи.

Цією командою не можна користуватися, якщо якась з груп томів використовується (наприклад, містить змонтовану файлову систему), навіть якщо ви не викидаєте за допомогою фільтрування цю групу томів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.5.1)

guestfs_lvremove

 int
 guestfs_lvremove (guestfs_h *g,
                   const char *device);

Вилучає логічний том LVM "пристрій", де "пристрій" — це шлях до логічного тому, наприклад /dev/група_томів/логічний_том.

Ви також можете вилучити усі логічні томи у групі томів, вказавши назву групи томів, /dev/група_томів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.0.13)

guestfs_lvrename

 int
 guestfs_lvrename (guestfs_h *g,
                   const char *logvol,
                   const char *newlogvol);

Перейменувати логічний том "логічний_том" на том із назвою "новий_логічний_том".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.83)

guestfs_lvresize

 int
 guestfs_lvresize (guestfs_h *g,
                   const char *device,
                   int mbytes);

Ця команда змінює розмір (розширює або стискає) наявний логічний том LVM до розміру "мегабайти". Якщо розміри тому зменшуються, дані у відкинутій у результаті зменшення розмірів частині тому буде втрачено.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.0.27)

guestfs_lvresize_free

 int
 guestfs_lvresize_free (guestfs_h *g,
                        const char *lv,
                        int percent);

Ця команда розширює наявний "логічний_том" так, що він займатиме "відсотки"% залишкового вільного місця у групі томів. Типово, ця команда викликається із значенням відсотки = 100 для розширення логічного тому на максимальний розмір, використовуючи усе вільне місце у групі томів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.3.3)

guestfs_lvs

 char **
 guestfs_lvs (guestfs_h *g);

Виводить список усіх виявлених логічних томів. Є еквівалентом команди lvs(8).

Ця команда повертає список назв пристроїв логічних томів (наприклад /dev/VolGroup00/LogVol00).

Див. також "guestfs_lvs_full", "guestfs_list_filesystems".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.4)

guestfs_lvs_full

 struct guestfs_lvm_lv_list *
 guestfs_lvs_full (guestfs_h *g);

Виводить список усіх виявлених логічних томів. Є еквівалентом команди lvs(8). «Повна» версія включає усі поля.

Ця функція повертає "struct guestfs_lvm_lv_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_lvm_lv_list".

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.4)

guestfs_lvuuid

 char *
 guestfs_lvuuid (guestfs_h *g,
                 const char *device);

Ця команда повертає UUID логічного тому LVM "пристрій".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.87)

guestfs_lxattrlist

 struct guestfs_xattr_list *
 guestfs_lxattrlist (guestfs_h *g,
                     const char *path,
                     char *const *names);

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

Повернуто буде плоский список структур xattr, який слід обробляти послідовно. Перша структура xattr завжди матиме "attrname" нульової довжини. "attrval" нульової довжини у цій структурі вказуватиме на те, що під час обробки цього файла за допомогою "lgetxattr" сталася помилка. or є рядком C, який містить десяткове число (кількість наступних атрибутів для цього файла, може бути "0"). Далі, після першої структури xattr буде розташовано нуль або більше атрибутів першого іменованого файла. Далі, дані повторюватиметься для другого та наступних файлів.

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

Ця функція повертає "struct guestfs_xattr_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_xattr_list".

Працездатність цієї функції залежить від можливості "linuxxattrs". Див. також "guestfs_feature_available".

(Додано у 1.0.77)

guestfs_max_disks

 int
 guestfs_max_disks (guestfs_h *g);

Повертає максимальну кількість дисків, які може бути додано до дескриптора (наприклад, за допомогою "guestfs_add_drive_opts" та подібних команд).

Цю функцію було додано у libguestfs 1.19.7. У попередніх версіях libguestfs діяло обмеження у 25.

Див. "МАКСИМАЛЬНА КІЛЬКІСТЬ ДИСКІВ", щоб дізнатися більше про це.

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.19.7)

guestfs_md_create

 int
 guestfs_md_create (guestfs_h *g,
                    const char *name,
                    char *const *devices,
                    ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MD_CREATE_MISSINGBITMAP, int64_t missingbitmap,
 GUESTFS_MD_CREATE_NRDEVICES, int nrdevices,
 GUESTFS_MD_CREATE_SPARE, int spare,
 GUESTFS_MD_CREATE_CHUNK, int64_t chunk,
 GUESTFS_MD_CREATE_LEVEL, const char *level,

Створює пристрій md (RAID) Linux із назвою "назва" на пристроях зі списку "пристрої".

Додатковими параметрами є:

"missingbitmap"
Бітова карта пристроїв, яких не вистачає. Якщо біт встановлено, це означає, що до масиву додано пристрій, якого не вистачає. Найменший біт відповідає першому пристрої у масиві.

Приклади:

Якщо "пристрої = ["/dev/sda"]" і "missingbitmap = 0x1", масивом-результатом має бути "[<missing>, "/dev/sda"]".

Якщо "пристрої = ["/dev/sda"]" і "missingbitmap = 0x2", масивом-результатом має бути "["/dev/sda", <missing>]".

Типовим є значення 0 (немає пристроїв, яких не вистачає).

Довжина запису "пристрої" + кількість бітів, встановлених у "missingbitmap" має дорівнювати "nrdevices" + "spare".

"nrdevices"
Кількість активних пристроїв RAID.

Якщо не встановлено, типовим значенням є довжина запису "пристрої" плюс кількість бітів, які встановлено у "missingbitmap".

"spare"
Кількість резервних пристроїв.

Якщо не встановлено, типовим значенням є 0.

"chunk"
Розмір фрагмента у байтах.
"level"
Рівень RAID, одне з таких значень: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, raid10, 10. Деякі з цих значень є синонімами, інші рівні може бути додано у майбутніх версіях.

Якщо не встановлено, типовим значенням є "raid1".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "mdadm". Див. також "guestfs_feature_available".

(Додано у 1.15.6)

guestfs_md_create_va

 int
 guestfs_md_create_va (guestfs_h *g,
                       const char *name,
                       char *const *devices,
                       va_list args);

Це «варіант з va_list» "guestfs_md_create".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_md_create_argv

 int
 guestfs_md_create_argv (guestfs_h *g,
                         const char *name,
                         char *const *devices,
                         const struct guestfs_md_create_argv *optargs);

Це «варіант з argv» "guestfs_md_create".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_md_detail

 char **
 guestfs_md_detail (guestfs_h *g,
                    const char *md);

Ця команда розкриває виведені «mdadm -DY <md>» дані. У повернутому хеші, зазвичай, будуть вказані нижче поля. Також там можуть бути інші поля.

"level"
Рівень RAID пристрою MD.
"devices"
Кількість підлеглих пристроїв у пристрої MD.
"metadata"
Використана версія метаданих.
"uuid"
UUID пристрою MD.
"name"
Назва пристрою MD.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "mdadm". Див. також "guestfs_feature_available".

(Додано у 1.15.6)

guestfs_md_stat

 struct guestfs_mdstat_list *
 guestfs_md_stat (guestfs_h *g,
                  const char *md);

Ця команда повертає список підлеглих пристроїв, з яких складається окремий програмний масив RAID пристрою "md".

Щоб отримати список пристроїв програмних RAID, скористайтеся викликом "guestfs_list_md_devices".

Кожна повернута структура відповідає одному пристрою із додатковими відомостями щодо стану:

"mdstat_device"
Назва підлеглого пристрою.
"mdstat_index"
Індекс цього пристрою у масиві.
"mdstat_flags"
Прапорці, пов'язані із цим пристроєм. Ця рядок містить (неупорядкованими) нуль або більше таких прапорців:
"W"
write-mostly
"F"
пристрій працює з помилками
"S"
пристрій є запасною частиною RAID
"R"
заміна

Ця функція повертає "struct guestfs_mdstat_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_mdstat_list".

Працездатність цієї функції залежить від можливості "mdadm". Див. також "guestfs_feature_available".

(Додано у 1.17.21)

guestfs_md_stop

 int
 guestfs_md_stop (guestfs_h *g,
                  const char *md);

Ця команда деактивує масив MD із назвою "md". Роботу пристрою буде припинено, але без знищення або занулення.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "mdadm". Див. також "guestfs_feature_available".

(Додано у 1.15.6)

guestfs_mkdir

 int
 guestfs_mkdir (guestfs_h *g,
                const char *path);

Створює каталог із назвою "шлях".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_mkdir_mode

 int
 guestfs_mkdir_mode (guestfs_h *g,
                     const char *path,
                     int mode);

Ця команда створює каталог, встановлюючи початкові права доступу до нього у значення "режим".

Для типових файлових систем Linux справжній режим доступу, який встановлюється, визначається виразом "режим & ~umask & 01777". У файлових системах, які не є природними для Linux, цей режим може визначатися у інший спосіб.

Див. також "guestfs_mkdir", "guestfs_umask"

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.77)

guestfs_mkdir_p

 int
 guestfs_mkdir_p (guestfs_h *g,
                  const char *path);

Створює каталог із назвою "шлях" зі створенням усіх потрібних проміжних каталогів. Результат подібний до результату дії команди оболонки "mkdir -p".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_mkdtemp

 char *
 guestfs_mkdtemp (guestfs_h *g,
                  const char *tmpl);

Ця команда створює тимчасовий каталог. Значенням параметра "tmpl" має бути повна назва шляху до тимчасового каталогу із завершальними шістьма символами «XXXXXX».

Приклади: «/tmp/myprogXXXXXX» або «/Temp/myprogXXXXXX». Другий варіант є придатним для файлових систем Windows.

Буде повернуто назву тимчасового каталогу, який було створено.

Тимчасовий каталог буде створено із режимом доступу 0700, його власником буде користувач root.

За вилучення тимчасового каталогу і його вмісту після використання відповідає функція виклику.

Див. також mkdtemp(3)

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.54)

guestfs_mke2fs

 int
 guestfs_mke2fs (guestfs_h *g,
                 const char *device,
                 ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MKE2FS_BLOCKSCOUNT, int64_t blockscount,
 GUESTFS_MKE2FS_BLOCKSIZE, int64_t blocksize,
 GUESTFS_MKE2FS_FRAGSIZE, int64_t fragsize,
 GUESTFS_MKE2FS_BLOCKSPERGROUP, int64_t blockspergroup,
 GUESTFS_MKE2FS_NUMBEROFGROUPS, int64_t numberofgroups,
 GUESTFS_MKE2FS_BYTESPERINODE, int64_t bytesperinode,
 GUESTFS_MKE2FS_INODESIZE, int64_t inodesize,
 GUESTFS_MKE2FS_JOURNALSIZE, int64_t journalsize,
 GUESTFS_MKE2FS_NUMBEROFINODES, int64_t numberofinodes,
 GUESTFS_MKE2FS_STRIDESIZE, int64_t stridesize,
 GUESTFS_MKE2FS_STRIPEWIDTH, int64_t stripewidth,
 GUESTFS_MKE2FS_MAXONLINERESIZE, int64_t maxonlineresize,
 GUESTFS_MKE2FS_RESERVEDBLOCKSPERCENTAGE, int reservedblockspercentage,
 GUESTFS_MKE2FS_MMPUPDATEINTERVAL, int mmpupdateinterval,
 GUESTFS_MKE2FS_JOURNALDEVICE, const char *journaldevice,
 GUESTFS_MKE2FS_LABEL, const char *label,
 GUESTFS_MKE2FS_LASTMOUNTEDDIR, const char *lastmounteddir,
 GUESTFS_MKE2FS_CREATOROS, const char *creatoros,
 GUESTFS_MKE2FS_FSTYPE, const char *fstype,
 GUESTFS_MKE2FS_USAGETYPE, const char *usagetype,
 GUESTFS_MKE2FS_UUID, const char *uuid,
 GUESTFS_MKE2FS_FORCECREATE, int forcecreate,
 GUESTFS_MKE2FS_WRITESBANDGROUPONLY, int writesbandgrouponly,
 GUESTFS_MKE2FS_LAZYITABLEINIT, int lazyitableinit,
 GUESTFS_MKE2FS_LAZYJOURNALINIT, int lazyjournalinit,
 GUESTFS_MKE2FS_TESTFS, int testfs,
 GUESTFS_MKE2FS_DISCARD, int discard,
 GUESTFS_MKE2FS_QUOTATYPE, int quotatype,
 GUESTFS_MKE2FS_EXTENT, int extent,
 GUESTFS_MKE2FS_FILETYPE, int filetype,
 GUESTFS_MKE2FS_FLEXBG, int flexbg,
 GUESTFS_MKE2FS_HASJOURNAL, int hasjournal,
 GUESTFS_MKE2FS_JOURNALDEV, int journaldev,
 GUESTFS_MKE2FS_LARGEFILE, int largefile,
 GUESTFS_MKE2FS_QUOTA, int quota,
 GUESTFS_MKE2FS_RESIZEINODE, int resizeinode,
 GUESTFS_MKE2FS_SPARSESUPER, int sparsesuper,
 GUESTFS_MKE2FS_UNINITBG, int uninitbg,

"mke2fs" використовується для створення файлових систем ext2, ext3 та ext4 на пристрої "пристрій".

Необов'язковий параметр "blockscount" визначає розмір файлової системи у блоках. Якщо його не вказано, типовим значенням буде розмір пристрою "пристрій". Зауважте, що якщо файлова система буде надто малою для того, щоб містити журнал, "mke2fs" без додаткових повідомлень створить файлову систему ext2.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.19.44)

guestfs_mke2fs_va

 int
 guestfs_mke2fs_va (guestfs_h *g,
                    const char *device,
                    va_list args);

Це «варіант з va_list» "guestfs_mke2fs".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mke2fs_argv

 int
 guestfs_mke2fs_argv (guestfs_h *g,
                      const char *device,
                      const struct guestfs_mke2fs_argv *optargs);

Це «варіант з argv» "guestfs_mke2fs".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mke2fs_J

 int
 guestfs_mke2fs_J (guestfs_h *g,
                   const char *fstype,
                   int blocksize,
                   const char *device,
                   const char *journal);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mke2fs".

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

Ця команда створює файлову систему ext2/3/4 на пристрої "пристрій" із зовнішнім журналом на розділі "журнал". Вона еквівалентна до такої команди:

 mke2fs -t тип_файлової_системи -b розмір_блоку -J device=<журнал> <пристрій>

Див. також "guestfs_mke2journal".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.68)

guestfs_mke2fs_JL

 int
 guestfs_mke2fs_JL (guestfs_h *g,
                    const char *fstype,
                    int blocksize,
                    const char *device,
                    const char *label);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mke2fs".

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

Ця команда створює файлову систему ext2/3/4 на пристрої "пристрій" із зовнішнім журналом на розділі із міткою "мітка".

Див. також "guestfs_mke2journal_L".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.68)

guestfs_mke2fs_JU

 int
 guestfs_mke2fs_JU (guestfs_h *g,
                    const char *fstype,
                    int blocksize,
                    const char *device,
                    const char *uuid);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mke2fs".

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

Ця команда створює файлову систему ext2/3/4 на пристрої "пристрій" із зовнішнім журналом на розділі із UUID "uuid".

Див. також "guestfs_mke2journal_U".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxfsuuid". Див. також "guestfs_feature_available".

(Додано у 1.0.68)

guestfs_mke2journal

 int
 guestfs_mke2journal (guestfs_h *g,
                      int blocksize,
                      const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mke2fs".

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

Ця команда створює зовнішній журнал ext2 на пристрої "пристрій". Вона еквівалентна до такої команди:

 mke2fs -O пристрій_журналу -b розмір_блоку пристрій

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.68)

guestfs_mke2journal_L

 int
 guestfs_mke2journal_L (guestfs_h *g,
                        int blocksize,
                        const char *label,
                        const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mke2fs".

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

Ця команда створює зовнішній журнал ext2 на пристрої "пристрій" з міткою "мітка".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.68)

guestfs_mke2journal_U

 int
 guestfs_mke2journal_U (guestfs_h *g,
                        int blocksize,
                        const char *uuid,
                        const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mke2fs".

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

Ця команда створює зовнішній журнал ext2 на пристрої "пристрій" із UUID "uuid".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxfsuuid". Див. також "guestfs_feature_available".

(Додано у 1.0.68)

guestfs_mkfifo

 int
 guestfs_mkfifo (guestfs_h *g,
                 int mode,
                 const char *path);

Ця команда створює FIFO (іменований канал даних) із назвою "path" і режимом доступу "mode". Це просто зручна обгортка до "guestfs_mknod".

На відміну від "guestfs_mknod", параметр "mode" має містити лише біти прав доступу.

На встановлений режим доступу впливає umask.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "mknod". Див. також "guestfs_feature_available".

(Додано у 1.0.55)

guestfs_mkfs

 int
 guestfs_mkfs (guestfs_h *g,
               const char *fstype,
               const char *device);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_mkfs_opts" без додаткових аргументів.

(Додано у 0.8)

guestfs_mkfs_opts

 int
 guestfs_mkfs_opts (guestfs_h *g,
                    const char *fstype,
                    const char *device,
                    ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MKFS_OPTS_BLOCKSIZE, int blocksize,
 GUESTFS_MKFS_OPTS_FEATURES, const char *features,
 GUESTFS_MKFS_OPTS_INODE, int inode,
 GUESTFS_MKFS_OPTS_SECTORSIZE, int sectorsize,
 GUESTFS_MKFS_OPTS_LABEL, const char *label,

Ця функція створює файлову систему на пристрої "пристрій". Типом файлової системи буде "тип_файлової_системи", наприклад "ext3".

Необов'язковими аргументами є:

"blocksize"
Розмір блоку файлової системи. Підтримувані розміри блоків залежать від типу файлової системи, але типовими є 1024, 2048 і 4096 для файлових систем ext2/3 Linux.

Для VFAT і NTFS значення параметра "розмір_блоку" обробляється як бажаний розмір кластера.

Дані щодо розмірів блоків UFS можна знайти у підручнику до mkfs.ufs(8).

"features"
Передає параметр -O зовнішній програмі mkfs.

Для деяких типів файлових систем це надає змогу вибрати додаткові можливості файлової системи. Щоб дізнатися більше, див. mke2fs(8) та mkfs.ufs(8).

Цей додатковий параметр не можна використовувати для типів файлових систем "gfs" та "gfs2".

"inode"
Передає параметр -I зовнішній програмі mke2fs(8), тобто визначає розмір inode (у поточній версії лише для файлових систем ext2/3/4).
"sectorsize"
Передає параметр -S зовнішній програмі mkfs.ufs(8), тобто визначає розмір сектора для файлової системи ufs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.8)

guestfs_mkfs_opts_va

 int
 guestfs_mkfs_opts_va (guestfs_h *g,
                       const char *fstype,
                       const char *device,
                       va_list args);

Це «варіант з va_list» "guestfs_mkfs_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mkfs_opts_argv

 int
 guestfs_mkfs_opts_argv (guestfs_h *g,
                         const char *fstype,
                         const char *device,
                         const struct guestfs_mkfs_opts_argv *optargs);

Це «варіант з argv» "guestfs_mkfs_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mkfs_b

 int
 guestfs_mkfs_b (guestfs_h *g,
                 const char *fstype,
                 int blocksize,
                 const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mkfs".

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

Цей виклик подібний до "guestfs_mkfs", але надає вам змогу контролювати розмір блоку отриманої файлової системи. Набір підтримуваних розмірів блоків залежить від типу файлової системи, але типовими є 1024, 2048 та 4096.

Для VFAT і NTFS значення параметра "розмір_блоку" обробляється як бажаний розмір кластера.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.68)

guestfs_mkfs_btrfs

 int
 guestfs_mkfs_btrfs (guestfs_h *g,
                     char *const *devices,
                     ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MKFS_BTRFS_ALLOCSTART, int64_t allocstart,
 GUESTFS_MKFS_BTRFS_BYTECOUNT, int64_t bytecount,
 GUESTFS_MKFS_BTRFS_DATATYPE, const char *datatype,
 GUESTFS_MKFS_BTRFS_LEAFSIZE, int leafsize,
 GUESTFS_MKFS_BTRFS_LABEL, const char *label,
 GUESTFS_MKFS_BTRFS_METADATA, const char *metadata,
 GUESTFS_MKFS_BTRFS_NODESIZE, int nodesize,
 GUESTFS_MKFS_BTRFS_SECTORSIZE, int sectorsize,

Створює файлову систему btrfs із можливим встановленням усіх налаштувань. Щоб дізнатися більше про додаткові параметри, ознайомтеся зі сторінкою підручника mkfs.btrfs(8).

Оскільки дані файлової системи btrfs може бути розподілено між декількома пристроями, команда приймає непорожній список пристроїв.

Для створення файлових систем скористайтеся "guestfs_mkfs".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "btrfs". Див. також "guestfs_feature_available".

(Додано у 1.17.25)

guestfs_mkfs_btrfs_va

 int
 guestfs_mkfs_btrfs_va (guestfs_h *g,
                        char *const *devices,
                        va_list args);

Це «варіант з va_list» "guestfs_mkfs_btrfs".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mkfs_btrfs_argv

 int
 guestfs_mkfs_btrfs_argv (guestfs_h *g,
                          char *const *devices,
                          const struct guestfs_mkfs_btrfs_argv *optargs);

Це «варіант з argv» "guestfs_mkfs_btrfs".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mklost_and_found

 int
 guestfs_mklost_and_found (guestfs_h *g,
                           const char *mountpoint);

Створює каталог "lost+found", зазвичай, у кореневому каталозі файлової системи ext2/3/4. "точка_монтування" є каталогом, у якому ми спробуємо створити каталог "lost+found".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.19.56)

guestfs_mkmountpoint

 int
 guestfs_mkmountpoint (guestfs_h *g,
                       const char *exemptpath);

"guestfs_mkmountpoint" і "guestfs_rmmountpoint" є спеціалізованими викликами, якими можна скористатися для створення додаткових точок монтування перед монтуванням першої файлової системи.

Ця виклики необхідні лише у дуже обмежених випадках. Основним їхнім призначенням є випадок, коли ви хочете змонтувати суміш непов'язаних і/або придатних лише для читання файлових систем разом.

Наприклад, образи компакт-дисків портативних систем часто місять «матрьошку» з файлових систем: зовнішній шар ISO, образ squashfs всередині і вкладений у нього образ ext2/3. Розпакувати такий образ у guestfish можна таким чином:

 add-ro Fedora-11-i686-Live.iso
 run
 mkmountpoint /cd
 mkmountpoint /sqsh
 mkmountpoint /ext3fs
 mount /dev/sda /cd
 mount-loop /cd/LiveOS/squashfs.img /sqsh
 mount-loop /sqsh/LiveOS/ext3fs.img /ext3fs

Внутрішню файлову систему тепер розпаковано до точки монтування /ext3fs.

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

"guestfs_umount_all" демонтує файлові системи упорядковуючи шляхи так, щоб у списку найдовші шляхи були першими. Щоб ця команда могла працювати зі створеними вручну точками монтування, системи має бути змонтовано так, щоб точки монтування із найбільшим рівнем вкладеності мали найдовші назви шляхів, як у наведеному вище прикладі.

Докладніше про це тут: https://bugzilla.redhat.com/show_bug.cgi?id=599503

Автоматична синхронізація [див. "guestfs_set_autosync", встановлюється типово на дескрипторах] може спричиняти виклик "guestfs_umount_all", коли дескриптор закривається, що теж може призвести до таких проблем.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.62)

guestfs_mknod

 int
 guestfs_mknod (guestfs_h *g,
                int mode,
                int devmajor,
                int devminor,
                const char *path);

Створює спеціальні блокові або символьні пристрої або іменовані канали (FIFO).

Параметр "режим" має визначати режим доступу з використанням стандартних сталих. Параметри "первинний_пристрій" і "вторинний_пристрій" є номерами первинного і вторинного пристроїв, які використовуються, лише під час створення спеціальних блокових та символьних пристроїв.

Зауважте, що, як і у mknod(2), значення режиму має бути результатом застосування бітового АБО до значень S_IFBLK, S_IFCHR, S_IFIFO та S_IFSOCK (інакше цей виклик просто створить звичайний файл). Ці сталі доступні у стандартних файлах заголовків Linux. Ви також можете скористатися "guestfs_mknod_b", "guestfs_mknod_c" або "guestfs_mkfifo", які є обгортками навколо цієї команди, які виконують бітове АБО і створюють відповідну сталу за вас.

На встановлений режим доступу впливає umask.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "mknod". Див. також "guestfs_feature_available".

(Додано у 1.0.55)

guestfs_mknod_b

 int
 guestfs_mknod_b (guestfs_h *g,
                  int mode,
                  int devmajor,
                  int devminor,
                  const char *path);

Створює вузол блокового пристрою із назвою "path" і режимом доступу "mode" та первинний і вторинний пристрої "devmajor" і "devminor". Це лише зручна обгортка навколо "guestfs_mknod".

На відміну від "guestfs_mknod", параметр "mode" має містити лише біти прав доступу.

На встановлений режим доступу впливає umask.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "mknod". Див. також "guestfs_feature_available".

(Додано у 1.0.55)

guestfs_mknod_c

 int
 guestfs_mknod_c (guestfs_h *g,
                  int mode,
                  int devmajor,
                  int devminor,
                  const char *path);

Створює вузол символьного пристрою із назвою "path" і режимом доступу "mode" та первинний і вторинний пристрої "devmajor" і "devminor". Це лише зручна обгортка навколо "guestfs_mknod".

На відміну від "guestfs_mknod", параметр "mode" має містити лише біти прав доступу.

На встановлений режим доступу впливає umask.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "mknod". Див. також "guestfs_feature_available".

(Додано у 1.0.55)

guestfs_mksquashfs

 int
 guestfs_mksquashfs (guestfs_h *g,
                     const char *path,
                     const char *filename,
                     ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MKSQUASHFS_COMPRESS, const char *compress,
 GUESTFS_MKSQUASHFS_EXCLUDES, char *const *excludes,

Створює файлову систему squashfs для вказаного шляху "шлях".

Необов'язковий прапорець "compress" керує стисканням. Якщо його не вказано, виведені дані буде стиснуто за допомогою "gzip". Ви також можете вказати такі рядки для вибору типу стискання squashfs: "gzip", "lzma", "lzo", "lz4", "xz".

Іншими необов'язковими параметрами є такі:

"excludes"
Список шаблонів. Файли буде виключено, якщо вони відповідатимуть якомусь із вказаних шаблонів.

Будь ласка, зауважте, що цей програмний інтерфейс може не спрацювати, якщо ним користуватися для стискання каталогів із великими файлами, зокрема такими, для яких отримана файлова система squashfs матиме об'єм понад 3 ГБ.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "squashfs". Див. також "guestfs_feature_available".

(Додано у 1.35.25)

guestfs_mksquashfs_va

 int
 guestfs_mksquashfs_va (guestfs_h *g,
                        const char *path,
                        const char *filename,
                        va_list args);

Це «варіант з va_list» "guestfs_mksquashfs".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mksquashfs_argv

 int
 guestfs_mksquashfs_argv (guestfs_h *g,
                          const char *path,
                          const char *filename,
                          const struct guestfs_mksquashfs_argv *optargs);

Це «варіант з argv» "guestfs_mksquashfs".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mkswap

 int
 guestfs_mkswap (guestfs_h *g,
                 const char *device);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_mkswap_opts" без додаткових аргументів.

(Додано у 1.0.55)

guestfs_mkswap_opts

 int
 guestfs_mkswap_opts (guestfs_h *g,
                      const char *device,
                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MKSWAP_OPTS_LABEL, const char *label,
 GUESTFS_MKSWAP_OPTS_UUID, const char *uuid,

Створює розділ резервної пам'яті на диску (swap) Linux на пристрої "пристрій".

За допомогою аргументів параметра "мітка" і "uuid" ви можете вказати мітку і/або UUID для нового розділу резервної пам'яті на диску.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.55)

guestfs_mkswap_opts_va

 int
 guestfs_mkswap_opts_va (guestfs_h *g,
                         const char *device,
                         va_list args);

Це «варіант з va_list» "guestfs_mkswap_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mkswap_opts_argv

 int
 guestfs_mkswap_opts_argv (guestfs_h *g,
                           const char *device,
                           const struct guestfs_mkswap_opts_argv *optargs);

Це «варіант з argv» "guestfs_mkswap_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mkswap_L

 int
 guestfs_mkswap_L (guestfs_h *g,
                   const char *label,
                   const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mkswap".

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

Створює розділ резервної пам'яті на диску на пристрої "пристрій" зі міткою "мітка".

Зауважте, що не можна додавати мітку резервної пам'яті на диску (swap) до блокового пристрою (наприклад, до /dev/sda), лише до розділу. Здається, це є обмеженням ядра або інструментів для роботи із розділом резервної пам'яті на диску.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.55)

guestfs_mkswap_U

 int
 guestfs_mkswap_U (guestfs_h *g,
                   const char *uuid,
                   const char *device);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_mkswap".

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

Створює розділ резервної пам'яті на диску на пристрої "пристрій" із UUID "uuid".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxfsuuid". Див. також "guestfs_feature_available".

(Додано у 1.0.55)

guestfs_mkswap_file

 int
 guestfs_mkswap_file (guestfs_h *g,
                      const char *path);

Створити файл резервної пам’яті.

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.66)

guestfs_mktemp

 char *
 guestfs_mktemp (guestfs_h *g,
                 const char *tmpl,
                 ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MKTEMP_SUFFIX, const char *suffix,

Ця команда створює тимчасовий файл. Значенням параметра "tmpl" має бути повна назва шляху до тимчасового каталогу із завершальними шістьма символами «XXXXXX».

Приклади: «/tmp/myprogXXXXXX» або «/Temp/myprogXXXXXX». Другий варіант є придатним для файлових систем Windows.

Буде повернуто назву тимчасового файла, який було створено.

Тимчасовий файл буде створено із режимом доступу 0600, його власником буде користувач root.

За вилучення тимчасового файла після використання відповідає функція виклику.

Якщо буде вказано необов'язковий параметр "suffix", до назви тимчасового файла буде додано вказаний суфікс (наприклад, ".txt").

Див. також "guestfs_mkdtemp".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.19.53)

guestfs_mktemp_va

 char *
 guestfs_mktemp_va (guestfs_h *g,
                    const char *tmpl,
                    va_list args);

Це «варіант з va_list» "guestfs_mktemp".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mktemp_argv

 char *
 guestfs_mktemp_argv (guestfs_h *g,
                      const char *tmpl,
                      const struct guestfs_mktemp_argv *optargs);

Це «варіант з argv» "guestfs_mktemp".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_modprobe

 int
 guestfs_modprobe (guestfs_h *g,
                   const char *modulename);

Завантажує модуль ядра у базовій системі.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "linuxmodules". Див. також "guestfs_feature_available".

(Додано у 1.0.68)

guestfs_mount

 int
 guestfs_mount (guestfs_h *g,
                const char *mountable,
                const char *mountpoint);

Монтує диск гостьової системи до вказаного місця у файловій системі. Назви блокових пристроїв визначаються за схемою /dev/sda, /dev/sdb тощо за порядком, у якому їх було додано до гостьової системи. Якщо на цих блокових пристроях містяться розділи, вони матимуть звичні назви (наприклад /dev/sda1). Крім того, можна використовувати назви у стилі LVM /dev/VG/LV або рядки «mountable», які повертають команди "guestfs_list_filesystems" та "guestfs_inspect_get_mountpoints".

Правила є тими самими, що і для mount(2): файлову систему має бути спочатку змонтовано до /, а вже потім мають монтуватися інші файлові системи. Інші файлові системи може бути змонтовано лише до каталогів, які вже створено у системі.

Змонтована файлова система є придатною до запису, якщо є достатні права доступу до підлеглого пристрою.

До версії libguestfs 1.13.16 цей виклик неявним чином додавав параметри монтування "sync" та "noatime". Використання параметра "sync" значно уповільнювало запис і спричиняло значні проблеми для користувачів. Якщо ваша програма має працювати із застарілими версіями libguestfs, краще скористайтеся "guestfs_mount_options" (використовуючи порожній рядок як перший параметр, якщо ви не хочете визначати ніяких нетипових параметрів монтування).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 0.3)

guestfs_mount_9p

 int
 guestfs_mount_9p (guestfs_h *g,
                   const char *mounttag,
                   const char *mountpoint,
                   ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MOUNT_9P_OPTIONS, const char *options,

Монтує файлову систему virtio-9p із міткою "мітка_монтування" до каталогу "точка_монтування".

Якщо потрібно, до параметрів буде автоматично додано "trans=virtio". Усі інші потрібні параметри можна передати за допомогою необов'язкового параметра "options".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.11.12)

guestfs_mount_9p_va

 int
 guestfs_mount_9p_va (guestfs_h *g,
                      const char *mounttag,
                      const char *mountpoint,
                      va_list args);

Це «варіант з va_list» "guestfs_mount_9p".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mount_9p_argv

 int
 guestfs_mount_9p_argv (guestfs_h *g,
                        const char *mounttag,
                        const char *mountpoint,
                        const struct guestfs_mount_9p_argv *optargs);

Це «варіант з argv» "guestfs_mount_9p".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mount_local

 int
 guestfs_mount_local (guestfs_h *g,
                      const char *localmountpoint,
                      ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_MOUNT_LOCAL_READONLY, int readonly,
 GUESTFS_MOUNT_LOCAL_OPTIONS, const char *options,
 GUESTFS_MOUNT_LOCAL_CACHETIMEOUT, int cachetimeout,
 GUESTFS_MOUNT_LOCAL_DEBUGCALLS, int debugcalls,

Цей виклик експортує доступну для libguestfs файлову систему до локальної точки монтування (каталогу) із назвою "локальна_точка_монтування". Звичайні запити щодо читання і запису до файлів і каталогів у каталозі "локальна_точка_монтування" переспрямовуватимуться через libguestfs.

Якщо для необов'язкового прапорця "readonly" встановлено значення true, спроби запису до файлової системи призводитимуть до помилки "EROFS".

Аргументом "options" має бути список параметрів монтування, відокремлених комами. Корисну інформацію щодо параметрів можна знайти на сторінці підручника щодо guestmount(1).

"cachetimeout" встановлює час очікування у секундах на отримання записів каталогу кешування. Типовим значенням є 60 секунд. Див. guestmount(1), щоб дізнатися більше.

Якщо для параметра "debugcalls" встановлено значення true, для кожного виклику FUSE створюються додаткові діагностичні дані.

Коли "guestfs_mount_local" повертає керування, файлова система готова, але не обробляє запити (доступ до неї блокуватиметься). Вам слід викликати "guestfs_mount_local_run", щоб запустити основний цикл обробки.

Із повною документацією можна ознайомитися у розділі "ЛОКАЛЬНЕ МОНТУВАННЯ".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.17.22)

guestfs_mount_local_va

 int
 guestfs_mount_local_va (guestfs_h *g,
                         const char *localmountpoint,
                         va_list args);

Це «варіант з va_list» "guestfs_mount_local".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mount_local_argv

 int
 guestfs_mount_local_argv (guestfs_h *g,
                           const char *localmountpoint,
                           const struct guestfs_mount_local_argv *optargs);

Це «варіант з argv» "guestfs_mount_local".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_mount_local_run

 int
 guestfs_mount_local_run (guestfs_h *g);

Виконує основний цикл обробки, який перетворює виклики ядра на виклики libguestfs.

Цю команду слід викликати, лише якщо успішно виконано "guestfs_mount_local". Виклик команди не поверне керування, доки файлову систему не буде змонтовано.

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

Ви можете викликати цю команду із іншого потоку обробки ніж той, з якого викликано "guestfs_mount_local", виконуючи звичні правила щодо роботи з декількома потоками обробки і libguestfs (див. "ОБРОБКА У ДЕКІЛЬКА ДЕСКРПИТОРІВ І ПОТОКІВ").

Із повною документацією можна ознайомитися у розділі "ЛОКАЛЬНЕ МОНТУВАННЯ".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.17.22)

guestfs_mount_loop

 int
 guestfs_mount_loop (guestfs_h *g,
                     const char *file,
                     const char *mountpoint);

За допомогою цієї команди ви можете змонтувати файл (образ файлової системи у файлі) до точки монтування. Це точний еквівалент команди "mount -o loop файл точка_монтування".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.54)

guestfs_mount_options

 int
 guestfs_mount_options (guestfs_h *g,
                        const char *options,
                        const char *mountable,
                        const char *mountpoint);

Те саме, що і команда "guestfs_mount", але надає вам змогу встановити параметри монтування, подібно до параметра команди mount(8) -o.

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.10)

guestfs_mount_ro

 int
 guestfs_mount_ro (guestfs_h *g,
                   const char *mountable,
                   const char *mountpoint);

Те саме, що і команда "guestfs_mount", але монтує файлову систему у режимі лише читання (використовує параметр -o ro).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.10)

guestfs_mount_vfs

 int
 guestfs_mount_vfs (guestfs_h *g,
                    const char *options,
                    const char *vfstype,
                    const char *mountable,
                    const char *mountpoint);

Те саме, що і команда "guestfs_mount", але надає вам змогу встановити параметри монтування і тип файлової системи, подібно до параметрів команди mount(8) -o і -t.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.10)

guestfs_mountable_device

 char *
 guestfs_mountable_device (guestfs_h *g,
                           const char *mountable);

Повертає назву пристрою для монтування. У переважній кількості випадків значенням параметра «монтування» є назва пристрою.

Втім, це не стосується підтомів btrfs, де значенням параметра «монтування» є поєднання назви пристрою та шляху до підтому (див. також "guestfs_mountable_subvolume", щоб дізнатися про те, як визначити шлях до підтому для монтування, якщо такий передбачено).

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.33.15)

guestfs_mountable_subvolume

 char *
 guestfs_mountable_subvolume (guestfs_h *g,
                              const char *mountable);

Повертає шлях до підтому для монтування. Монтування підтомів btrfs є поєднаннями назви пристрою і шляху до підтому (див. також "guestfs_mountable_device", щоб дізнатися про те, як визначити назву пристрою для монтування).

Якщо монтування є не підтомом btrfs, ця функція завершує роботу із помилкою і встановлює для "errno" значення "EINVAL".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.33.15)

guestfs_mountpoints

 char **
 guestfs_mountpoints (guestfs_h *g);

Цей виклик подібний до "guestfs_mounts". Виклик повертає список пристроїв. Запис списку є таблицею хешів (картою) з назви пристрою і каталогу, до якого змонтовано пристрій.

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Масив рядків завжди матиме довжину "2n+1", значення "n" ключів і значень йтимуть одне за одним послідовно, завершуючись кінцевим записом NULL. Після використання слід звільнити рядки і масив.

(Додано у 1.0.62)

guestfs_mounts

 char **
 guestfs_mounts (guestfs_h *g);

Повертає список поточних змонтованих файлових систем. Результатом виконання є список пристроїв (наприклад, /dev/sda1, /dev/VG/LV).

Деякі внутрішні монтування не буде включено до списку.

Див. також "guestfs_mountpoints"

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

(Додано у 0.8)

guestfs_mv

 int
 guestfs_mv (guestfs_h *g,
             const char *src,
             const char *dest);

Пересуває файл з адреси "джерело" до адреси "призначення", де значенням "призначення" є або назва файла призначення, або назва каталогу призначення.

Див. також "guestfs_rename".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.18)

guestfs_nr_devices

 int
 guestfs_nr_devices (guestfs_h *g);

Повертає кількість усіх доданих блокових пристроїв. Це та сама кількість пристроїв, яку було б повернуто, якби ви викликали "guestfs_list_devices".

Щоб визначити максимальну кількість пристроїв, які може бути додано, викличте "guestfs_max_disks".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.19.15)

guestfs_ntfs_3g_probe

 int
 guestfs_ntfs_3g_probe (guestfs_h *g,
                        int rw,
                        const char *device);

Ця команда запускає програму ntfs-3g.probe(8), яка зондує пристрій NTFS "пристрій" на можливість монтування. (Не усі томи NTFS може бути змонтовано для читання і запису, а деякі не може бути змонтовано взагалі).

"rw" є булевим прапорцем. Встановіть значення true, якщо ви хочете перевірити, чи можна змонтувати том у режимі читання-запису. Встановіть значення false, якщо ви хочете перевірити, чи може бути змонтовано тому у режимі лише читання.

Повертає ціле значення рівне 0, якщо дію з монтування може бути виконано успішно, або рівне якомусь іншому значенню, документацію щодо якого можна знайти на сторінці підручника щодо ntfs-3g.probe(8).

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "ntfs3g". Див. також "guestfs_feature_available".

(Додано у 1.0.43)

guestfs_ntfscat_i

 int
 guestfs_ntfscat_i (guestfs_h *g,
                    const char *device,
                    int64_t inode,
                    const char *filename);

Отримати файл, заданий за допомогою inode, з файлової системи NTFS і зберегти його з назвою назва файла на локальній машині.

Надає змогу отримувати недоступні у інший спосіб файли, зокрема файли з теки $Extend.

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Команда, виконання якої триває довго, може створювати повідомлення щодо поступу виконання, які програма, яка викликає команду, може показувати за допомогою панелі або індикатора поступу. Щоб отримувати такі повідомлення, програма має зареєструвати зворотний виклик події поступу. Див. "GUESTFS_EVENT_PROGRESS".

(Додано у 1.33.14)

guestfs_ntfsclone_in

 int
 guestfs_ntfsclone_in (guestfs_h *g,
                       const char *backupfile,
                       const char *device);

Відновити "backupfile" (створений попереднім викликом "guestfs_ntfsclone_out") на пристрої "device" із перезаписом усього наявного вмісту пристрою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ntfs3g". Див. також "guestfs_feature_available".

(Додано у 1.17.9)

guestfs_ntfsclone_out

 int
 guestfs_ntfsclone_out (guestfs_h *g,
                        const char *device,
                        const char *backupfile,
                        ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_NTFSCLONE_OUT_METADATAONLY, int metadataonly,
 GUESTFS_NTFSCLONE_OUT_RESCUE, int rescue,
 GUESTFS_NTFSCLONE_OUT_IGNOREFSCHECK, int ignorefscheck,
 GUESTFS_NTFSCLONE_OUT_PRESERVETIMESTAMPS, int preservetimestamps,
 GUESTFS_NTFSCLONE_OUT_FORCE, int force,

Записати дані файлової системи NTFS з пристрою "пристрій" до локального файла "файл_резервної_копії". Для файла резервної копії буде використано спеціальний формат, який використовується програмою ntfsclone(8).

Якщо для необов'язкового прапорця "metadataonly" встановлено значення true, збережено буде лише метадані. Усі дані користувача буде втрачено (такий режим є корисним для діагностування проблем файлової системи).

Опис необов'язкових прапорців "rescue", "ignorefscheck", "preservetimestamps" та "force" можна знайти на сторінці підручника ntfsclone(8).

Використовує "guestfs_ntfsclone_in" для відновлення резервної копії у файлі на пристрої libguestfs.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ntfs3g". Див. також "guestfs_feature_available".

(Додано у 1.17.9)

guestfs_ntfsclone_out_va

 int
 guestfs_ntfsclone_out_va (guestfs_h *g,
                           const char *device,
                           const char *backupfile,
                           va_list args);

Це «варіант з va_list» "guestfs_ntfsclone_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_ntfsclone_out_argv

 int
 guestfs_ntfsclone_out_argv (guestfs_h *g,
                             const char *device,
                             const char *backupfile,
                             const struct guestfs_ntfsclone_out_argv *optargs);

Це «варіант з argv» "guestfs_ntfsclone_out".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_ntfsfix

 int
 guestfs_ntfsfix (guestfs_h *g,
                  const char *device,
                  ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_NTFSFIX_CLEARBADSECTORS, int clearbadsectors,

Ця команда виправляє деякі фундаментальні проблеми NTFS, відновлює початковий стан журналу NTFS і додає заплановану перевірку коректності NTFS під час першого ж завантаження до Windows.

Ця команда не є еквівалентом "chkdsk" Windows. Вона не виконує перевірки коректності файлової системи.

За допомогою необов'язкового прапорця "clearbadsectors" можна спорожнити список помилкових секторів. Це корисно при клонуванні диска із помилковими секторами на новий диск.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ntfs3g". Див. також "guestfs_feature_available".

(Додано у 1.17.9)

guestfs_ntfsfix_va

 int
 guestfs_ntfsfix_va (guestfs_h *g,
                     const char *device,
                     va_list args);

Це «варіант з va_list» "guestfs_ntfsfix".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_ntfsfix_argv

 int
 guestfs_ntfsfix_argv (guestfs_h *g,
                       const char *device,
                       const struct guestfs_ntfsfix_argv *optargs);

Це «варіант з argv» "guestfs_ntfsfix".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_ntfsresize

 int
 guestfs_ntfsresize (guestfs_h *g,
                     const char *device);

Цю функцію реалізовано для зворотної сумісності із ранішими версіями libguestfs. Вона просто викликає "guestfs_ntfsresize_opts" без додаткових аргументів.

(Додано у 1.3.2)

guestfs_ntfsresize_opts

 int
 guestfs_ntfsresize_opts (guestfs_h *g,
                          const char *device,
                          ...);

У цьому виклику можна вказати список необов'язкових аргументів. Ви можете не використати жодного або використати декілька з вказаних нижче пар параметрів і завершити список за допомогою "-1". Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

 GUESTFS_NTFSRESIZE_OPTS_SIZE, int64_t size,
 GUESTFS_NTFSRESIZE_OPTS_FORCE, int force,

Ця команда змінює розмір файлової системи NTFS, розширюючи або стискаючи її до розміру підлеглого пристрою.

Додатковими параметрами є:

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

Після виконання дії зі зміни розміру файлову систему завжди буде позначено як таку, яка потребує перевірки на коректність (з міркувань безпеки). Вам слід завантажити Windows, щоб виконати перевірку і зняти позначення. Якщо ви не встановлювали параметр "force", "guestfs_ntfsresize" не можна буде викликати декілька разів поспіль для однієї файлової системи без завантаження Windows між діями зі зміни розміру.

Див. також ntfsresize(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ntfsprogs". Див. також "guestfs_feature_available".

(Додано у 1.3.2)

guestfs_ntfsresize_opts_va

 int
 guestfs_ntfsresize_opts_va (guestfs_h *g,
                             const char *device,
                             va_list args);

Це «варіант з va_list» "guestfs_ntfsresize_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_ntfsresize_opts_argv

 int
 guestfs_ntfsresize_opts_argv (guestfs_h *g,
                               const char *device,
                               const struct guestfs_ntfsresize_opts_argv *optargs);

Це «варіант з argv» "guestfs_ntfsresize_opts".

Див. "ВИКЛИКИ ІЗ НЕОБОВ'ЯЗКОВИМИ АРГУМЕНТАМИ".

guestfs_ntfsresize_size

 int
 guestfs_ntfsresize_size (guestfs_h *g,
                          const char *device,
                          int64_t size);

Ця функція вважається застарілою. У новому коді замість неї слід використовувати "guestfs_ntfsresize".

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

Ця команда виконує ті самі дії, що і "guestfs_ntfsresize", але вона надає вам змогу вказати новий розмір (у байтах) явним чином.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "ntfsprogs". Див. також "guestfs_feature_available".

(Додано у 1.3.14)

guestfs_parse_environment

 int
 guestfs_parse_environment (guestfs_h *g);

Виконує обробку середовища програми і встановлює прапорців у дескрипторі відповідним чином. Наприклад, якщо "LIBGUESTFS_DEBUG=1", у дескрипторі буде встановлено прапорець «verbose».

У більшості програм потреби у виконанні цієї дії немає Дія неявним чином виконується під час виклику "guestfs_create".

Див "ЗМІННІ СЕРЕДОВИЩА", де наведено список змінних середовища, які впливають на засоби обробки libguestfs. Див. також "guestfs_create_flags" та guestfs_parse_environment_list.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.19.53)

guestfs_parse_environment_list

 int
 guestfs_parse_environment_list (guestfs_h *g,
                                 char *const *environment);

Обробляє список рядків у аргументі "середовище" і встановлює відповідним чином прапорці у дескрипторі. Наприклад, якщо у списку є рядок "LIBGUESTFS_DEBUG=1", у дескрипторі буде встановлено прапорець «verbose».

Те саме, що і "guestfs_parse_environment", але обробляє явним список рядків, замість середовища програми.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.19.53)

guestfs_part_add

 int
 guestfs_part_add (guestfs_h *g,
                   const char *device,
                   const char *prlogex,
                   int64_t startsect,
                   int64_t endsect);

Ця команда додає розділ на пристрої "device". Якщо на пристрої немає таблиці розділів, спочатку слід викликати "guestfs_part_init".

Значенням параметра "prlogex" є тип розділу. Зазвичай, вам слід передати тип "p" або "primary", але у таблицях розділів MBR також передбачено підтримку типів розділів "l" (або "logical") і "e" (або "extended").

Значеннями параметрів "початковий_сектор" і "кінцевий_сектор" є початок і кінець розділу, вказані за номерами секторів. Значенням параметра "кінцевий_сектор" може бути від'ємне значення, що означає, що сектори слід лічити з кінця диска ("-1" означає «останній сектор»).

Створення розділу, який займатиме увесь диск є непростою справою. Для виконання цього завдання скористайтеся "guestfs_part_disk".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.78)

guestfs_part_del

 int
 guestfs_part_del (guestfs_h *g,
                   const char *device,
                   int partnum);

Ця команда вилучає розділ із номером "номер_розділу" на пристрої "пристрій".

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

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.2)

guestfs_part_disk

 int
 guestfs_part_disk (guestfs_h *g,
                    const char *device,
                    const char *parttype);

Ця команда є простою комбінацією "guestfs_part_init" з наступною "guestfs_part_add" для створення єдиного основного розділу, який займатиме увесь диск.

Значенням параметра "parttype" є тип таблиці розділів, зазвичай, "mbr" або "gpt", але можливі і інші значення, описані у довідці з "guestfs_part_init".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.78)

guestfs_part_expand_gpt

 int
 guestfs_part_expand_gpt (guestfs_h *g,
                          const char *device);

Пересуває резервні копії структур даних GPT у кінець диска. Корисно у випадку розширення образу на місці, оскільки простір на диску після резервної копії заголовка GPT не можна використовувати. Еквівалент "sgdisk -e".

Див. також sgdisk(8).

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.33.2)

guestfs_part_get_bootable

 int
 guestfs_part_get_bootable (guestfs_h *g,
                            const char *device,
                            int partnum);

Ця команда повертає true, якщо для розділу "номер_розділу" на пристрої "пристрій" встановлено прапорець можливості завантаження.

Див. також "guestfs_part_set_bootable".

Ця функція повертає значення true з C у разі успіху і -1 у разі помилки.

(Додано у 1.3.2)

guestfs_part_get_disk_guid

 char *
 guestfs_part_get_disk_guid (guestfs_h *g,
                             const char *device);

Повертає ідентифікатор диска (GUID) пристрою "пристрій" із таблицею розділів GPT. Для інших типів таблиць розділів поведінку команди не визначено.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.33.2)

guestfs_part_get_gpt_attributes

 int64_t
 guestfs_part_get_gpt_attributes (guestfs_h *g,
                                  const char *device,
                                  int partnum);

Повертає прапорці атрибутів вказаного за номером розділу GPT "номер_розділу". Повертає помилку для розділів MBR.

У разі помилки цією функцією буде повернуто -1.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.21.1)

guestfs_part_get_gpt_guid

 char *
 guestfs_part_get_gpt_guid (guestfs_h *g,
                            const char *device,
                            int partnum);

Повертає GUID вказаного за номером розділу GPT "номер_розділу".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.29.25)

guestfs_part_get_gpt_type

 char *
 guestfs_part_get_gpt_type (guestfs_h *g,
                            const char *device,
                            int partnum);

Повертає GUID типу вказаного за номером розділу GPT "номер_розділу". Для розділів MBR повертає відповідний GUID для типу MBR. Для інших типів розділів поведінку не визначено.

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.21.1)

guestfs_part_get_mbr_id

 int
 guestfs_part_get_mbr_id (guestfs_h *g,
                          const char *device,
                          int partnum);

Повертає байт типу MBR (також відомий як байт ID) для вказаного за номером розділу "номер_розділу".

Зауважте, що байти типу мають лише розділи MBR (застарілі розділи у стилі DOS). Ви отримаєте невизначені результати для інших типів таблиць розділів (див. "guestfs_part_get_parttype").

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.3.2)

guestfs_part_get_mbr_part_type

 char *
 guestfs_part_get_mbr_part_type (guestfs_h *g,
                                 const char *device,
                                 int partnum);

Повертає тип розділу MBR, вказаного за номером "номер_розділу", на пристрої "пристрій".

Повертає "primary", "logical" або "extended".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.29.32)

guestfs_part_get_name

 char *
 guestfs_part_get_name (guestfs_h *g,
                        const char *device,
                        int partnum);

Ця команда отримує назву розділу на вказаному за номером розділі "номер розділу" на пристрої "пристрій". Зауважте, що нумерація розділів розпочинається з 1.

Назву розділу можна прочитати лише для певних типів таблиць розділів. Це працює для таблиць "gpt", але не для таблиць "mbr".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.25.33)

guestfs_part_get_parttype

 char *
 guestfs_part_get_parttype (guestfs_h *g,
                            const char *device);

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

Серед типових повернутих значень: "msdos" (таблиця розділів MBR у стилі DOS/Windows), "gpt" (таблиця розділів у стилі GPT/EFI). Можливі також інші значення, але вони є рідкісними. Повний список можна знайти у розділі щодо "guestfs_part_init".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.78)

guestfs_part_init

 int
 guestfs_part_init (guestfs_h *g,
                    const char *device,
                    const char *parttype);

Ця команда створює порожню таблицю розділів на пристрої "пристрій", використовуючи тип розділів із наведеного нижче списку. Зазвичай, значенням параметра "тип_розділу" має бути "msdos" або "gpt" (для великих дисків).

Спочатку на пристрої немає розділів. Після цієї команди вам слід викликати "guestfs_part_add" для кожного потрібного вам розділу.

Можливі значення для параметра "тип_розділу":

Таблиця розділів EFI / GPT Intel.

Цей варіант є рекомендованим для розділів із розміром >= 2 ТБ, доступ до яких здійснюватиметься з Linux та заснованої на архітектурі Intel Mac OS X. Крім того, цей варіант має обмежену зворотну сумісність із форматом "mbr".

Стандартний для ПК формат «Master Boot Record» (MBR), який використовувався MS-DOS і Windows. Цей тип розділу працюватиме лише для пристроїв, розмір яких не перевищує 2 ТБ. Для дисків більшого розміру ми рекомендуємо скористатися "gpt".

Для інших типів таблиць розділів це теж може працювати, але їхньої підтримки не передбачено. Це зокрема:

Мітки дисків AIX.
Формат "Rigid Disk Block" Amiga.
Мітки дисків BSD.
DASD, використовувалися у мейнфреймах IBM.
Томи MIPS/SGI.
Старий формат розділів Mac. Сучасні системи Mac використовують "gpt".
Формат NEC PC-98, поширений у Японії.
Мітки дисків Sun.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.78)

guestfs_part_list

 struct guestfs_partition_list *
 guestfs_part_list (guestfs_h *g,
                    const char *device);

Ця команда обробляє таблицю розділів пристрою "пристрій" і повертає список знайдених розділів.

Поля повернутої структури:

Номер розділу, відлік від 1.
Позиція початку розділу у байтах. Для отримання позиції у секторах вам слід поділити це значення на розмір сектора, див. "guestfs_blockdev_getss".
Позиція завершення розділу у байтах.
Розмір розділу у байтах.

Ця функція повертає "struct guestfs_partition_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_partition_list".

(Додано у 1.0.78)

guestfs_part_resize

 int
 guestfs_part_resize (guestfs_h *g,
                      const char *device,
                      int partnum,
                      int64_t endsect);

Ця команда змінює розмір розділу із номером "номер_розділу" на пристрої "пристрій", посуваючи позицію кінця розділу.

Зауважте, що ця команда не вносить змін до файлових систем на розділі. Якщо вам потрібно змінити розмір файлової системи, вам слід скористатися командами зміни розмірів файлових систем, наприклад "guestfs_resize2fs".

Якщо ви збільшуєте розміри розділу, далі вам слід збільшити розміри файлової системи. Якщо ж ви зменшуєте розміри розділу, спочатку вам слід зменшити розміри файлової системи на ньому.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.37.20)

guestfs_part_set_bootable

 int
 guestfs_part_set_bootable (guestfs_h *g,
                            const char *device,
                            int partnum,
                            int bootable);

Ця команда встановлює прапорець можливості завантаження на вказаному за номером розділі "номер розділу" на пристрої "пристрій". Зауважте, що нумерація розділів розпочинається з 1.

Прапорець можливості завантаження використовується певними операційними системами (найпоширенішою з яких є Windows) для визначення розділу, з якого слід виконувати завантаження. Він ніяким чином не є універсальним.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.78)

guestfs_part_set_disk_guid

 int
 guestfs_part_set_disk_guid (guestfs_h *g,
                             const char *device,
                             const char *guid);

Встановлює ідентифікатор диска (GUID) пристрою із таблицею розділів GPT "пристрій" у значення "guid". Повертає помилку, якщо таблицею розділів пристрою "пристрій" не є GPT або якщо "guid" не є коректним GUID.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.33.2)

guestfs_part_set_disk_guid_random

 int
 guestfs_part_set_disk_guid_random (guestfs_h *g,
                                    const char *device);

Встановлює ідентифікатор диска (GUID) пристрою із таблицею розділів GPT "пристрій" у створене випадковим чином значення. Повертає помилку, якщо таблицею розділів пристрою "пристрій" не є GPT.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.33.2)

guestfs_part_set_gpt_attributes

 int
 guestfs_part_set_gpt_attributes (guestfs_h *g,
                                  const char *device,
                                  int partnum,
                                  int64_t attributes);

Встановлює прапорці атрибутів вказаного за номером розділу GPT "номер_розділу" у значення "атрибути". Повертає помилку, якщо таблицею розділів пристрою "пристрій" не є GPT.

Див. https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_entries, де наведено корисний список атрибутів розділів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.21.1)

guestfs_part_set_gpt_guid

 int
 guestfs_part_set_gpt_guid (guestfs_h *g,
                            const char *device,
                            int partnum,
                            const char *guid);

Встановлює GUID вказаного за номером "номер_розділу" пристрою із таблицею розділів GPT "пристрій" у значення "guid". Повертає помилку, якщо таблицею розділів пристрою "пристрій" не є GPT або якщо "guid" не є коректним GUID.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.29.25)

guestfs_part_set_gpt_type

 int
 guestfs_part_set_gpt_type (guestfs_h *g,
                            const char *device,
                            int partnum,
                            const char *guid);

Встановлює GUID типу пристрою вказаного за номером "номер_розділу" пристрою із таблицею розділів GPT у значення "guid". Повертає помилку, якщо таблицею розділів пристрою "пристрій" не є GPT або якщо "guid" не є коректним GUID.

Див. http://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs, де наведено корисний список GUID типів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "gdisk". Див. також "guestfs_feature_available".

(Додано у 1.21.1)

guestfs_part_set_mbr_id

 int
 guestfs_part_set_mbr_id (guestfs_h *g,
                          const char *device,
                          int partnum,
                          int idbyte);

Встановлює байт типу MBR (також відомий як байт ID) для вказаного за номером розділу "номер_розділу" у значення "ід_байт". Зауважте, що байти типів у більшій частині документації є насправді шістнадцятковими числами, але фігурують у тексті без початкового «0x», що може ввести читача в оману.

Зауважте, що байти типу мають лише розділи MBR (застарілі розділи у стилі DOS). Ви отримаєте невизначені результати для інших типів таблиць розділів (див. "guestfs_part_get_parttype").

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.3.2)

guestfs_part_set_name

 int
 guestfs_part_set_name (guestfs_h *g,
                        const char *device,
                        int partnum,
                        const char *name);

Ця команда встановлює назву розділу на вказаному за номером розділі "номер розділу" на пристрої "пристрій". Зауважте, що нумерація розділів розпочинається з 1.

Назву розділу можна встановити лише для певних типів таблиць розділів. Це працює для таблиць "gpt", але не для таблиць "mbr".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.78)

guestfs_part_to_dev

 char *
 guestfs_part_to_dev (guestfs_h *g,
                      const char *partition);

Цій функції передається назва розділу (наприклад «/dev/sdb1»), вона вилучає номер розділу, повертаючи назву розділу (наприклад «/dev/sdb»).

Іменований розділ має існувати, наприклад, як рядок, який повертає "guestfs_list_partitions".

Див. також "guestfs_part_to_partnum", "guestfs_device_index".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.5.15)

guestfs_part_to_partnum

 int
 guestfs_part_to_partnum (guestfs_h *g,
                          const char *partition);

Цій функції передається назва розділу (наприклад «/dev/sdb1»), вона повертає номер розділу (наприклад 1).

Іменований розділ має існувати, наприклад, як рядок, який повертає "guestfs_list_partitions".

Див. також "guestfs_part_to_dev".

У разі помилки цією функцією буде повернуто -1.

(Додано у 1.13.25)

guestfs_ping_daemon

 int
 guestfs_ping_daemon (guestfs_h *g);

Це зонд для тестування фонової служби guestfs, запущеної у базовій системі libguestfs. Виклик цієї служби перевіряє, чи відповідає фонова служба на луна-повідомлення, ніяк інакше не впливаючи на роботу фонової служби або долучених блокових пристроїв.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

(Додано у 1.0.18)

guestfs_pread

 char *
 guestfs_pread (guestfs_h *g,
                const char *path,
                int count,
                int64_t offset,
                size_t *size_r);

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

Команда може прочитати менше байтів, ніж було вказано у параметрах команди. Щоб дізнатися більше про це, ознайомтеся зі сторінкою підручника щодо системного виклику pread(2).

Див. також "guestfs_pwrite", "guestfs_pread_device".

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.0.77)

guestfs_pread_device

 char *
 guestfs_pread_device (guestfs_h *g,
                       const char *device,
                       int count,
                       int64_t offset,
                       size_t *size_r);

За допомогою цієї команди ви можете прочитати частину вмісту блокового пристрою. Вона читає "кількість" байтів з пристрою "пристрій", починаючи з позиції "відступ".

Команда може прочитати менше байтів, ніж було вказано у параметрах команди. Щоб дізнатися більше про це, ознайомтеся зі сторінкою підручника щодо системного виклику pread(2).

Див. також "guestfs_pread".

Ця функція повертає рядок або NULL, якщо станеться помилка. Розмір повернутого буфера буд записано до *size_r. Після використання функція, яка викликає цю функцію, має звільнити повернутий буфер.

Через обмеження протоколу передавання повідомлень існує граничний об'єм повідомлення, щось у діапазоні від 2 МБ до 4 МБ. Див. "ОБМЕЖЕННЯ ПРОТОКОЛУ".

(Додано у 1.5.21)

guestfs_pvchange_uuid

 int
 guestfs_pvchange_uuid (guestfs_h *g,
                        const char *device);

Створити новий випадковий UUID для фізичного тому "пристрій".

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.19.26)

guestfs_pvchange_uuid_all

 int
 guestfs_pvchange_uuid_all (guestfs_h *g);

Створити нові випадкові UUID для всіх фізичних томів.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.19.26)

guestfs_pvcreate

 int
 guestfs_pvcreate (guestfs_h *g,
                   const char *device);

Ця команда створює фізичний том LVM із назвою "пристрій", де "пристрій", зазвичай, має бути назвою розділу, наприклад /dev/sda1.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.8)

guestfs_pvremove

 int
 guestfs_pvremove (guestfs_h *g,
                   const char *device);

Ця команда витирає вміст фізичного тому "пристрій" так, що LVM більше його не розпізнає.

У цій реалізації використано команду "pvremove", яка забороняє витирати фізичні томи, які містять будь-які групи томів. Тому вам слід спочатку вилучити групи.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.0.13)

guestfs_pvresize

 int
 guestfs_pvresize (guestfs_h *g,
                   const char *device);

Ця команда змінює розмір (розширює або стискає) наявний логічний том LVM так, щоб він відповідав за розміром новому розміру базового пристрою.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.0.26)

guestfs_pvresize_size

 int
 guestfs_pvresize_size (guestfs_h *g,
                        const char *device,
                        int64_t size);

Ця команда виконує ті самі дії, що і "guestfs_pvresize", але вона надає вам змогу вказати новий розмір (у байтах) явним чином.

Ця функція повертає 0 у разі успіху і -1 у разі помилки.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 1.3.14)

guestfs_pvs

 char **
 guestfs_pvs (guestfs_h *g);

Виводить список усіх виявлених фізичних томів. Є еквівалентом команди pvs(8).

Ця команда повертає список назв лише тих пристроїв, на яких містяться фізичні томи (наприклад /dev/sda2).

Див. також "guestfs_pvs_full".

Ця функція повертає масив рядків із завершальним NULL (подібно до environ(3)) або NULL, якщо сталася помилка. Після використання слід звільнити рядки і масив.

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.4)

guestfs_pvs_full

 struct guestfs_lvm_pv_list *
 guestfs_pvs_full (guestfs_h *g);

Виводить список усіх виявлених фізичних томів. Є еквівалентом команди pvs(8). «Повна» версія включає усі поля.

Ця функція повертає "struct guestfs_lvm_pv_list *" або NULL, якщо сталася помилка. Після використання слід викликати "guestfs_free_lvm_pv_list".

Працездатність цієї функції залежить від можливості "lvm2". Див. також "guestfs_feature_available".

(Додано у 0.4)

guestfs_pvuuid

 char *
 guestfs_pvuuid (guestfs_h *g,
                 const char *device);

Ця команда повертає UUID фізичного тому LVM "пристрій".

Ця функція повертає рядок або NULL, якщо станеться помилка. Після використання функція, яка викликає цю функцію, має звільнити повернутий рядок.

(Додано у 1.0.87)

guestfs_pwrite

 int
 guestfs_pwrite (guestfs_h *g,
                 const char *path,
                 const char *content,
                 size_t content_size,
                 int64_t offset);

Ця команда записує частину файла. Команда записує буфер даних "дані" до файла "шлях", починаючи з відступу "відступ".

Ця команда реалізує системний виклик pwrite(2) і, подібно до цього системного виклику, вона може не записати повністю вказані дані. Повернуте значення є кількістю байтів, які насправді було записано до файла. Цим значе