guestfs-release-notes-1.38(1)

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

НОТАТКИ ЩОДО ВИПУСКУ LIBGUESTFS 1.38
Ці нотатки щодо випуску стосуються лише відмінностей від попереднього стабільного випуску (1.36.0). Докладний журнал змін є частиною журналу змін сховища git. Його також наведено у файлі ChangeLog, який є частиною архіву tar із кодом бібліотеки.

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

Virt-builder-repository — новий інструмент, який надає кінцевим користувачам змогу створювати і оновлювати сховища virt-builder (Cédric Bosdonnat).

Virt-rescue (хоча це і не новий інструмент) було суттєво переписано, реалізовано керування завданнями, параметри -m та -i, клавіші скасовування тощо.

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

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

Нові шаблони virt-builder для Fedora (починаючи з Fedora 26) матимуть просте компонування розділів і використовуватимуть GPT.

Скрипти першого завантаження virt-customize у гостьових системах, де використовується systemd, тепер встановлюються до "multi-user.target", а не до "default.target", отже запускаються лише тоді, коли система завантажується у звичайному режимі.

Virt-customize тепер встановлює випадковий /etc/machine-id для гостьових систем Linux, якщо такий ще не встановлено.

Virt-df тепер правильно працює у файлових системах із розміром блоку, меншим за 1 кБ (Nikolay Ivanets).

Virt-dib містить подальші поліпшення у сумісності з diskimage-builder (Pino Toscano).

Virt-sysprep вилучає "DHCP_HOSTNAME" з файлів ifcfg-*.

Virt-sysprep тепер працює і в Oracle Linux (Jamie Iles).

Virt-resize тепер правильно копіює атрибути розділів GPT з джерела до призначення (Cédric Bosdonnat).

Реалізовано або поліпшено доповнення за tab у bash для таких програм: virt-win-reg, virt-v2v-copy-to-local.

virt-v2v і virt-p2v

Virt-v2v тепер може читати файли VMX VMware безпосередньо або з локального диска, сховища NFS, або за допомогою SSH з гіпервізору ESXi.

Virt-v2v тепер може використовувати VDDK як джерело вхідних даних.

Обидві програми, virt-v2v і virt-p2v, тепер можуть передавати дані щодо виробника процесора, моделі і топології початкової системи. Втім, на жаль, не усі гіпервізори поточних версій здатні надати або використати ці дані (Tomáš Golembiovský).

У virt-v2v реалізовано підтримку шифрованих гостьових систем (Pino Toscano).

Virt-v2v тепер може працювати зі знімками VMware. Зауважте, що знімки мають бути згорнутими — програма не перетворює ланцюжок знімків у ланцюжок знімків.

Virt-v2v тепер встановлює блокові пристрої virtio Windows 10 / Windows Server 2016 належним чином (Pavel Butsykin, Kun Wei).

У virt-v2v реалізовано встановлення драйверів virtio-rng, balloon та pvpanic та належне налаштовування цих драйверів у метаданих гіпервізору призначення для гіпервізорів, у яких передбачено підтримку цього (Tomáš Golembiovský).

У virt-v2v реалізовано встановлення застарілих і сучасних ключів virtio у реєстрі Windows (Ladi Prosek).

У virt-p2v реалізовано збереження (у певних випадках) часового поясу у годиннику реального часу (RTC).

Тепер virt-p2v поєднує декілька команд scp до сервера перетворення у одну команду, щоб зменшує час, потрібний на перетворення.

У virt-v2v реалізовано виявлення спеціалізованих ядер Linux лише для паравіртуалізації у Xen належним чином (Laszlo Ersek).

У virt-v2v -o glance реалізовано підтримку створення належних властивостей для гостьових систем UEFI (Pino Toscano).

Тепер virt-v2v -o null уникає буферизації гостьової системи до тимчасового файла. Замість цього, виконується запис до «нульового блокового пристрою» qemu. Це пришвидшує роботу і знижує потребу у використанні місця на диску.

У virt-v2v -o rhv реалізовано підтримку типу гостьової системи Windows 2016 Server.

У virt-v2v -i libvirtxml реалізовано підтримку відкриття мережевих дисків за допомогою http або https.

