guestfs-release-notes-1.36(1)

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

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

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

Virt-tail — новий інструмент для стеження (за кінцем) файлів журналу у гостьовій системі, подібний до звичайної команди "tail -f".

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

Virt-customize, virt-get-kernel, virt-sparsify і virt-sysprep тепер можуть працювати із зашифрованими гостьовими системами (Pino Toscano).

У virt-builder і virt-customize тепер передбачено підтримку --append-line, що корисно для додавання рядків наприкінці файлів налаштувань.

Virt-resize тепер може зменшувати і збільшувати розміри розділів резервної пам'яті (Pino Toscano).

Virt-resize тепер може виводити дані на нелокальні диски (Pino Toscano).

У virt-sysprep передбачено нову операцію із назвою "backup-files" для вилучення резервних копій редактора і "passwd-backups" для вилучення /etc/passwd- та подібних файлів.

Virt-dib тепер може створювати контрольні суми за допомогою нового параметра --checksum (Pino Toscano).

Virt-dib тепер може створювати файли tgz. Крім того, у виведеному файлі tar зберігаються розширені атрибути і мітки SELinux (Pino Toscano).

Virt-dib тепер може створювати файли squashfs (Pino Toscano).

Автоматичне доповнення за Tab у bash тепер доступне для усіх інструментів командного рядка, який постачається у пакунках.

virt-v2v і virt-p2v

Передбачено підтримку перетворень Debian (6+) і Ubuntu (10.04+) (Tomáš Golembiovský, Pino Toscano).

Перевірено перетворення з гіпервізору Xen SUSE (Cédric Bosdonnat).

Під час перетворення Windows тепер встановлюється програма "pnp_wait.exe", яка запобігає конфліктам між Керуванням Plug-and-Play Windows і нашими скриптами, які встановлюють драйвери пристроїв virtio. Вмикання цієї можливості потребує, щоб програму "pnp_wait.exe" було зібрано окремо (Roman Kagan).

Тепер можна перетворювати файли OVA, експортовані з AWS (Shahar Havivi).

Під час перетворення файлів OVA за певних обставин virt-v2v тепер може читати образи дисків безпосередньо з вхідного файла OVA, замість розпаковування файла OVA до тимчасового каталогу. Це може заощадити місце на диску і пришвидшити обробку (Tomáš Golembiovský).

Virt-p2v тепер можна зібрати на RHEL 5 (приблизно 2007 рік) Linux та RHEL 6, що означає, що 32-бітові системи та обладнання із давніми дисками fakeraid можна віртуалізувати. Виконувані файли virt-p2v, засновані на цих застарілих версіях RHEL, можна знайти на http://oirase.annexia.org/virt-p2v/

Virt-p2v тепер може використовувати nbdkit (сервер NBD) як альтернативу qemu-nbd. Крім того, virt-p2v тепер може використовувати «активацію сокетом», яка є стійкішим методом для відкриття сокета для очікування даних NBD. Активація за сокетом працює з qemu-nbd і nbdkit, але потребує найновіших версій цих компонентів.

Щоб запобігти перевищенню часу очікування під час перетворень P2V, virt-p2v успадковує параметри заощадження енергії від фізичної машини і також надсилає луна-пакети крізь з'єднання керування ssh та даних.

Virt-v2v більше не вилучає вузли "Processor" і "Intelppm" з реєстру Windows.

Перетворення Xen і vCenter тепер можна виконувати за допомогою модуля libvirt, якщо використовується libvirt ≥ 2.1.0.

Ігноруються пристрої /dev/srX (SCSI CD-ROM) (Tomáš Golembiovský).

Під час перетворення гостьових систем SUSE Linux реалізовано використання /etc/modprobe.conf.local, якщо такий файл існує.

Вилучення інструментів VMware з гостьових систем Linux тепер має працювати надійно (Pino Toscano).

Під час перетворення файлів OVA virt-v2v тепер перевіряє хеш образу диска, який міститься у файлі маніфесту, тоді як раніше цей хеш ігнорувався через помилку у коді. Крім того, тепер передбачено підтримку хешів SHA256 (Tomáš Golembiovský).

Під час перетворення файлів OVA, який містить стиснені образи дисків, тепер враховується атрибут "ovf:compression" з метаданих, замість безпосереднього аналізу образу диска (Tomáš Golembiovský).

Додано новий прапорець --vdsm-compat до режиму -o vdsm. За його допомогою можна створювати ефективніші образи qcow2.

Оскільки продукт RHEV [комерційно підтримувану версію oVirt] тепер перейменовано на RHV, «RHEV» було замінено на «RHV» у всьому інструментарії. Зокрема, -o rhev тепер стало -o rhv, хоча і стара назва використовується для забезпечення зворотної сумісності.

