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

НАЗВА

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

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

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

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

Декілька поліпшень швидкодії у libguestfs. Час «кешування угарячу» для запуску базової системи має бути меншим за 1 секунду, якщо встановлено новітні qemu та ядро. Також створено нові інструменти для точного тестування швидкодії libguestfs (utils/boot-benchmark та utils/boot-analysis у ієрархії початкового коду).

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

Реалізовано підтримку f2fs (дружньої до флешок файлової системи) (Pino Toscano).

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

Реалізовано можливість скористатися virt-p2v-make-kiwi(1) для збирання образів ISO virt-p2v на основі SLES і openSUSE за допомогою інструментарію kiwi (Cédric Bosdonnat).

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

Нова версія virt-resize зберігає GUID GPT. Ця версія є обов'язковою для роботи з Windows Server 2012 R2, де завантажувач не працюватиме, якщо змінюється GUID (Maxim Perevedentsev).

Нова версія virt-resize використовує розріджене копіювання для розширених розділів (у старому стилі MBR). Значно пришвидшує зміну розмірів гостьових систем, які використовують розширені розділи (Maxim Perevedentsev).

Реалізовано використання параметрів командного рядка ядра virt-p2v для встановлення типових значень у графічному засобі налаштовування.

Повністю вилучено параметри діагностики virt-p2v, що спростило інтерфейс і документацію. Діагностичні відомості тепер перехоплюються повністю автоматично.

virt-p2v-make-disk у новій версії надає вам змогу вказати параметр --arch, уможливлюючи збирання 32-бітової virt-p2v для сумісності із застарілими системами.

Для нової версії virt-p2v-make-disk більше немає потреби вказувати "версію-ОС" для диска virt-p2v. Якщо версію не вказано, програма намагатиметься вибрати відповідну "версію-ОС" за вашою основною системою.

До virt-p2v-make-disk і virt-p2v-make-kickstart додано новий параметр --install, за допомогою якого можна додавати довільні пакунки до образу ISO virt-p2v, для налаштовування, отримання додаткових інструментів діагностики тощо.

Нова версія virt-v2v вилучає Parallels Tools (або еквівалентні Virtuozzo Tools) з гостьових систем Linux. Також припинено завантаження драйверів Windows під час завантаження системи . (Roman Kagan і Pavel Butsykin)

Розширено можливості режиму virt-v2v --in-place так, щоб уможливити для функції виклику вибір, встановлювати чи ні певні драйвери virtio до гостьової системи (Roman Kagan).

Засоби перетворення virt-v2v гостьових систем Windows значно переписано і спрощено (Roman Kagan).

У новій версії режиму virt-v2v --in-place передбачено підтримку встановлення драйверів virtio-scsi до гостьової системи (Roman Kagan).

Нова версія virt-v2v може перетворювати гостьові системи SUSE та гостьові системи SUSE з використанням UEFI (Cédric Bosdonnat і Jim Fehlig).

Нова версія virt-v2v може перетворювати гостьові системи Glance із декількома дисками. Раніше програма показувала повідомлення про помилку для таких гостьових систем.

Параметри virt-v2v --no-trim і --vmtype тепер не призводять до виконання будь-яких дій. Програма показує попередження і просто ігнорує параметри. Нова версія virt-v2v може створювати vmtype OVF правильно без втручання користувача.

Нову версію virt-v2v можна тестувати у Xen SUSE як початковому гіпервізорі (Cédric Bosdonnat).

У virt-v2v додано підтримку драйверів VMDP SUSE (Cédric Bosdonnat).

Нова версія virt-v2v може перетворювати файли OVA, які містять підтеки, які створено за допомогою SUSE Studio (Cédric Bosdonnat).

Нова версія virt-v2v правильно встановлює елемент OVF "<Origin>". Можливості oVirt розширено з метою підтримки ширшого спектра гіпервізорів (Shahar Havivi).

У новій версії virt-v2v передбачено підтримку Windows Server 2016 (Tomáš Golembiovský).

Параметром virt-builder --list тепер можна скористатися для перегляду усіх шаблонів або окремого шаблона (Pino Toscano).

В усіх заснованих на OCaml інструментах тепер використовується getopt_long(3) для обробки параметрів. Поліпшено виведення --help (Pino Toscano).

За допомогою параметра --selinux-relabel virt-builder і virt-customize у новій версії можна повністю повторно встановити мітки для усієї гостьової файлової системи під час збирання без потреби у довгому автоматичному повторному встановленні міток під час першого завантаження.

