DOKK / manpages / debian 11 / libguestfs0 / guestfs-release-notes-1.30.1.uk
guestfs-release-notes-1.30(1) Virtualization Support guestfs-release-notes-1.30(1)

НАЗВА

guestfs-release-notes - нотатки щодо випусків libguestfs

НОТАТКИ ЩОДО ВИПУСКУ LIBGUESTFS 1.30

Ці нотатки щодо випуску стосуються лише відмінностей від попереднього стабільного випуску (1.28.0). Докладний журнал змін є частиною журналу змін сховища git. Його також наведено у файлі ChangeLog, який є частиною архіву tar із кодом бібліотеки.

Нові можливості

Нові інструменти

virt-dib(1) є безпечною і захищеною альтернативою до програми «diskimage-builder» з OpenStack. Вона сумісна із елементами diskimage-builder. (Pino Toscano)

virt-get-kernel(1) видобуває ядро і диск у пам'яті з образу диска. Раніше ця функціональна можливість була частиною virt-builder(1), але нова програм є ширшою за можливостями. (Pino Toscano)

Нові можливості у наявних інструментах

У режимі virt-v2v(1) -i ova програма тепер здатна читати ширший діапазон файлів OVA, а також незапаковані файли (каталоги).

virt-v2v тепер безпечно передає параметри до curl, отже, паролі, куки та інші дані будуть недоступними для перегляду іншими користувачами із доступом до командної оболонки та комп'ютері основної системи.

У virt-v2v передбачено новий параметр --password-file, який надає вам змогу безпечно передати пароль і уникнути роботи із інтерактивним рядком запиту.

virt-v2v вимикає автоматичне перезавантаження Windows, щоб робить діагностику помилок при перетворенні Windows простішою.

virt-v2v тепер постачається із широким зовнішнім комплектом для тестування. Див. virt-v2v-test-harness(1).

virt-v2v надає змогу використовувати драйвери virtio з будь-якого місця (Roman Kagan), драйвери тепер може бути прочитано безпосередньо з образу ISO virtio.

У virt-v2v передбачено перетворення Windows ≥ 8. Зауважте, що ця можливість є експериментальною. Користуйтеся нею обережно.

virt-v2v тепер може перетворювати гостьові системи з UEFI.

До virt-p2v(1) додано діалог налаштовування мережі.

virt-p2v тепер має перемикачі "p2v.pre", "p2v.post" і "p2v.fail", які уможливлюють довільні скрипти для приготування перетворення і коригування після перетворення.

У virt-p2v тепер використовується досконаліший засіб керування вікнами metacity (замість matchbox).

virt-sysprep(1) тепер вилучає "/var/spool/mail/ім'я_користувача" для облікових записів, відмінних від root (Hu Tao).

virt-customize(1), virt-builder(1) і virt-sysprep тепер мають такі нові параметри:

надає змогу читати довгі списки команд з файла, а не з командного рядка (Pino Toscano)
копіює файли до гостьової системи (Maros Zatko)
рекурсивно копіює файли з основної системи до гостьової (Pino Toscano)
пересуває файли у гостьовій системі (Maros Zatko)
вставляє ключі SSH до гостьової системи (Pino Toscano)
реєструє і скасовує реєстрацію гостьової системи у subscription-manager (Pino Toscano)
актуалізує часову позначку файла у гостьовій системі (Pino Toscano)
обрізає файли (Maros Zatko)

Поліпшення у підтримці firstboot у virt-customize. Зокрема у Windows firstboot має працювати як і у Linux (Roman Kagan).

virt-df(1) тепер може використовувати PolicyKit, SASL та інші способи розпізнавання при отриманні списку доменів від libvirt.

Поліпшення у доповненні команд guestfish у bash (Pino Toscano).

Засіб доповнення команд у bash тепер доповнює і скорочені форми запису параметрів, і повні (Pino Toscano).

guestfish(1) тепер показує короткий опис команди, якщо через командний рядок передається помилкова кількість параметрів (Hu Tao).

У virt-builder тепер передбачено підтримку Red Hat Enterprise Linux версій, ах до RHEL 3.

У virt-builder передбачено підтримку гостьових систем SUSE, де використовується zypper (Cédric Bosdonnat).

Прив’язки до мов програмування

До прив'язок до Java тепер включено перевірені Javadoc, інші поліпшення (Pino Toscano).

