guestfs-release-notes-1.28(1) Virtualization Support guestfs-release-notes-1.28(1)

guestfs-release-notes - یادداشت‌های انتشار libguestfs

این یادداشت‌های انتشار تنها تفاوت‌ها نسبت به تفکیک انشعاب پایدار/توسعه پیشین (1.26.0) را پوشش می‌دهند. برای گزارش تفصیلی تغییرات، لطفاً مخزن git یا فایل ChangeLog توزیع‌شده در بسته‌ی tarball را ببینید.

ابزارها (Tools)

ابزارهای virt-v2v(1) و virt-p2v(1) ابزارهایی برای تبدیل از هایپروایزرهای خارجی (مانند VMware یا Xen) یا ماشین‌های فیزیکی به KVM هستند. این ابزارها پیش‌تر پروژه‌ای مجزا بودند. کد هر دو ابزار در درخت libguestfs ادغام شده است. به عنوان بخشی از بازسازی کد، virt-p2v دوباره‌نویسی شده است (از Ruby به C)، و virt-v2v اکنون از چندین قابلیت مدرن qemu بهره می‌برد که اجرای آن را چندین برابر سریع‌تر از گذشته می‌کند. virt-v2v(1) می‌تواند از این مبداها وارد کند: VMware vCenter، فایل‌های VMware OVA، فایل‌های دیسک محلی، libvirt، و RHEL 5 Xen. این ابزار می‌تواند به این مقاصد خروجی دهد: oVirt یا Red Hat Enterprise Virtualization (RHEV-M)، OpenStack Glance، libvirt، qemu و فایل‌های دیسک محلی.

virt-log(1) ابزار جدیدی برای فهرست کردن فایل‌های گزارش (log) از ماشین‌های مهمان است. این ابزار از انواع مهمان‌ها از جمله لینوکس سنتی، لینوکس مجهز به journal و event log ویندوز پشتیبانی می‌کند.

virt-builder(1) گزینه جدید "--machine-readable" را دارد تا استفاده از virt-builder توسط سایر برنامه‌ها ساده‌تر شود.

گزینه جدید --chmod در virt-builder(1) و virt-customize(1).

virt-sysprep(1) اکنون این موارد را پاک‌سازی می‌کند: لاگ‌های journal مربوط به systemd، لاگ‌های anaconda، لاگ‌های lightdm، فایل‌های debian-installer، لاگ‌های apt، لاگ‌های exim، لاگ‌های ConsoleKit، لاگ‌های firewalld، لاگ‌های grubby، لاگ‌های proftpd، لاگ‌های libvirt/libxml، و چندین فایل گزارش دیگر. عملیات "user-account" در virt-sysprep اکنون قادر به حذف یا نگه‌داشتن حساب‌های کاربری خاص است (Pino Toscano).

گزینه جدید --fd در guestmount(1) که امکان اجرای guestmount را به صورت تحت‌فرمان (captive) در زیر فرآیندی دیگر فراهم می‌کند.

virt-sparsify(1) دارای گزینه جدید --tmp است که به شما امکان می‌دهد محل ذخیره فایل‌های موقت را دقیقاً کنترل کنید.

virt-sparsify(1) اکنون می‌تواند روی یک دستگاه بلوکی (block device) بنویسد.

virt-customize(1) و virt-sysprep(1) اکنون از افزودن اسکریپت‌های firstboot به مهمان‌های Windows پشتیبانی می‌کنند.

virt-cat(1)، virt-edit(1) و virt-ls(1) اکنون از گزینه -m پشتیبانی می‌کنند که به شما اجازه می‌دهد بازرسی خودکار مهمان‌ها را نادیده گرفته و در عوض مشخص کنید که پارتیشن‌ها کجا سوار شوند (Pino Toscano).

ابزارهای virt اکنون خروجی رنگی دارند: سبز برای OK، قرمز برای خطاها، و آبی برای هشدارها.

رابط‌های زبان (Language bindings)

می‌توانید با استفاده از "make -C python sdist"; یک توزیع Python بسازید.

رابط‌های Ruby از "Test::Unit" به "MiniTest" منتقل شده‌اند.

رابط‌های Java اکنون با OpenJDK 8 سازگار هستند (Pino Toscano).