У virt-v2v реалізовано попереджання щодо транзитних пристроїв у основній системі (Pino Toscano).

Розширено можливості виведення virt-v2v --machine-readable так, щоб було включено факти "vcenter-https", "xen-ssh" і "in-place" (Pino Toscano).

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

Усунено декілька витоків пам'яті та інших проблем із пошкодженням даних у прив'язках до Java (Pino Toscano).

Відкинуто підтримку у Perl %guestfs_introspection.

Перевірка

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

Краща підтримка піктограм гостьових систем ALT Linux (Pino Toscano).

Краща підтримка NeoKylin (Qingzheng Zhang).

Уможливлено роботу з операційними системами, подібними до Void Linux, у яких "VERSION_ID" не включено до /etc/os-release (Pino Toscano).

Додано підтримку Microsoft MS-DOS (Daniel Berrangé).

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

Декілька виправлень для архітектури S/390. Libguestfs і усі інструменти тепер можна зібрати і запустити на цій архітектурі.

Інше

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

  Безпека
Було виявлено декілька вразливостей у програмі icoutils "wrestool", яку libguestfs запускала для створення піктограм гостьових систем Windows. Рекомендуємо використовувати лише найсвіжішу версію "wrestool".

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

"hivex_value_string"
    Замінює собою застарілий програмний інтерфейс "hivex_value_utf8", виконуючи ті самі завдання.

"part_get_gpt_attributes"
"part_set_gpt_attributes"
    Читання і запис прапорців атрибутів розділів GPT (Cédric Bosdonnat).

"part_resize"
    Збільшення і зменшення наявного розділу (Nikos Skalkotos).

"yara_destroy"
"yara_load"
"yara_scan"
    Підтримка рушія пошуку шкідливого програмного забезпечення Yara (Matteo Cafasso).

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

Програмні інтерфейси, реалізовані у фоновій службі, тепер можна писати на C або OCaml. Декілька програмних інтерфейсів було переписано на OCaml, хоча ми і не плануємо переписувати цією мовою усі інтерфейси.

Тепер ви отримуватимете зрозуміле повідомлення про помилку, якщо спробуєте додати забагато дисків до базової системи, замість доволі розпливчастого повідомлення про помилку від qemu.

У деяких програмних інтерфейсах випадково можна було скористатися "/dev/urandom" як «пристроєм» вхідних даних. Приклад: "g.copy_device_to_device("/dev/urandom", "/dev/sda")". Код було змінено таким чином, щоб не можна було так робити.

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

  Зміни у збиранні
Для збирання libguestfs нової версії потрібен компілятор OCaml ≥ 4.01. Параметр "./configure --disable-ocaml" лишається працездатним, але використовується лише для вимикання прив'язок до мови OCaml.

Додано файл "RELEASES" зі списком дат усіх випусків libguestfs. Цей файл слід оновлювати під час кожного випуску.

Було вилучено документацію, яку створює "gtk-doc". Тепер використання "./configure --enable-gtk-doc" не має жодних наслідків.

Для функції XDR та rpcgen тепер використовується libtirpc. Зауважте, що для glibc вона вважається застарілою і у більшості дистрибутивів Linux ці залежності викинуто, тому для більшості користувачів ця залежність буде додатковою (Martin Kletzander).

Тепер для crypt(3) використовується libxcrypt. Ця бібліотека є обов'язковою, якщо використовується glibc ≥ 2.27.

Тепер для роботи потрібен "ocaml-hivex".

Тепер обов'язковою є libvirt ≥ 1.2.20.

Тепер для тестів, які слід запускати від імені користувача root, передбачено нову ціль, "make check-root" (аналогічно до "make check-slow").

Перевірка щодо часу "./configure" для "__attribute__((cleanup))" тепер працює і у випадку крос-компіляції (Yann E. Morin).

Файли "AUTHORS" і "p2v/about-authors.c" тепер створюються із одного джерела.

Можна використовувати і GnuPG v1, і v2.

Для визначення типового значення "LIBGUESTFS_PATH" може бути використано "./configure --with-guestfs-path". Крім того, трохи змінено спосіб, у який виконується пошук за шляхом, для того, щоб виконати пошук усіх типів базових систем у кожному з елементів шляху окремо (Pavel Butsykin).

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