Декілька виправлень і поліпшень у прив'язках до PHP (Pino Toscano).

Перевірка

Засіб інспектування тепер може отримувати піктограми з RHEL 7 та CentOS 7.

/etc/favicon.png тепер може бути символічним посиланням.

У заснованих на RPM гостьових системах засіб інспектування тепер повертає поля Epoch RPM.

Пакунки Debian тепер мають окремі поля Epoch і Version (Nikos Skalkotos).

Додано виявлення OpenBSD, FreeBSD і NetBSD додано як окремі дистрибутиви, інші поліпшення у інспектуванні BSD та виправлення вад (Nikos Skalkotos).

Додано виявлення CoreOS (Nikos Skalkotos).

Засобом керування пакунками у Fedora ≥ 22 є "dnf".

Тепер можна інспектувати гостьові системи ReactOS (Maros Zatko).

Додано підтримку гостьових систем UEFI.

Інспектування тепер працює, якщо модулі ядра стиснуто за допомогою gzip або xz (Pino Toscano).

Засіб інспектування тепер розпізнає гостьові системи ppc64 і ppc64le (Maros Zatko).

Засіб інспектування тепер може показувати списки встановлених програм у гостьових системах Archlinux (Nikos Skalkotos).

Архітектури і платформи

Тепер підтримка архітектур PPC64 (POWER7) і PPC64LE (POWER8) є набагато ліпшою і має працювати без додаткових налаштовувань.

Для aarch64 ми використовуємо AAVMF (реалізацію UEFI з відкритим кодом на основі OVMF), якщо вона доступна, для запуску базової системи.

Для armv7 ми тепер використовуємо типово тип комп'ютера -M virt.

Реалізовано кращу підтримку збирання на платформах, відмінних від Linux (Pino Toscano, Margaret Lewicka).

Тепер libguestfs має працювати на 32-бітових MIPS з прямим порядком байтів ("mipsel"). Не вдалося перевірити 64-бітову версію або версію зі зворотним порядком байтів.

Безпека

Libguestfs раніше запускала програму strings(1) для недовірених файлів. Strings могла обробляти заголовки BFD у незахищений спосіб, що могло призвести до виконання довільного коду. Тепер libguestfs запускає strings з прапорцем для забезпечення того, щоб заголовки BFD не оброблятимуться. Обробка заголовків могла призвести до втручання у роботу базової системи libguestfs, але оскільки libguestfs додатково обмежує базову систему через віртуалізацію, SELinux та інші методики, це навряд чи могло призвести до розширення прав доступу в основній системі.
Було виправлено одну вразливість, пов'язану із XPath-ін'єкцією у virt-v2v. Вразливість могла призвести до того, що код зловмисника у гостьовій системі, яка перетворюється за допомогою virt-v2v, будував довільний вираз XPath, який мало бути оброблено у основній системі (за допомогою бібліотеки libxml2, скомпонованої із виконуваним файлом virt-v2v). Незрозуміло, яким міг бути ефект від усього цього.

Щоб дізнатися більше, ознайомтеся із внеском https://github.com/libguestfs/libguestfs/commit/6c6ce85f94c36803fe2db35a98db436bff0c14b0

Проблеми із відмовою у обслуговуванні при використанні "qemu-img info"
Використовуючи American Fuzzy Lop fuzzer ("afl-fuzz") на програмі "qemu-img info", Richard W.M. Jones виявив, що певні файли можуть спричинити до надмірного використання пам'яті та часу процесора у програмі "qemu-img" (наприклад, 6 ГБ оперативної пам'яті та 14 секунд процесорного часу на швидкому процесорі Intel), а іноді призводити до аварійного завершення роботи програми. Оскільки libguestfs може запускати "qemu-img info" на образах диска для визначення їхнього вмісту, це могло призвести до повисання або споживання надмірного об'єму пам'яті самою libguestfs.

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

API

Нові програмні інтерфейси