بازرسی (Inspection)

توزیع Oracle Linux به عنوان "oraclelinux" بازگردانده می‌شود (Nikos Skalkotos).

مهمان‌های Linux که فاقد /etc/fstab هستند اکنون پشتیبانی و مدیریت می‌شوند (Pino Toscano).

سیستم‌عامل Minix به عنوان "minix" بازگردانده می‌شود (Pino Toscano).

معماری‌ها (Architectures)

پشتیبانی از Aarch64 (معماری ARM شصت و چهار بیتی) افزوده شده است.

بازرسی و فراخوانی "guestfs_file_architecture" اکنون می‌توانند مهمان‌های arm (سی و دو بیتی) و aarch64 را شناسایی کنند..SS "امنیت (Security)"

پیش‌تر Libguestfs از رابط‌های برنامه‌نویسی ناامن libxml2 برای تجزیه XML در libvirt استفاده می‌کرد. این رابط‌ها به‌طور پیش‌فرض اجازه می‌دادند هنگام ارائه برخی اسناد XML خاص، اتصالات شبکه برقرار شود. همچنین با استفاده از یک سند XML ناهنجار، امکان مصرف کامل CPU، حافظه یا توصیف‌کننده‌های فایل روی رایانه وجود داشت.

از آنجا که XML در libvirt از یک منبع قابل‌اعتماد (دیمن libvirt) می‌آید، تصور نمی‌شود که این آسیب‌پذیری قابل بهره‌برداری بوده باشد.

این مشکل در libguestfs ≥ 1.27.9 رفع شد و اصلاحیه به نسخه‌های پایدار ≥ 1.26.2، ≥ 1.24.9، ≥ 1.22.10 و ≥ 1.20.13 نیز بک‌پورت شد. (با تشکر از: Dan Berrange و Pino Toscano).

این باگ bash به‌طور غیرمستقیم بر libguestfs تأثیر می‌گذارد. برای اطلاعات بیشتر ببینید: https://www.redhat.com/archives/libguestfs/2014-September/msg00252.html

رابط‌های برنامه‌نویسی جدید

"guestfs_clear_backend_setting"
"guestfs_get_backend_setting"
"guestfs_set_backend_setting"
از این رابط‌های برنامه‌نویسی برای تنظیم گزینه‌های جداگانهٔ بک‌اند استفاده کنید.
"guestfs_cpio_out"
تبدیل یک دایرکتوری درون ایمیج دیسک به قالب cpio.
"guestfs_journal_get_realtime_usec"
واکشی زمان‌های دقیق ژورنال، ببینید sd_journal_get_realtime_usec(3).
"guestfs_lstatns"
"guestfs_lstatnslist"
"guestfs_statns"
نسخه‌های بهبودیافته از "guestfs_lstat"، "guestfs_lstatlist" و "guestfs_stat" که برچسب‌های زمانی با دقت نانوثانیه برمی‌گردانند.

اکنون Libguestfs می‌تواند با qemu 2.x ساخته شود.

افزودن پشتیبانی از بسته‌بندی appliance روی Mageia (با تشکر از Joseph Wang و Thierry Vignaud).

بسته Augeas اکنون یک وابستگی الزامی است.

ابزارهای Flex و bison اکنون وابستگی‌های الزامی هستند.

بک‌اند User-Mode Linux (UML) دیگر پشتیبانی نمی‌شود (اگرچه همچنان در دسترس است). به محض اینکه کسی وارد عمل شود و پس‌رفت‌ها و نقص‌های گوناگون در هسته (Linux) UML را برطرف کند، مجدداً پشتیبانی خواهد شد.

اکنون می‌توانید با مشخص کردن "LIBGUESTFS_BACKEND_SETTINGS=gdb" دیباگر gdb را به qemu متصل کنید.

اکنون بایوس سریال (sgabios) توسط بک‌اند libvirt (تنها روی x86) استفاده می‌شود تا پیام‌های اولیه BIOS دیده شوند.

برای ابزارهای virt در OCaml، استثناها اکنون توسط یک تابع مشترک مدیریت و چاپ می‌شوند.