virt-customize --delete у новій версії може обробляти символи-замінники.

За допомогою нового параметра virt-customize --uninstall ви зможете вилучати пакунки.

Нова версія virt-customize може використовувати "pvvxsvc" як альтернативу до "rhsrvany" для запуску скриптів firstboot у гостьових системах Windows (Cédric Bosdonnat).

virt-customize тепер використовує найстійкішу схему хешування паролів у Arch та Void Linux (Pino Toscano).

virt-customize --install тепер працює належним чином у Arch (Pino Toscano).

virt-inspector має нові параметри --no-applications і --no-icon для запобігання включенню списку програм та піктограм до виведених даних XML (Pino Toscano).

Додано новий параметр virt-sysprep --network, за допомогою якого ви можете насправді скористатися параметрами --install та іншими, які були у virt-sysprep і раніше, але не працювали. Зауважте, що типово мережу все ще вимкнено.

Дія virt-sysprep "fs-uuids" більше не завершує роботу помилкою для гостьових систем btrfs (Maxim Perevedentsev).

virt-dib тепер може виводити образи для Docker (Pino Toscano).

У virt-dib реалізовано новий параметр --drive-format, за допомогою якого можна вказати формат допоміжного диска (Pino Toscano).

Усі засоби віртуалізації OCaml тепер мають параметр --colors/--colours, який вмикає розфарбовування виведених даних (за допомогою екранованих послідовностей ANSI), навіть якщо виведення відбувається не до tty. Типовою поведінкою є перевірка, чи виводяться дані до tty, і вимикання розфарбовування даних, якщо ні. Це надає змогу передавати розфарбовані виведені дані для обробки іншим програмам.

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

Удосконалено покриття тестами PHP (Pino Toscano).

Реалізовано підтримку PHP 7 (Pino Toscano).

Прив'язки Python тепер сумісні з PEP 8 (Pino Toscano).

Пакунок pip Python доступний з http://libguestfs.org/download/python/

Прив'язки до Ruby тепер виводять текст виключення повністю, якщо такий видано зворотним викликом події. Зауважте, що це не зовсім коректна поведінка, оскільки зворотні виклики подій не повинні видавати виключення, але це допомагає у діагностиці.

Усі бібліотеки і програми OCaml тепер збираються з прапорцем -safe-string, якщо його підтримку передбачено у компіляторі OCaml.

Перевірка

Тепер можна інспектувати Alpine Linux з використанням busybox. Крім того, у virt-customize передбачено підтримку засобу керування пакунками APK (Pino Toscano).

Реалізовано інспектування Mageia 4 (Pino Toscano).

Повністю реалізовано підтримку Void Linux та засобу керування пакунками pbs з Void Linux xbps (Pino Toscano).

Удосконалено обробку даних щодо версії CoreOS (Pino Toscano).

Уможливлено отримання піктограми з ALT Linux (Pino Toscano).

Тепер розпізнаються версії PLD Linux < 3 (Pino Toscano).

Реалізовано повернення літер дисків Windows для гостьових систем з використанням розділів GPT (Dawid Zamirski).

Реалізовано правильне інспектування гостьових систем Unix, у яких немає файла /etc/fstab (Pino Toscano).

Додано нове джерело піктограми Ubuntu, яке не покладається на встановлення GNOME у гостьовій системі.

Реалізовано отримання піктограми для 64-бітових гостьових систем Windows 7.

Переписано код інтеграції libosinfo так, щоб можна було працювати із новим форматом бази даних від osinfo (Pino Toscano).

Документація

Нова сторінка підручника, guestfs-building(1), де наведено настанови щодо того, як зібрати libguestfs з початкових кодів.

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

Оновлено сторінку підручника guestfs-testing(1); тепер дані на ній відповідають новішій libguestfs.

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

virt-customize тепер працює на платформах POWER7 і POWER8, у обох варіантах, із прямим та зворотним порядком байтів (Xianghua Chen і Hu Zhang).

Безпека

Див. також guestfs-security(1).

CVE-2015-8869

https://bugzilla.redhat.com/CVE-2015-8869

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

Права власності virt-customize на .ssh, .ssh/authorized_keys

https://bugzilla.redhat.com/1337561

Раніше, коли virt-customize вставляла ключ SSH до гостьової системи, створюючи у каталозі ~/.ssh файл ~/.ssh/authorized_keys (якщо їх ще не було), вона надавала їм права власності "root.root". Цю помилку було виправлено. Тепер використовується правильні значення користувача і групи. Ми думаємо, що цією вразливість було неможливо скористатися.