"guestfs_add_libvirt_dom"
Це розкриває раніше закритий програмний інтерфейс, який надає вам змогу передавати об'єкт "virDomainPtr" безпосередньо від libvirt до libguestfs.
"guestfs_blockdev_setra"
Коригує параметр readahead для пристроїв. Див. команду "blockdev --setra".
"guestfs_btrfs_balance"
"guestfs_btrfs_balance_cancel"
"guestfs_btrfs_balance_pause"
"guestfs_btrfs_balance_resume"
"guestfs_btrfs_balance_status"
Підтримка балансування для файлових систем Btrfs (Hu Tao).
"guestfs_btrfs_filesystem_defragment"
Підтримка дефрагментації файлових систем для файлових систем Btrfs (Hu Tao).
"guestfs_btrfs_image"
Створює образ файлової системи Btrfs (Chen Hanxiao)
"guestfs_btrfs_qgroup_assign"
"guestfs_btrfs_qgroup_create"
"guestfs_btrfs_qgroup_destroy"
"guestfs_btrfs_qgroup_limit"
"guestfs_btrfs_qgroup_remove"
"guestfs_btrfs_qgroup_show"
"guestfs_btrfs_quota_enable"
"guestfs_btrfs_quota_rescan"
Підтримка квот для файлових систем Btrfs (Hu Tao).
"guestfs_btrfs_rescue_chunk_recover"
Сканування і відновлення ієрархії фрагментів у файлових системах Btrfs (Hu Tao).
"guestfs_btrfs_rescue_super_recover"
Відновлення суперблоків у файлових системах Btrfs (Hu Tao).
"guestfs_btrfs_replace"
Заміна пристрою у файловій системі Btrfs (Cao Jin).
"guestfs_btrfs_scrub"
"guestfs_btrfs_scrub_cancel"
"guestfs_btrfs_scrub_resume"
"guestfs_btrfs_scrub_status"
Витирання файлової системи Btrfs (Hu Tao).
"guestfs_btrfs_subvolume_get_default"
Отримання типового підтому файлової системи Btrfs (Hu Tao).
"guestfs_btrfs_subvolume_show"
Виведення докладної інформації щодо підтому файлової системи Btrfs (Hu Tao).
"guestfs_btrfstune_enable_extended_inode_refs"
"guestfs_btrfstune_enable_skinny_metadata_extent_refs"
"guestfs_btrfstune_seeding"
Різноманітні параметри налаштовування для файлових систем Btrfs (Chen Hanxiao).
"guestfs_c_pointer"
Повертає вказівник C на підлеглий "guestfs_h *". Це надає змогу працювати спільно прив'язкам libguestfs та прив'язкам з інших бібліотек. Докладніше про це тут: https://bugzilla.redhat.com/1075164
"guestfs_copy_in"
"guestfs_copy_out"
Гнучкі програмні інтерфейси для рекурсивного копіювання каталогів з файлами між основною і гостьовою файловими системами. Раніше цими можливостями можна було скористатися лише у командах guestfish, тепер же ними можуть користуватися будь-які засоби, які використовуються програмний інтерфейс (Pino Toscano).
"guestfs_part_get_gpt_guid"
"guestfs_part_set_gpt_guid"
Отримання і встановлення GUID для окремих розділів GPT.
"guestfs_part_get_mbr_part_type"
Отримання типу розділу MBR (Chen Hanxiao).
"guestfs_set_uuid_random"
Встановлює для UUID файлової системи випадкове значення; підтримувані файлові системи у поточній версії — ext2/3/4, XFS, Btrfs та розділи swap (Chen Hanxiao).

Інші зміни у програмному інтерфейсі

"guestfs_disk_create" тепер може використовувати файли VMDK як файли резервної пам'яті.

"guestfs_btrfs_subvolume_snapshot" приймає додаткові необов'язкові параметри (усі додано Hu Tao):

"ro"
для створення придатного лише для читання знімка Btrfs
"qgroupid"
для додавання знімка до qgroup

"guestfs_btrfs_subvolume_create" також може приймати необов'язковий параметр "qgroupid" (Hu Tao).

"guestfs_set_uuid" може встановлювати UUID розділів резервної пам'яті (swap), Btrfs (Hu Tao, Chen Hanxiao).

"guestfs_copy_device_to_file" і "guestfs_copy_file_to_file" мають новий необов'язковий параметр "append", за допомогою якого ви можете дописувати дані до файла виведення, замість його заповнення від початку.

"guestfs_mkfs" має новий необов'язковий параметр "label" для встановлення початкової мітки нової файлової системи (Pino Toscano).

"guestfs_set_label" і "guestfs_set_uuid" тепер встановлюють "ENOTSUP" як номер помилки, якщо немає реалізованої підтримки файлової системи вказаного монтованого пристрою (Chen Hanxiao).

Змінні середовища тепер надають вам змогу написати "LIBGUESTFS_DEBUG=true", "LIBGUESTFS_DEBUG=0" тощо.