هشدار GCC دربارهٔ فریم‌های پشتهٔ بزرگ اکنون به‌طور پیش‌فرض فعال است. بخش‌های متعددی که از آرایه‌ها و ساختارهای بزرگ روی پشته استفاده می‌کردند اصلاح شده‌اند.

اکنون آزمایشی برای بوت مکرر appliance وجود دارد. برای یافتن نشت‌های حافظهٔ هسته مفید است. ببینید: tests/qemu/qemu-boot.c

آزمایشی برای سنجش سرعت قابلیت‌های گوناگون qemu نظیر بارگذاری‌های virtio-serial و نوشتن روی دستگاه‌های بلوکی تعبیه شده است. ببینید: tests/qemu/qemu-speed-test.c

هشدارهای GCC اکنون برای اتصالات OCaml-C در ابزارهای virt در OCaml فعال شده‌اند.

کد ویرایش فایل‌ها که توسط virt-edit(1)، دستور "edit" در guestfish(1)، گزینهٔ --edit در virt-customize(1) و موارد دیگر استفاده می‌شود، اکنون میان تمام این ابزارها مشترک شده است (با تشکر از Pino Toscano).

آزمایش‌های FUSE به زبان C بازنویسی شدند تا کنترل دقیق‌تری بر نحوهٔ آزمایش فراخوان‌های سیستمی فراهم شود.

اسکریپت update-bugs.sh اصلاح شده است تا در صورت در دسترس نبودن سرور Bugzilla، دیگر فایل خالی "BUGS" ایجاد نکند.

آزمایش‌های virt-resize(1) اکنون از روش تصادفی (stochastic) برای اطمینان از پوشش آزمایشی بسیار عمیق‌تر و جامع‌تر استفاده می‌کنند.

هنگامی که شبکه فعال است، appliance اکنون از DHCP برای دریافت آدرس IP استفاده می‌کند.

اگر libvirt در حال استفاده باشد، appliance به "virbr0" متصل خواهد شد (می‌توان با تنظیم "LIBGUESTFS_BACKEND_SETTINGS=network_bridge=<some_bridge>" آن را تغییر داد). این قابلیت، اتصال‌های شبکه‌ای کامل با امکان کارکرد ICMP، ping و غیره را فراهم می‌سازد..SS "باگ‌های رفع‌شده (Bugs fixed)"