Windows "%systemroot%"

Код засобу інспектування було зроблено стійкішим до гостьових систем, де міг використовуватися дуже довгий "%systemroot%" (успадкований від керованого гостьовою системою реєстру Windows). Ми вважаємо, що цією вразливістю неможливо скористатися.

У базовій системі тепер доступною є програма Virtio-rng

virtio-rng (віртуальний пристрій-генератор випадкових чисел) тепер передається до базової системи, що має поліпшити якість псевдовипадкових чисел, які використовуються для GUID та створення криптографічних ключів.

API

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

"btrfs_filesystem_show"
Реалізовано показу усіх пристроїв, на які поширюється файлова система btrfs (Pino Toscano).
"download_blocks"
"download_inode"
"filesystem_walk"
Отримує блоки даних файлової системи для вказаного розділу. Отримує довільні файли за номером inode. Отримує усі файли з файлової системи, включно із вилученими.

Зауважте, що ці зміни потребують встановлення додаткової залежності, The Sleuth Kit. (Matteo Cafasso)

"get_sockdir"
Реалізовано читання шляху, де зберігаються тимчасові сокети (Pino Toscano).
"mountable_device"
"mountable_subvolume"
Реалізовано поділ адреси змонтованого пристрою на назву пристрою і підтом (Cédric Bosdonnat).
"ntfscat_i"
Реалізовано отримання файлів NTFS за номером inode (Matteo Cafasso).
"part_expand_gpt"
Уможливлює розширення розділів GPT на місці з пересуванням другої (резервної) таблиці розділів у напрямку кінця диска (Maxim Perevedentsev).
"part_get_disk_guid"
"part_set_disk_guid"
"part_set_disk_guid_random"
Отримує і встановлює GUID диска GPT або встановлює для них свіже випадкове значення (Maxim Perevedentsev).
"selinux_relabel"
Виконує оновлення міток SELinux для частини гостьової файлової системи або для усієї гостьової файлової системи.

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

"guestfs_set_selinux", "guestfs_get_selinux", "guestfs_setcon", "guestfs_getcon" і "guestfs_llz" тепер вважаються застарілими. Скористайтеся новим програмним інтерфейсом "guestfs_selinux_relabel" для повторного встановлення міток у файлових системах. Скористайтеся "guestfs_lgetxattrs", щоб отримати список розширених атрибутів "security.selinux" наявних файлів.

"guestfs_vfs_minimum_size" тепер можна використовувати для файлових систем у проміжних станах (Maxim Perevedentsev).

"guestfs_ll" тепер працює для шляхів, які містять абсолютні символічні посилання (Pino Toscano).

"guestfs_glob_expand" тепер має необов'язковий булевий параметр "directoryslash", який керує тим, чи повертатимуться кінцеві похилі риски у назвах каталогів (Pino Toscano).

"guestfs_lvs" більше не повертає логічні томи, для яких встановлено прапорець "activationskip". Причиною є те, що такі логічні томи не мають вузла пристрою "/dev/VG/LV", отже, код, який читає список логічних томів, а потім зондує самі пристрої, негайно повертає помилку. Ви можете скористатися "guestfs_lvs_full", якщо хочете прочитати усі логічні томи (Pino Toscano).

"guestfs_list_disk_labels" більше не повертає повідомлення про помилку, якщо не було додано жодного диска із мітками. Замість цього, буде повернуто порожній список (Pino Toscano).

"guestfs_is_lv" більше не повертає повідомлення про помилку, якщо передано підтом btrfs. Замість цього буде повернуто false (Maxim Perevedentsev).

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

Потрібен qemu ≥ 1.3.0.

Для збирання libguestfs потрібна yajl (бібліотека для обробки коду JSON).

Тепер можливе збирання за допомогою GCC 6.

"make check-valgrind" тепер має суттєво ліпше покриття.

"make check-slow" тепер знову є працездатним.

Скористайтеся "make -C appliance clean-supermin-appliance" щоб спорожнити базову систему supermin (її буде перезібрано під час наступного "make").

Реалізовано спектр нових правил для запуску virt-p2v з каталогу початкового коду: "make -C p2v run-virt-p2v-directly" | "run-virt-p2v-in-a-vm" | "run-virt-p2v-non-gui-conversion". Документацію щодо цього можна знайти на сторінці guestfs-hacking(1).

virt-p2v може бути зібрано з використанням Gtk 2 або Gtk 3. Щоб примусово вказати версію Gtk, скористайтеся "./configure --with-gtk=2|3"