Увесь програмний інтерфейс "guestfs_sfdisk*" визнано застарілим. Оскільки sfdisk(8) було переписано у несумісний спосіб у головній гілці розробки, ми не рекомендуємо використовувати ці програмні інтерфейси у новому коді. Користуйтеся його замінниками — "guestfs_part*".

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

Зміни у збиранні

Фонова служба більше не використовує власну окрему копію gnulib. Замість цього, вона спільно використовує єдину копію з бібліотекою.

Тепер автоматично створюються файли OCaml .annot, отже комплексні середовища для розробки та редактори, зокрема emacs і vi, можуть здійснювати навігацію типами OCaml у початковому коді програм.

Різноманітні виправлення з метою уможливити збирання на різних основних системах та за різних архітектур (Pino Toscano).

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

Для збирання використано "-fno-strict-overflow", що уникнути неоднозначних оптимізацій з боку GCC.

Чищення коду з метою підтримки GCC 5.

Для виконання деяких тестів OCaml потрібна бібліотека OCaml OUnit2.

Знову має працювати створення статично скомпонованого libguestfs.a.

Ми більше не використовуємо підкаталог src/api-support і скрипти у ньому. Замість цього, дані зберігаються у generator/actions.ml, коли до libguestfs додається програмний інтерфейс.

Інтернаціоналізація

Службу перекладу змінено з Transifex на Zanata.

Виконано багато перекладів, інтерфейсу бібліотеки і програм та документації.

Внутрішня частина роботи програми

У всіх інструментах мовою OCaml тепер є загальні функції "error", "warning", "info" та загальний спосіб встановити і отримати прапорці --quiet, -x (трасування) та -v (докладний режим) і використовується однорідне підсвічування кольором.

Для спрощення конструкторів і деструкторів PCRE використовуються макроси "COMPILE_REGEXP".

У генераторі нарешті реалізовано аргументи "Pointer".

У внутрішніх ідентифікаторах більше не використовуються подвійні і потрійні підкреслювання (наприклад, "guestfs___program_name"). Такі ідентифікатори є некоректними у програмах C99 та C++, хоча компілятори і можуть їх використовувати.

Фонова служба більше не обробляє параметри "guestfs_*" від /proc/cmdline. Замість цього, вона приймає лише звичайні параметри командного рядка. Скрипти ініціалізації базової системи перетворюють дані /proc/cmdline у параметри командного рядка фонової служби.

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

Виправлені вади