Виведені дані "./configure" тепер візуально групуються за заголовками, відповідними до виконуваної дії, що спрощує пошук потрібних даних (Pino Toscano).

Залежності OCaml тепер створюються з одного скрипту, замість декількох трохи різних фрагментів Makefile.

"./configure --with-distro=ідентифікатор" можна скористатися для перевизначення автоматичного визначення дистрибутива Linux під час збирання (Pino Toscano).

Реалізовано підтримку qemu ≥ 2.10 (яка не є обов'язковою). Це додає обов'язкове блокування для дисків, libguestfs вимикає таке блокування за певних обставин, коли відомо, що це є безпечним (Lars Seipel, Peter Krempa, Daniel Berrangé, Pino Toscano, Fam Zheng, Yongkui Guo, Václav Kadlčík).

  Внутрішня частина роботи програми
Найвикористовуваніший код пересунуто до підкаталогу common/, а спільний код OCaml тепер зберігається у каталогах common/ml* (наприклад, common/visit і common/mlvisit містять бібліотеку visitor мовами C та OCaml, відповідно). Каталог mllib вилучено і замінено каталогом common/mltools.

Реалізовано невибагливу до ресурсів прив'язку OCaml для PCRE, див. common/mlpcre. Використання бібліотеки OCaml "Str" здебільшого замінено на PCRE.

Додано більше викликів до "udev_settle" для поліпшення стабільності коду поділу на розділи (Dawid Zamirski).

Реалізовано запуск "udev_settle" з параметром --exit-if-exists, який пришвидшує виконання команди (Pavel Butsykin).

Реалізовано виявлення нових місць зберігання major(3), minor(3), makedev(3).

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

Реалізовано використання обгортки "set_nonblocking_flag" gnulib замість виклику fcntl(2) з "O_NONBLOCK" (Eric Blake). Те саме для "set_cloexec_flag".

Усунено виток пам'яті у версії XFS "guestfs_vfs_minimum_size" (Pino Toscano).

Перевірки valgrind тепер працюють для виконуваного файла virt-p2v.

Тепер у коді і документації використовується одинарні лапки Unicode ("‘’") замість '' і `'. Те саме стосується "’s" замість "'s".

Функцію "is_zero" було реалізовано заново із суттєвим пришвидшенням (Eric Blake).

У модулі безпосередньої обробки вилучено підтримку virtio-blk. Тепер єдиним підтримуваним способом додавання дисків є virtio-scsi.

Рядковий параметр і повернуті типи засобу створення раціоналізовано так, щоб було лише два типи ("String", "StringList") з багатьма підтипами, наприклад "FileIn" став "String (FileIn, ...)".

Тепер можна використовувати формати образу диска базово системи, відмінні від простого (raw) (Pavel Butsykin).

Декілька поліпшень у автоматичному збиранні шаблонів Debian для virt-builder (Pino Toscano). Уможливлено послідовну консоль для цих шаблонів (Florian Klink).

У фоновій службі замість створення приватної копії lvm.conf і внесення змін до неї (наприклад для фільтрів) створюється порожній файл, оскільки LVM розуміє, що означає «усе типове» (Alasdair Kergon, Zdenek Kabelac).

Модуль "direct" тепер може запускати запити QMP щодо виконуваного файла QEMU, що розширює типи інформації, які можна виявляти. Крім того, код для надсилання запитів до QEMU зроблено стійкішим для обробки декількох паралельних запитів до різних версій QEMU.

Прив'язки Augeas до OCaml зібрано у common/mlaugeas. Згідно з довготерміновим планом їх має бути вилучено з метою використання загальносистемного ocaml-augeas, коли він стане широкодоступним у дистрибутивах (Pino Toscano).

Усі модулі OCaml (файли "*.ml") тепер повинні мати файл інтерфейсу ("*.mli"). Якщо ці модулі нічого не експортують, файл інтерфейсу буде порожнім, окрім коментарів.

У коді використовуються певні особливості OCaml ≥ 4.01, зокрема заміна «{ поле = поле }» на «{ поле }».

Інструмент virt-builder "make-template" тепер використовує параметр "virt-install --transient", отже, тепер немає потреби у чищенні залишків доменів після аварійного завершення роботи. Це також заощаджує запуски kickstart та virt-install, зміни щодо чого внесено до git із довідковою метою.

/dev/shm тепер створюється у базовій системі (Nicolas Hicher).

У докладному режимі на гостьових системах Fedora virt-customize тепер використовує "dnf --verbose", що дає змогу отримати докладніші діагностичні дані.

У класах введення і виведення virt-v2v тепер міститься метод "#precheck", який використовується для виконання перевірки середовища до того, як буде розпочато перетворення.

Virt-p2v уможливлює діагностику miniexpect. Дані виводяться до stderr (у virt-p2v).

Перевірки щодо вільного місця virt-v2v тепер є ліберальнішими, особливо для невеликих гостьових систем (Pino Toscano).

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

https://bugzilla.redhat.com/1540535
    Адреса прикладу «Перетворення з гіпервізору ESXi за допомогою SSH до локальної libvirt» на сторінці підручника v2v була некоректною

https://bugzilla.redhat.com/1539395
    Помилки сегментації virt-customize після оновлення до 1.37.35-3

https://bugzilla.redhat.com/1536765
    У прив'язках до Perl libguestfs можуть траплятися незначні витоки пам'яті, якщо станеться помилка

https://bugzilla.redhat.com/1536763
    У прив'язках libguestfs до Lua використовується strerror(), що не є безпечним щодо потоків виконання

https://bugzilla.redhat.com/1536603
    На сторінці підручника не було згадано про використання «--» при спробі змінити поведінку при завершенні виконання у результаті помилки

https://bugzilla.redhat.com/1525241
    virt-df показує нулі для файлових систем із розміром блоку =512

https://bugzilla.redhat.com/1519204
    v2v should improve the result when convert a rhel7.4 guest with no available kernels found in the bootloader

https://bugzilla.redhat.com/1518517
    virt-v2v fails with "unsupported configuration: shared access for disk 'sdb' requires use of supported storage format"

https://bugzilla.redhat.com/1516094
    Mere presence of QEMU file locking options breaks NBD (Block protocol 'nbd' doesn't support the option 'locking')

https://bugzilla.redhat.com/1514756
    ./configure --disable-ocaml breaks building common/mlpcre which breaks building daemon

https://bugzilla.redhat.com/1513884
    [RFE]Should update some vddk info in v2v man page

https://bugzilla.redhat.com/1508874
    virt-v2v: warning: ova disk has an unknown VMware controller type (20)

https://bugzilla.redhat.com/1506572
    virt-v2v '-i ova' is not parsing the MAC address from the source OVF

https://bugzilla.redhat.com/1506511
    virt-builder fails to parse repo file if it has blank space after the repository identifier

https://bugzilla.redhat.com/1503958
    Failed to convert the rhel5 guest with kmod-xenpv installed from xen server by virt-v2v

https://bugzilla.redhat.com/1503497
    qemu-kvm fails to open qcow2 files in read-only mode with qemu-kvm 1.5.3

https://bugzilla.redhat.com/1500673
    Error info shows wrong sometimes when ssh to conversion server using non-root user with sudo on p2v client

https://bugzilla.redhat.com/1500537
    /dev/shm does not exist in the appliance environment

https://bugzilla.redhat.com/1497475
    guestfish cannot list commands from interactive mode

https://bugzilla.redhat.com/1493048
    Unbound constructor Hivex.OPEN_UNSAFE

https://bugzilla.redhat.com/1484957
    bump debian images to use single-partition layout

https://bugzilla.redhat.com/1482737
    virt-resize failed to expand swap partition for RHEL5.11 guest image with "parsing UUID failed"

https://bugzilla.redhat.com/1477623
    Running file API on a special chardev may hang forever

https://bugzilla.redhat.com/1476081
    inspect-os report error: could not parse integer in version number: V7Update2

https://bugzilla.redhat.com/1472719
    [RFE]Add warning in process of v2v converting guest which has pci passthrough device

https://bugzilla.redhat.com/1472208
    virt-v2v fails on opensuse 13.2 guest with error: statns: statns_stub: path must start with a / character

https://bugzilla.redhat.com/1469655
    Скрипти firstboot неправильно встановлюються у Fedora 26

https://bugzilla.redhat.com/1466563
    Libguestfs should pass copyonread flag through to the libvirt XML

https://bugzilla.redhat.com/1465665
    1.36.x build failure: gtkdocize fails using newer autotools due to missing GTK_DOC_CHECK in configure.ac

https://bugzilla.redhat.com/1460338
    guestfs_shutdown повисає, якщо основний процес встановлює обробники сигналів

https://bugzilla.redhat.com/1459979
    guestfs_add_domain_argv fails with readonly option when vdi/vhd disk is attached to libvirt domain

https://bugzilla.redhat.com/1451665
    RFE: Virt-v2v не здатна перетворювати гостьові системи із зашифрованими розділами

https://bugzilla.redhat.com/1450325
    Потрібна документація до формату адреси параметрів -a інструментів

https://bugzilla.redhat.com/1448739
    RFE: Support multicore decompression for OVA files using pigz and pxz

https://bugzilla.redhat.com/1447202
    Гостьова система Win 2016 описується як Win 10 після імпортування до RHEVM

https://bugzilla.redhat.com/1441197
    RFE: ability to convert VMware virtual machines via vmx

https://bugzilla.redhat.com/1438939
    Будь ласка, викиньте або оновіть залежність від GnuPG (1.4.x)

https://bugzilla.redhat.com/1438794
    [RFE] Install Windows virtio-rng drivers on VMs imported

https://bugzilla.redhat.com/1433937
    virt-inspector can't get icon info from altlinux-centaurus

https://bugzilla.redhat.com/1433577
    policycoreutils setfiles >= 2.6 does .. nothing

https://bugzilla.redhat.com/1431579
    Windows 8 UEFI from VMware to KVM fails to boot after conversion

https://bugzilla.redhat.com/1430680
    There is error info about "No such file or directory" when convert a guest from ova file by v2v

https://bugzilla.redhat.com/1430184
    virt-dib should generate sha256 checksum instead of sha512

https://bugzilla.redhat.com/1429506
    RFE: OVMF should be detected on conversion server to prevent failed conversion

https://bugzilla.redhat.com/1429491
    Should rename network name of rhv in virt-v2v man page

https://bugzilla.redhat.com/1427529
    virt-sysprep should remove DHCP_HOSTNAME

https://bugzilla.redhat.com/1417306
    QEMU image file locking (libguestfs)

https://bugzilla.redhat.com/1409024
    [Debian] Missing db_dump abort inspection

https://bugzilla.redhat.com/1406906
    Помилка сегментації при читанні пошкодженого шляху за допомогою прив'язок до Python 3

https://bugzilla.redhat.com/1379289
    RFE: virt-p2v має підтримувати мнемонічні операції

https://bugzilla.redhat.com/1378022
    There is virt-v2v warning about <listen type='none'> during converting a guest which has listen type='none' in XML

https://bugzilla.redhat.com/1376547
    qemu-system-s390x: -device isa-serial,chardev=charserial0,id=serial0: 'isa-serial' is not a valid device model name

https://bugzilla.redhat.com/1374232
    selinux relabel fails on RHEL 6.2 guests with "libguestfs error: selinux_relabel: : Success"

https://bugzilla.redhat.com/1367738
    Missing bash completion scripts for: virt-diff guestunmount virt-copy-in virt-copy-out virt-customize virt-get-kernel virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in virt-tar-out virt-v2v-copy-to-local virt-win-reg

https://bugzilla.redhat.com/1362649
    RFE: virt-sysprep does not utilize libguestfs encryption support

https://bugzilla.redhat.com/1172425
    [RFE]virt-v2v failed to convert VMware ESX VM with snapshot

https://bugzilla.redhat.com/1171654
    Modify a file in virt-rescue with vi on some linux terminal such as yakuake, can lead to abnormal display in virt-rescue shell

https://bugzilla.redhat.com/1167623
    Remove "If reporting bugs, run virt-v2v with debugging enabled .." message when running virt-p2v

https://bugzilla.redhat.com/1152819
    Can not end a running command in virt-rescue by press ^C or other keys, the only way is to exit virt-rescue

ТАКОЖ ПЕРЕГЛЯНЬТЕ
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-2023 Red Hat Inc.

LICENSE

BUGS
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.