table of contents
guestfs-release-notes-1.36(1) | Virtualization Support | 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.
2023-02-21 | libguestfs-1.50.1 |