Параметри "./configure" тепер здебільшого документовано на сторінці guestfs-building(1).

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

У git версії тепер позначаються "v1.XX.YY" (раніше вони позначалися "1.XX.YY"). Використання префікса "v-" є поширенішим для сховищ git.

Якщо використовується модуль обробки libvirt, тепер програма очікує на коректне завершення роботи qemu, замість того, щоб примусово завершувати роботу за 15 секунд. Це має допомогти у записі на повільні пристрої (особливо, дешеві флешки USB).

До повідомлень про помилки від libvirt тепер додається поле "err->int1", у якому, зазвичай, міститься "errno".

На ARM вилучено увесь код DTB (ієрархії пристроїв). qemu створює належну ієрархію на льоту, нам не потрібно вказувати її власноруч.

У тестах програмного інтерфейсу C тепер використовуються більші тестові диски, що надає змогу належно перевірити BTRFS (Pino Toscano).

Тести тепер мають належним чином працювати у основній системі, де встановлено лише Python 3 (Pino Toscano).

У прив'язках до C реалізовано однорідне (майже) іменування "guestfs_int_*". Раніше не було якоїсь спільної схеми визначення назв.

Застарілі функції "safe_malloc" та інші тепер не експортуються бібліотекою і не використовуються у прив'язках до мов програмування.

Встановлення для TMPDIR шляху, довшого за ~ 100 символів, більше не спричиняє аварійного випадкового завершення libguestfs без повідомлень під час створення сокетів доменів Unix (Pino Toscano).

Тепер у фоновій службі можна використовувати макрос "COMPILE_REGEXP".

Під час трасування тепер повністю виводяться результати, які містять структури (Pino Toscano).

До модуля Perl "Sys::Guestfs" більше не вбудовується програмний інтерфейс збільшення номера версії. Тепер цей модуль завжди має фіктивну версію 1.0. Щоб визначити справжню версію libguestfs з Perl, вам слід викликати "$g->version".

Увесь код було зібрано з "-Wstack-usage=10000", внесено багато змін для вилучення розміщень у стеку великих рядків та буферів.

Тепер усюди використовується функція error(3), якою замінено більшість колишніх вживань perror(3) + exit(3) та fprintf(3) + exit.

У коді C коментарі "/**" перетворено на документацію, яка автоматично додається до сторінки підручника guestfs-hacking(1).

Було додано безпечну функцію getumask. У свіжих ядрах Linux ця функція використовує нещодавно додане поле "Umask" у /proc/self/status. У давніших Linux та інших системах Unix ця функція використовує безпечну щодо потоків методику з використанням fork(2) (подяки: Josh Stone, Jiri Jaburek, Eric Blake).

Було додано безпечні обгортки posix_fadvise(2), також у код додано більше орієнтирів, які можуть трошки поліпшити швидкодію.

Додано безпечну обгортку до waitpid(2), яка належним чином обробляє властивість "INTR".

"podwrapper.pl" (використовується для створення сторінок підручника) тепер припиняє роботу, якщо знайдено будь-яку помилку у POD. Новий скрипт із назвою "podcheck.pl" виконує перехресну перевірку даних, виведених --help, параметрів засобів та сторінок підручника.

Усі номери версій у бібліотеці (наприклад, версії qemu, версії libvirt, версії гостьових операційних систем) уніфіковано у єдиному файлі src/version.c (Pino Toscano).

У гостьових системах Windows virt-customize використовуватиме нейтральний щодо постачальника шлях "C:\Program Files\Guestfs\Firstboot" для зберігання скриптів першого завантаження. Раніше використовувався "C:\Program Files\Red Hat\Firstboot". Ця зміна має бути непомітною для самих скриптів. (Cédric Bosdonnat)

У гостьових системах Linux служби першого завантаження, створені virt-builder --firstboot тощо, було перейменовано на "guestfs-firstboot" (Pino Toscano).

Тепер існує загальна функція "debug", яка використовується усіма засобами OCaml і замінює собою попередній код, який виконував "if verbose () then printf ...".

virt-p2v копіює файли, які їй потрібні на сервер перетворення virt-v2v за допомогою scp(1), замість спроб надсилати їх через сеанс оболонки. Це має поліпшити стійкість процесу і має бути повністю прозорим для кінцевого користувача.

Увесь код у mllib тепер збирається до єдиної бібліотеки "mllib.cma" або "mllib.cmxa". Увесь код у customize тепер збирається до єдиної бібліотеки "customize.cma" або "customize.cmxa". Це спрощує збирання засобів OCaml.