متغیر LIBGUESTFS_BACKEND خالی (اما مقداردهی‌شده) پیام libguestfs: error: invalid backend: را چاپ می‌کند
بستهٔ libguestfs-bash-completion شامل فایل /usr/share/bash-completion/completions/virt-log است، اما هیچ تابع _virt_log() در آن فایل وجود ندارد
خطای نگارشی در صفحهٔ راهنمای virt-edit
تبدیل‌های virt-v2v از سرور VMware vCenter به‌کندی اجرا می‌شوند
virt-v2v: هشدار: هنگام تبدیل مهمان rhel5 دارای گرافیک sdl، نمایشگر <graphics type='sdl'> نادیده گرفته شد
دستور 'copy-file-to-file /src /dest' فایل /dest را ایجاد می‌کند حتی اگر دستور 'copy-file-to-file /src /dest' شکست بخورد
عبارت "RECURSIVE LONG LISTING" در 'man virt-diff' یافت نمی‌شود
دستور virt-v2v دیسک‌های داده و سیستم‌فایل‌های سوارنشده را fstrim نمی‌کند
برون‌بری مهمان دارای بیش از ۲ دیسک به RHEV، پس از درون‌ریزی تنها یک دیسک نمایش داده می‌شود
virt-filesystems: نام نادرست LVM vg هنگام فهرست‌کردن سیستم‌فایل‌های ایمیج Fedora 21 Alpha Atomic
گزینهٔ --no-selinux-relabel وجود ندارد
درخواست ویژگی (RFE): اجازه دادن به استفاده از qemu-bridge-helper برای پیاده‌سازی guestfs_set_network
دستور virt-v2v هشدار چاپ می‌کند: /files/etc/fstab/8/spec references unknown device "cdrom"
پس‌رفت در تنظیم گذرواژهٔ کاربر ریشه با virt-builder/virt-customize
دستور virt-v2v -v -x در حین تبدیل مهمان ویندوز روی hivex: hivex_open: used block id …… متوقف می‌شود
بهبود اطلاعات خطا هنگام تبدیل مهمان ویندوز با سیستم‌فایل ناتمام و تمیزنشده (unclean)
دستور virt-v2v در تبدیل مهمان win7 شکست می‌خورد
درخواست ویژگی (RFE): فراخوانی‌های stat برچسب‌های زمانی در مقیاس نانوثانیه برنمی‌گردانند
تابع futimens() از طریق guestmount هیچ عملی انجام نمی‌دهد (no-op)
برنامهٔ guestfish هنگام خروج نمی‌تواند رنگ خروجی پایانه را بازیابی کند؛ اگر رنگ پس‌زمینهٔ پایانه سیاه باشد موجب زحمت و اشکال خواهد شد
گزینهٔ '--password-crypto' در virt-customize کار نمی‌کند
نمایش هشدار هنگام تبدیل مهمان‌ها به rhev: chown: changing ownership of ‘/tmp/v2v.u48xag/*.ovf’: Invalid argument
نمایش هشدار هنگام تبدیل مهمان rhel7: virt-v2v:could not update grub2 console: aug_get: no matching node (ignored)
دستور virt-v2v با این خطا با شکست مواجه می‌شود: cannot open Packages index using db5
دستور part-get-name هنگام اجرای 'part-get-name /dev/sda 1' پیام خطای 'libguestfs: error: part_get_name: parted does not support the machine output (-m)' را نمایش می‌دهد
گزینهٔ '--mount-options' در virt-sysprep به‌درستی کار نمی‌کند
دستور غیرمجاز 'part-get-name /dev/sda1 1' باعث خرابی و فروپاشی (crash) فراجامهٔ libguestfs می‌شود
دستور virt-v2v هشدار چاپ می‌کند: WARNING:/files/boot/grub/device.map references unknown device "xvda"
هنگام تبدیل مهمان xen hvm خطای virt-v2v: error: disk sda has no defined format نمایش داده می‌شود
[درخواست ویژگی] virt-v2 باید از تبدیل دامنه با استفاده از UUID دامنه به‌جای نام دامنه پشتیبانی کند
[درخواست ویژگی] virt-v2 باید از تبدیل یک ماشین مهمان به dir-pool با استفاده از uuid مخزن (pool) پشتیبانی کند
گزینهٔ '--user-accounts' در virt-sysprep به‌خوبی کار نمی‌کند
دستور virt-v2v در تبدیل مهمان‌های xen pv با شکست مواجه می‌شود.
دستور virt-v2v در تبدیل مهمان‌های esx شکست می‌خورد
دستور qemu-img پیام خطا برای backing file را دو بار نمایش می‌دهد
اگر '--format qcow2' پس از '-a guest.img' اضافه شود هیچ پیام خطایی در خروجی داده نمی‌شود، در حالی که guest.img یک فایل ایمیج در قالب خام (raw) است
گزینهٔ '--format' در virt-builder به‌درستی کار نمی‌کند
درخواست ویژگی (RFE): برون‌بری به دامنهٔ دادهٔ RHEV
هنگام استفاده از چندین گزینهٔ متناقض با virt-v2v هیچ خطایی نشان داده نمی‌شود
بهبود اطلاعات خطا هنگام تبدیل مهمان xen که دسترسی SSH بدون گذرواژه برای آن پیکربندی نشده است
بهبود اطلاعات خطا هنگام تبدیل مهمانی که هیچ فضای خالی باقی‌مانده‌ای ندارد
هنگام تبدیل مهمان در حال اجرا با virt-v2v هیچ خطایی نمایش داده نمی‌شود
دستور virt-v2v هنگام تبدیل مهمان‌های دارای initramfs-*kdump.img زیر مسیر /boot با شکست مواجه خواهد شد
مهمان xen پس از تبدیل توسط virt-v2v دچار وحشت هسته (kernel panic) خواهد شد
پیام آزاردهنده دربارهٔ مجوزهای /dev/kvm
بخش پسین (backend) 'direct' در libguestfs باید پیش از اجرای exec برای qemu، توصیف‌کننده‌های فایل را ببندد تا از نشت توصیف‌کننده‌های فایل فاقد !O_CLOEXEC جلوگیری شود
دستور virt-sparsify در صورت استفاده از دستگاه‌های بلوکی به‌عنوان فایل‌های خروجی، روی آن‌ها بازنویسی می‌کند
فایل fstab خالی فرایند بازرسی libguestfs را با خطا مواجه می‌کند
Guestfs.Error("vgchange_uuid_all: Volume group has active logical volumes")
صفحهٔ راهنمای virt-win-reg خراب شده است
کاربر ریشه (root) هنگام دسترسی به یک پوشهٔ غیر ریشه روی ایمیج اسنپ‌شات guestmount VMDK با خطا مواجه می‌شود
این APIها نیز باید به فهرست دستورهای `guestfish -h` اضافه شوند
فهرست بسته‌های mageia نادرست است
برنامهٔ libguestfs 1.27.13 به‌دلیل ترتیب پیوند کتابخانه‌های libxml ساخته نمی‌شود
درخواست ویژگی (RFE): سازوکار بدون نیاز به پولینگ (non-polling) برای تشخیص آماده‌بودن guestmount --no-fork
دستور scrub-file نمی‌تواند فایل‌های پیوند (link) را مدیریت کند
خطاهای نگارشی در صفحات راهنما
درخواست ویژگی (RFE): نام‌های مستعار (aliases) برای virt-builder
تنظیم "proxy=off" در virt-builder پروکسی را برای بارگیری‌ها خاموش نمی‌کند
صفحهٔ راهنمای virt-sparsify ذکر نمی‌کند که چه اتفاقی برای اسنپ‌شات‌های درون یک ایمیج qcow2 می‌افتد (آن‌ها دور ریخته می‌شوند).IP https://bugzilla.redhat.com/1092753 4 virt-builder: اگر چندین مخزن حاوی ایمیج‌های os-version یکسانی باشند، در خروجی -l تکرار می‌شوند
شکست اجرای tar-in-opts که باعث کرش کردن اپلاینس libguestfs شد
virt-resize: libguestfs error: part_set_name: parted: /dev/sdb: Error during translation: Invalid or incomplete multibyte or wide character
دستور virt-builder نمی‌تواند بر روی یک block device بنویسد
شکست آزمون‌های Ruby با آخرین نسخهٔ Ruby
دستور virt-sparsify --in-place نمی‌تواند به میزانی که انتظار می‌رود آزادسازی فضا (sparsify) انجام دهد
دستور virt-df پس از ارتقا به 6.5 نمی‌تواند فضای دیسک استفاده‌شدهٔ سیستم‌عامل مهمان windows را گزارش کند
خطای virt-builder: "syntax error at line 3: syntax error"
در صورت استفاده از block deviceها به‌عنوان فایل‌های خروجی، virt-sparsify روی آن‌ها بازنویسی می‌کند
دستور virt-rescue در Ubuntu 12.04 نمی‌تواند اعلان ≥<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-2025 Red Hat Inc.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «اجازه‌نامه عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط «بنیاد نرم‌افزارهای آزاد» (Free Software Foundation) منتشر شده است، چه نسخهٔ ۲ اجازه‌نامه یا (به انتخاب خودتان) هر نسخهٔ متأخرتری بازتوزیع کرده یا تغییر دهید.

این برنامه با این امید توزیع می‌شود که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر «اجازه‌نامه عمومی همگانی گنو» را مطالعه کنید.

شما باید به همراه این برنامه یک نسخه از «اجازه‌نامه عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

برای دریافت فهرستی از باگ‌های libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

برای گزارش یک باگ جدید در libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

هنگام گزارش باگ، لطفاً موارد زیر را ارائه دهید:

  • نسخهٔ libguestfs.
  • محل تهیهٔ libguestfs (برای نمونه: کدام توزیع لینوکس، کامپایل‌شده از کد منبع، و غیره).
  • باگ را به‌طور دقیق شرح دهید و روشی برای بازتولید آن ارائه کنید.
  • دستور libguestfs-test-tool(1) را اجرا کرده و خروجی کامل و ویرایش‌نشدهٔ آن را درون گزارش باگ قرار دهید.
2026-07-14 libguestfs-1.60.1