Програма "RHEV-APT" встановлюється тепер лише, якщо гіпервізором виведення даних є oVirt або RHV.

Має бути вирішено проблему із нестачею пам'яті для роботи virt-v2v при виконанні повторного встановлення міток SELinux у гостьовій файловій системі.

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

Встановлення значення "EXTRA_JAVAC_FLAGS" до ./configure надає вам змогу додавати довільні прапорці до "javac" під час збирання прив'язок до Java.

Використання будь-якого програмного інтерфейсу libguestfs, який повертає окрему структуру, з прив'язок до Perl або Java призводило до витоку пам'яті. Тепер цю помилку виправлено. (Pino Toscano).

Перевірка

Інспектування гостьових систем Windows із помірно пошкодженими роями регістру Windows тепер спрацьовує, замість завершення з повідомленням про помилку. Для користування цією можливістю слід встановити hivex ≥ 1.3.14 (Dawid Zamirski).

Для пакунків Debian тепер передбачено можливість читати адресу, назву початкового пакунка, резюме і повний опис встановлених пакунків. Для гостьових систем на основі RPM можливе читання адреси, резюме та опису (Pino Toscano).

Інспектування гостьових операційних систем, де використовується окремий розділ /usr, тепер має працювати надійніше (Pino Toscano).

Під час обробки /etc/fstab гостьової системи шляхи згортаються до канонічної форми (наприклад, "///usr//local//" → "/usr/local").

Інспектування підтомів btrfs тепер працює там, де поле параметрів /etc/fstab містить коми.

Ігноруються пристрої /dev/cdN у /etc/fstab гостьової системи (Pino Toscano).

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

Тепер стабільні випуски тестуються на архітектурах aarch64, ppc64 та ppc64le.

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

Реалізовано підтримку виявлення бінарних файлів і гостьових систем S/390 та S/390x.

Інше

Реалізовано підтримку файлових систем ExFAT (Miles Wolbe).

  Безпека
Див. також guestfs-security(1).

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

Назви тимчасових файлів тепер завжди створюються з використанням випадкових значень з /dev/urandom (раніше в одному випадку використовувалася функція C random(3)).

Реалізовано перевірку змінної середовища $TERM перед передаванням її до командного рядка ядра базової системи.

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

"guestfs_aug_transform"
    Надає доступ до програмного інтерфейсу Augeas "aug_transform" (Pino Toscano).

"guestfs_find_inode"
    Пошук файлів за номером inode (Matteo Cafasso).

"guestfs_inspect_get_windows_software_hive"
"guestfs_inspect_get_windows_system_hive"
    Повертає шлях до роїв Windows "HKLM\SYSTEM" та "HKLM\SOFTWARE", який було визначено під час інспектування.

"guestfs_mksquashfs"
    Створює файлову систему squashfs зі шляху (Pino Toscano).

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

"guestfs_add_domain"
    Цей виклик тепер коректно обробляє томи libvirt, засновані на файлах. Раніше такі томи ігнорувалися. Також реалізовано обробку дисків, які потребують розпізнавання за реєстраційними даними для відкриття їх у libvirt (Pino Toscano).

"guestfs_canonical_device_name"
    Цей виклик більше не помиляється при внесенні змін до назв пристроїв програмного RAID у Linux (зокрема /dev/mdX).

"guestfs_file_architecture"
    Раніше програмний інтерфейс "file_architecture" між повертати будь-який рядок, "i386" або "i486", для 32-бітових виконуваних файлів x86. Тепер він повертає лише "i386" (за документацією).

    Цей програмний інтерфейс тепер може повертати такі нові значення: "riscv32", "riscv64", "riscv128", "s390", "s390x".

"guestfs_hivex_open"
    Цей виклик тепер має необов'язковий прапорець "GUESTFS_HIVEX_OPEN_UNSAFE", який надає змогу відкривати деякі пошкоджені рої реєстру Windows. Для користування цією можливістю слід встановити hivex ≥ 1.3.14 (Dawid Zamirski).

"guestfs_list_partitions"
    Цей виклик тепер повертає програмні розділи RAID у Linux.

"guestfs_part_to_dev"
    Цей виклик тепер коректно обробляє назви розділів, які містять "p<N>" (Pino Toscano).

"guestfs_set_label"
    Цей виклик тепер може змінювати мітки розділів резервної пам'яті (Pino Toscano).

  Зміни у збиранні