Тепер у базовій системі використовується lvmetad(8), якщо доступна (Pino Toscano).

Використовуються «мовчазні правила» для OCaml, Java, Erlang і POD. Скористайтеся "make V=1", щоб знову побачити рядки команд повністю (Pino Toscano).

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

virt-sparsify --in-place failed with UEFI system
run_command runs exit handlers when execve fails (e.g. due to missing executable)
virt-dib failed to create image using DIB_YUM_REPO_CONF
Fail to inspect Windows ISO file
Some info will show when convert guest to libvirt by virt-v2v with parameter --quiet
overlay of disk images does not specify the format of the backing file
Virt-manager can't show OS icons of win7/win8/ubuntu guest.
Improve error info "remote server timeout unexpectedly waiting for password prompt" when connect to a bogus server at p2v client
virt-p2v should update error prompt when 'Test connection' with a non-existing user in conversion server
virt-sysprep --install always failed to install the packages specified
virt-customize --truncate-recursive should give an error message when specifying a no-existing path
[RFE]Should give a better description about 'curl error 22' when failed using ssh identity http url at p2v client
Failed SSH to conversion server by ssh identity http url at p2v client
[RFE] uninstall packages inside the VM
Ifconfig command is not supported on p2v client
Convert a guest from RHEL by virt-v2v but its origin info shows RHEV at rhevm
Should remind a warning about disk image has a partition when using virt-p2v-make-disk
virt-get-kernel prompts an 'invalid value' error when using --format auto
virt-p2v spinner should be hidden when it stops spinning
Testing connection timeout when input regular user of conversion server with checked "use sudo......"button
[RFE] Suggestion give user a reminder for "Cancel conversion" button
Multiple network ports will not be aligned at p2v client
Update UEFI whitelist for official fedora packages
virt-customize --ssh-inject не застосовує належних прав доступу до файлів
extra quotes around UUID confuses findfs in RHEL (but not in Fedora)
Inspection does not parse /etc/redhat-release containing "Derived from Red Hat Enterprise Linux 7.1 (Source)"
RFE: Allow p2v kernel options without p2v.server to set defaults
virt-v2v should prevent using multiple '-b' and '-n' option appears on the command line
libguestfs: error: could not parse integer in version number: 7"
[1.33.16] Compilation Error: Unbound value List.sort_uniq in v2v.ml line 988, characters 10-24:
`virt-builder --update` fails with: "dnf -y --best upgrade: command exited with an error"
v2v cmd cannot exit and "block I/O error in device 'appliance': No space left on device (28)" is printed when specified "-v -x"
virt-rescue fails, but missing error message
RFE: virt-p2v log window should process colour escapes and backspaces
virt-v2v -o libvirt doesn't preserve or use correct <graphics type="vnc|spice">
error: internal error: Invalid floppy device name: hdb
Wrong warning info "use standard VGA" shows when converting windows > 7 by virt-v2v
OS name of win8.1 x64 guest shows incorrect in rhevm3.6 general info
virt-v2v does not copy additional disks to Glance
Failure when disk contains an LV with activationskip=y
virt-v2v doesn't remove VirtualBox additions correctly because of file quoting
There should be a reminder to avoid user to edit a guest image by multiple tools at the same time in guestfish man page
guestfish can not ll a symbolic link dir or edit a file in it
guestfish should be able to handle LVM thin layouts
ppc64le: virt-customize --install fail to detect the guest arch
Test that trimming in virt-v2v doesn't regress
Virt-v2v gives an error on a blank disk: part_get_parttype: unknown signature, of the output: BYT;
virt-p2v in non-GUI mode doesn't show any conversion progress or status
P2V invalid password prints unexpected end of file waiting for command prompt.
On Ubuntu, virt-builder --install and --update cannot use the network
virt-v2v: warning: unknown guest operating system: windows windows 6.3 when converting win8,win8.1,win2012,win2012R2,win10 to rhev
Support inspecting docker images without /etc/fstab
libguestfs cannot inspect recent Fedora / RHEL >= 7 when /usr is a separate partition
P2V: invalid conversion server prints unexpected end of file waiting for password prompt.
virt-rescue --selinux can not work well, when enable selinux in the command line the value of 'getenforce' is still Disabled in virt-rescue appliance
ARM 32 bit on Ubuntu: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
NetworkManager avc unlink denied for resolv.conf after using --selinux-relabel
RFE: virt-sysprep має враховувати роботу SELinux
RFE: virt-p2v: display more information about storage devices
SELinux handling could be done better.

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

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