virt-v2v error reporting when grub.conf cannot be parsed by Augeas
v2v:Duplicate disk target set when convert guest with cdrom attached
Virtio drivers are not installed for windows 2008 guests by virt-v2v
virt-v2v Support for Fedora virtio-win drivers
Virt-v2v gives an error on a blank disk: part_get_parttype: unknown signature, of the output: BYT;
virt-p2v in kernel command line mode should power off the machine after conversion
virt-p2v no GUI mode appends \n to the final command line parameter
virt-sysprep at cleanup deletes /var/spool/at/.SEQ which results in failing at
"Doing conversion……" still shows after cancel the conversion from virt-p2v client
Memory leak in virNetSocketNewConnectUNIX
virt-v2v: warning: unknown guest operating system: windows windows 6.3 when converting win8,win8.1,win2012,win2012R2 to rhev
virt tools should print the same format of version string
RFE: virt-builder --touch
virt-builder --selinux-relabel flag fails on cross-architecture builds
RFE: virt-inspector xpath query should output a neat format of the query element
virt-builder firstboot-command fails: File name too long
virt-inspector gives incorrect arch (ppc64) for ppc64le guest
RFE: virt-customize --move and --copy
index-parser can't parse systemd mount files properly
virt-builder --upload option doesn't work to a FAT partition
virt-builder -x option on its own does not enable tracing
`virt-builder` should create $HOME/.cache directory if it already doesn't exist
Virt-builder fingerprint is required even when no check desired
virt-resize should preserve GPT partition UUIDs, else EFI guests become unbootable
Performance regression in virt-builder when uncompressing image
virt-v2v should support gzip format ova as input
virt-sparsify should ignore read-only LVs
"mknod-b", "mknod-c", and "mkfifo" do not strip non-permissions bits from "mode"
virt-v2v ignores sound device when convert xen guest to local kvm
Друкарська помилка у «help ping-daemon»
"parse-environment" and "parse-environment-list" fail to parse "LIBGUESTFS_TRACE = 0"
"is-blockdev"/"is-blockdev-opts" fail to detect "/dev/sda"
RFE: Allow v2v conversion of Oracle Linux 5.8 VMware VM
New virt-v2v failure: CURL: Error opening file: NSS: client certificate not found (nickname not specified): Invalid argument
Graphics password disappear after conversion of virt-v2v
The listen address for vnc is changed after conversion by virt-v2v
Засіб інспектування вважає розділ EFI окремою операційною системою
virt-v2v conversion of RHEL 3 guest fails with: All of your loopback devices are in use
Conversion of RHEL 4 guest fails: rpm -ql 1:kernel-utils-2.4-23.el4: virt-v2v: error: libguestfs error: command_lines:
virt-v2v picks debug kernels over non-debug kernels when versions are equal
virt-sparsify: libguestfs error: qemu-img info: 'virtual-size' is not representable as a 64 bit integer
virt-resize --expand fails on ubuntu-14.04.img image (regression)
warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed: Operation not supported (ignored) when convert win2003 guest from xen server
p2v: No Network Connection dialog
virt-p2v fails with error:"nbd.c:nbd_receive_negotiate():L501: read failed"
Remove "If reporting bugs, run virt-v2v with debugging enabled .." message when running virt-p2v
"Conversion was successful" pop out even virt-p2v fails
virt-v2v: warning: ova hard disk has no parent controller when convert from a ova file
virt-resize should give out the detail warning info to let customers know what's going wrong
File "/boot/grub2/device.map" showing is not right after converting a rhel7 guest from esx server
mount-loop command fails: mount failed: Unknown error -1
Disable "cancel conversion" button after virt-p2v conversion finished
Provide Reboot/Shutdown button after virt-p2v
Booting in qemu found no volume groups and failed checking the filesystems
The description of 'help append' is not accurately, it add the kernel options to libguestfs appliance not the guest kernel
Друкарські помилки у сторінках man
Inspect-get-icon failed on RHEL7 guest
xfs should also give a warning out to let customer know the limitation
Failed to import guest with "rtl8139" nic to openstack server after converted by v2v
virt-sysprep firstboot script is not deleted if it reboot a RHEL 7 guest
esx win2008 32 bit guest fail to load after conversion because the firmware isn't ACPI compatible
libvirt backend does not set RBD password
Use password file instead of process interaction
virt-p2v-make-disk should add firmwares
libguestfs FTBFS on f21 ppc64le
virt-inspector support adding a remote disk, but in its man page -a URI / --add URI is missing
Virt-v2v will fail when using relative path for -i ova
Redundancy whitespace at the end of directory name when use <TAB> to complete the directory name in guestfish with a xfs filesystem in guest
virt-v2v will hang when converting esx guest before disk copy phase
virt-v2v / qemu-img fails on ova image
virt-ls should remove '/' in the output when specify the directory name as /etc/
Should also add a field for directory files when run virt-ls with --csv option
virt-v2v conversions from VMware vCenter server run slowly
virt-v2v fail to convert guest with disk type volume
Input/output error during conversion of esx guest.
[RFE] virt-builder should support copying in a directory/list of files
[abrt] livecd-tools: kickstart.py:276:apply:IOError: [Errno 2] No such file or directory: '/run/media/jones/2tp001data/createlive/temp/imgcreate-_dX8Us/install_root/etc/rpm/macros.imgcreate'
virt-sparsify fails if a btrfs filesystem contains readonly snapshots
RFE: allow passing in a pre-opened libvirt connection from python
Security context on image file gets reset
[RFE] virt-v2v should check whether guest with same name exist on target first then transfer the disk
RFE: virt-p2v: display more information about network devices such as topology, bonding, etc.
p2v client should have largest number restrictions for CPU and Memory settings
hivex cannot read registry hives from ReactOS
virt-inspector cannot detect ReactOS
installation via NFS doesn't seem to work

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

guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1), http://libguestfs.org/

АВТОР

Richard W.M. Jones

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

Copyright (C) 2009-2020 Red Hat Inc.

To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

When reporting a bug, please supply:

  • The version of libguestfs.
  • Where you got libguestfs (eg. which Linux distro, compiled from source, etc)
  • Describe the bug accurately and give a way to reproduce it.
  • Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report.
2021-01-05 libguestfs-1.44.0