libmagic, бібліотечна частина програми "file", тепер потрібна для збирання (раніше вона була необов'язковою).

Реалізовано підтримку GCC 7.

Тепер програми OCaml та прив'язки до Java використовують «мовчазні правила». Щоб переглянути рядок команди, яка виконується, додайте "V=1" до рядка команди make (Pino Toscano).

Повільне тестування ("make check-slow") тепер покриває: скрипти firstboot у гостьових системах Linux; перетворення v2v набору справжніх гостьових систем Linux; параметри virt-customize --hostname та --timezone; параметр --root-password; те, що послідовна консоль працює у гостьових системах virt-builder.

Великі автоматично створені файли з кодом мовою C, наприклад список команд у fish/cmds.c (та багато інших), поділено на менші файли для пришвидшення паралельного збирання.

"make maintainer-check-extra-dist" тепер перевіряє, чи усі створені файли було включено до архіву tar.

Тести тепер не припускають, що "." перебуває у @INC Perl, оскільки її скоро збираються вилучити (Pino Toscano).

Реалізовано підтримку основних систем Debian з UsrMerge (Pino Toscano).

Файли заголовків та структури C тепер можуть містити вбудовану документацію з використання спеціальних коментарів "/** ... */".

Підстановки "@VAR@" у "./run" тепер повністю екрануються лапками. Це потрібно для того, щоб (наприклад) команда "./configure PYTHON=/якийсь/шлях" працювала належним чином, якщо у "/якийсь/шлях" містяться символи, які слід екранувати (Hilko Bengen).

Реалізовано підтримку gperf ≥ 3.1.

Старі збірки Kraxel-я для edk2 тепер не можна використовувати для забезпечення підтримки UEFI. Код UEFI тепер повністю програмний, тому слід використовувати версії з комплекту вашого дистрибутива Linux.

Virt-p2v тепер можна зібрати на Linux RHEL 5 (випущено у 2007 році) з Gtk 2.10.

  Внутрішня частина роботи програми
Тепер модулі generator та mllib "Common_utils" використовуються спільно з одного файла початкового коду.

Значну частку загального коду було пересунуто до каталогу common у початковому коді. Тепер вона збирається лише одного разу. Мінібібліотеки, які містяться у цьому каталозі: common/edit, common/errnostring, common/miniexpect, common/options, common/parallel, common/progress, common/protocol, common/utils, common/visit, common/windows.

Каталог, у якому зберігається основний код бібліотеки пересунуто, src → lib.

Усі тести, які було написано мовою командної оболонки, тепер використовують спільний файл із допоміжними функціями (tests/test-functions.sh). Написано ще декілька нових допоміжних функцій, зокрема для пропускання певних перевірок. Крім того, ці скрипти тестування тепер можуть використовувати autoconf-подібні змінні шляхів, зокрема $abs_top_srcdir.

Шляхи UEFI тепер зберігаються у generator (generator/uefi.ml).

Спосіб, у який засіб створення обробляє дії і номери процедур, було суттєво змінено. Див. generator/actions_*.ml і generator/proc_nr.ml.

Тепер модуль gnulib "getprogname" використовується всюди, де потрібна назва програми чи виведення назви програми (Pino Toscano).

perl/Guestfs.c не придатний до перекладу (Nikos Skalkotos).

Шаблони virt-builder пересунуто з builder/website до builder/templates. Тепер є одна уніфікована програма, яка може зібрати будь-який шаблон.

Усі засоби роботи з реєстром Windows, які використовуються virt-customize і virt-v2v, було пересунуто до спільного модуля із назвою "Registry" у mllib.

Усі прив'язки POSIX було пересунуто до нового модуля з назвою "Unix_utils" у mllib.

У засобі інспектування, virt-customize та virt-v2v у декількох місцях усунено повторне визначення "%systemroot%", "CurrentControlSet" та шляхів до роїв "HKLM\SYSTEM" і "HKLM\SOFTWARE" у Windows. Усі ці дані визначаються один раз (під час інспектування) і передаються іншим інструментам за допомогою різноманітних програмних інтерфейсів "guestfs_inspect_get_windows_*".

"/dev/pts" тепер доступний у базовій системі, отже будь-які інструменти, які потребують для роботи pty, тепер працюватимуть (Pino Toscano).

Виправлено більшу частину попереджень OCaml.

Тепер існує єдина загальна функція для створення тимчасових файлів ("guestfs_int_make_temp_path") (Matteo Cafasso).

Реалізовано перевірку змінної середовища $TERM перед передаванням її до командного рядка ядра базової системи.

У базовій системі більше не створюються непотрібні пристрої USB та memballoon (Laine Stump).

На aarch64 для базової системи тепер використовується virtio-pci. Це дещо швидше за virtio-mmio.

Було мінімізовано використання srandom(3) і random(3). Зокрема, тимчасові назви файлів більше не створюються на основі даних, які повертає random(3), замість цього використовується /dev/urandom.

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

https://bugzilla.redhat.com/1425306
    описка на сторінці підручника virt-tail

https://bugzilla.redhat.com/1418283
    virt-v2v: вичерпання пам'яті базовою системою під час виконання команди setfiles

https://bugzilla.redhat.com/1417549
    /usr/bin/x86_64-linux-gnu-ld.bfd.real: ../common/progress/.libs/libprogress.a(libprogress_la-progress.o): undefined reference to symbol 'UP@@NCURSES_TINFO_5.0.19991023'

https://bugzilla.redhat.com/1417444
    *** Немає правила для створення ../perl/lib/Sys/Guestfs.c, потрібне для libguestfs.pot

https://bugzilla.redhat.com/1416941
    не вдається зібрати 1.34.3 з gperf 3.1

https://bugzilla.redhat.com/1414682
    guestfs_canonical_device_name incorrectly returns /dev/sd0 for MD devices (/dev/md0)

https://bugzilla.redhat.com/1414510
    guestfs_list_filesystems не розпізнає розділи ddf

https://bugzilla.redhat.com/1409023
    [Debian] у базовій системі не встановлено ldmtool

https://bugzilla.redhat.com/1404287
    qemu-kvm cannot boot RHEL 7 kernel with TCG, hangs at "Probing EDD (edd=off to disable)..."

https://bugzilla.redhat.com/1404182
    RFE: virt-resize має підтримувати адресу як диск виведення

https://bugzilla.redhat.com/1401474
    Importing VMs from VMware is failing with error "Inspection field 'i_arch' was 'unknown'"

https://bugzilla.redhat.com/1401320
    RFE: дещо збільшити покриття virt-sysprep

https://bugzilla.redhat.com/1400205
    Додати прапорець --vdsm-compat=1.1 для VDSM

https://bugzilla.redhat.com/1398070
    описка на сторінці підручника

https://bugzilla.redhat.com/1392798
    не читаються реєстраційні дані з доменів libvirt

https://bugzilla.redhat.com/1390876
    дані щодо --machine-readable на сторінці підручника virt-v2v слід оновити

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/1377081
    на сторінці підручника virt-p2v слід оновити дані щодо діалогу

https://bugzilla.redhat.com/1375157
    virt-v2v: -i ova: заборонено доступ, якщо використовується libvirt і запуск відбувається від імені root

https://bugzilla.redhat.com/1374651
    Can't install qxl driver for display device in win7 guest after converting to glance by virt-v2v

https://bugzilla.redhat.com/1374405
    There is HTTP 404 error info when convert guest to glance by virt-v2v

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

https://bugzilla.redhat.com/1372668
    Стан процесу у гостьовій системі windows після перетворення з kvm на rhev за допомогою virt-v2v не є нормальним

https://bugzilla.redhat.com/1372269
    Засіб збирання не встановлює належним чином назву вузла для Debian 8 (Jessie)

https://bugzilla.redhat.com/1371843
    Поліпшення сумісності імпортування OVA

https://bugzilla.redhat.com/1370424
    virt-manager coredump when vm with gluster image exists

https://bugzilla.redhat.com/1367839
    Cannot import VMs from Xen and VMware when using RHEL7.3 host.

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/1367615
    OVMF file which is built for rhel7.3 can't be used for virt-v2v uefi conversion

https://bugzilla.redhat.com/1366456
    Converting rhel7 host installed on RAID:warning: fstrim: fstrim: /sysroot/: the discard operation is not supported

https://bugzilla.redhat.com/1366049
    RFE: libvirt backend: support handling disks stored as volume name in a pool

https://bugzilla.redhat.com/1365005
    Назва гостьової системи є помилковою, якщо перетворення гостьової системи з образу диска виконується virt-v2v

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

https://bugzilla.redhat.com/1354507
    virt-v2v conversions from vCenter do not consistently obey the proxy environment variables

https://bugzilla.redhat.com/1168144
    warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed: Operation not supported (ignored) when convert win2003 guest from xen server

https://bugzilla.redhat.com/1161019
    RFE: Only install RHEV-APT if virt-v2v -o rhev/-o vdsm option is used

https://bugzilla.redhat.com/1152369
    virt-v2v failed to convert RHEL 6.7 UEFI guest: no grub1/grub-legacy or grub2 configuration file was found

https://bugzilla.redhat.com/1141631
    [RFE] virt-v2v should support convert a guest to a dir-pool with using pool's uuid

https://bugzilla.redhat.com/1134878
    libvirt reports json "backing file" is missing

https://bugzilla.redhat.com/1019388
    Скрипти firstboot (virt-builder, virt-sysprep) не працюють у гостьових системах Debian 6 і 7

https://bugzilla.redhat.com/737600
    virt-v2v windows xp - machine dies BSOD - processr,sys - workaround provided

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