| guestfs-release-notes-1.26(1) | Virtualization Support | guestfs-release-notes-1.26(1) |
نام (NAME)
guestfs-release-notes - یادداشتهای انتشار libguestfs
یادداشتهای انتشار برای LIBGUESTFS 1.26 (RELEASE NOTES FOR LIBGUESTFS 1.26)
این یادداشتهای انتشار تنها تفاوتها نسبت به تفکیک شاخه پایدار/توسعه قبلی (1.24.0) را پوشش میدهند. برای گزارش تغییرات تفصیلی، لطفاً مخزن git یا فایل ChangeLog توزیعشده در بسته tarball را بررسی کنید.
ویژگیهای جدید (New features)
ابزارها (Tools)
ابزار virt-customize(1) ابزاری جدید برای سفارشیسازی ایمیجهای دیسک ماشین مجازی است. این ابزار به شما امکان نصب بستهها، ویرایش فایلهای پیکربندی، اجرای اسکریپتها، تنظیم گذرواژهها و موارد دیگر را میدهد. ابزارهای virt-builder(1) و virt-sysprep(1) از virt-customize استفاده میکنند، و گزینههای خط فرمان در تمام این ابزارها اکنون یکسان است.
ابزار virt-diff(1) ابزاری جدید برای نمایش تفاوتهای میان سیستمفایلهای دو ماشین مجازی است. کاربرد اصلی آن نمایش فایلهای تغییریافته میان دو تصویر لحظهای (snapshot) است.
ابزار virt-builder(1) بهطور چشمگیری بهبود یافته است. روشهای بسیار بیشتری برای سفارشیسازی ماشین مجازی وجود دارد. این ابزار میتواند الگوها را از چندین مخزن دریافت کند. پیادهسازی داخلی و موازیشدهی xzcat سرعت استخراج الگوها را افزایش میدهد. ابزار Virt-builder از یک برنامهریز بهینهساز برای انتخاب سریعترین روش ساخت ماشین مجازی استفاده میکند. اکنون استفاده از virt-builder از طریق برنامههای دیگر آسانتر شده است. پشتیبانی از بینالمللیسازی به فرادادهها (metadata) اضافه شده است. برچسبگذاری مجدد SELinux روی فایلها بهینهتر شده است. قابلیت ساخت سیستمهای میهمان برای چندین معماری فراهم شده است. پیامهای خطا بهبود یافتهاند. (Pino Toscano)
ابزار virt-sparsify(1) دارای گزینه جدید --in-place است. این گزینه یک ایمیج را درجا (بدون رونوشتبرداری از آن) تنک (sparsify) میکند و بسیار سریعتر است. (با کمکهای بسیار از طرف Paolo Bonzini)
ابزار virt-sysprep(1) میتواند فایلها را تحت کنترل کاربر حذف و پاکسازی (scrub) کند. شما میتوانید حسابهای کاربری را قفل کنید یا برای حسابها گذرواژههای تصادفی تعیین نمایید. این ابزار میتواند فایلهای گزارش (log) بیشتری را پاک کند. میتواند یک سیستم میهمان را از سامانه Red Hat Subscription Manager لغو اشتراک کند. روشی منعطف و جدید برای فعال و غیرفعال کردن عملیاتها افزوده شده است. (Wanlong Gao, Pino Toscano)
ابزار virt-win-reg(1) به شما امکان میدهد از URIها برای مشخص کردن ایمیجهای دیسک راه دور استفاده کنید.
ابزار virt-format(1) اکنون میتواند فضای اضافی بازیابیشده را به میزبان بازگرداند.
ابزار guestfish(1) متغیرهای محیطی بیشتری دارد تا کنترل دقیقی روی خط اعلان "><fs>" ارائه دهد. Guestfish اکنون فایل پیکربندی (بهندرت استفادهشدهی) خود را با ترتیبی متفاوت میخواند تا تنظیمات محلی بر تنظیمات سراسری اولویت داشته باشند. (Pino Toscano)
ابزار virt-make-fs(1) مجدداً به زبان C بازنویسی شد، اما از نظر عملکرد و نحوه استفاده در خط فرمان بدون تغییر مانده است.
بستارهای زبانهای برنامهنویسی (Language bindings)
بستارهای OCaml دارای یک ماژول جدید "Guestfs.Errno" هستند که برای بررسی شماره خطای بازگرداندهشده توسط "Guestfs.last_errno" استفاده میشود.
آزمونهای PHP اکنون به درستی کار میکنند. (Pino Toscano)
بازرسی (Inspection)
بخش بازرسی (Inspection) میتواند ایمیجهای زنده (live images) دبیان را شناسایی کند.
معماریها (Architectures)
معماری ARMv7 (نسخه ۳۲ بیتی) اکنون از شتابدهنده KVM پشتیبانی میکند.
معماری Aarch64 (نسخه ۶۴ بیتی ARM) پشتیبانی میشود، اما بخش appliance هنوز کار نمیکند.
پشتیبانی از PPC64 اصلاح و تقویت شده است..SS "امنیت (Security)"
- ممانعت از سرویسدهی هنگام بازرسی ایمیجهای دیسک دارای حجمهای آسیبدیده btrfs
- امکان از
کار
انداختن libguestfs
(و
برنامههایی
که از libguestfs به
عنوان یک
کتابخانه
استفاده
میکنند) با
ارائه یک
ایمیج دیسک
حاوی یک حجم
آسیبدیده
btrfs وجود داشت.
این اشکال ناشی از ارجاع به اشارهگر تهی (NULL pointer dereference) بود که باعث ممانعت از سرویسدهی (denial of service) میشد، و گمان نمیرود فراتر از این قابل بهرهبرداری باشد.
برای اصلاحیه، کامیت d70ceb4cbea165c960710576efac5a5716055486 را ببینید. این اصلاحیه در شاخههای پایدار libguestfs با نگارشهای ≥ 1.26.0، ≥ 1.24.6 و ≥ 1.22.8 و همچنین در RHEL با نگارش ≥ 7.0 گنجانده شده است. نگارشهای قبلی libguestfs آسیبپذیر نیستند.
- تولید بهتر گذرواژههای تصادفی root و بذرهای تصادفی
- هنگام تولید گذرواژههای تصادفی root و بذرهای تصادفی، دو اشکال که احتمالاً به امنیت مرتبط بودند رفع شدند. نخست، دیگر بایتهای بیش از حد از /dev/urandom خوانده نمیشوند (که بیشتر آنها بدون استفاده دور ریخته میشدند). دوم، کد را تغییر دادیم تا از انحراف پیمانهای (modulo bias) جلوگیری شود. تصور نمیشد که این مشکلات قابل بهرهبرداری باشند. (هر دو تغییر توسط Edwin Török پیشنهاد شده است)
رابط برنامهنویسی (API)
اکنون پارامترهای GUID هنگام ارسال به فراخوانیهای API اعتبارسنجی میشوند، در حالی که پیشتر ارسال هر رشتهای امکانپذیر بود. (Pino Toscano)
رابطهای برنامهنویسی جدید (New APIs)
- "guestfs_add_drive_opts": پارامتر جدید "discard"
- پارامتر جدید "discard" امکان کنترل دقیق روی پشتیبانی از discard/trim را برای یک دیسک خاص فراهم میکند. این امر باعث میشود هنگام حذف فایلها یا ارسال فراخوانی APIیِ "guestfs_fstrim"، فایل میزبان تنکتر (sparse) (یا thin-provisioned) شود.
- "guestfs_add_domain": پارامترهای جدید: "cachemode"، "discard"
- این پارامترها هنگام افزودن دیسکهای دامنه به لایههای زیرین منتقل میشوند.
- "guestfs_blkdiscard"
- دور ریختن (Discard) تمام بلوکها روی یک دستگاه guestfs. این کار در ترکیب با پارامتر "discard" در بالا، فایل میزبان را تنک (sparse) میکند.
- "guestfs_blkdiscardzeroes"
- بررسی اینکه آیا بلوکهای دور ریختهشده (discarded) به صورت صفر بازخوانی میشوند یا خیر.
- "guestfs_compare_*"
- "guestfs_copy_*"
- به ازای هر ساختاری (struct) که از طریق API بازگردانده میشود، اکنون libguestfs توابع "guestfs_compare_*" و "guestfs_copy_*" را تولید میکند تا به شما امکان مقایسه و کپی کردن این ساختارها را بدهد.
- "guestfs_copy_attributes"
- کپی کردن ویژگیها (مانند مجوزها، xattrs، مالکیت) از یک فایل به فایل دیگر. (Pino Toscano)
- "guestfs_disk_create"
- یک API منعطف برای ایجاد ایمیجهای دیسک خالی از صفر. این امر نیاز به فراخوانی برنامههای خارجی مانند qemu-img(1) را برطرف میکند.
- "guestfs_get_backend_settings"
- "guestfs_set_backend_settings"
- تنظیمات
اختصاصی به
ازای هر
پسفراور (backend)
(همچنین
میتواند
از طریق
متغیر
محیطی
"LIBGUESTFS_BACKEND_SETTINGS"
تنظیم شود).
کاربرد
اصلی این
مورد،
تحمیل حالت
TCG در
پسفراورهای
مبتنی بر qemu
است؛ به
عنوان مثال:
export LIBGUESTFS_BACKEND=direct export LIBGUESTFS_BACKEND_SETTINGS=force_tcg
- "guestfs_part_get_name"
- دریافت برچسب یا نام یک افراز (برای ایمیجهای دیسک GPT).
تغییرات ساخت (Build changes)
بستههای اضافی زیر برای ساخت libguestfs 1.26 مورد نیاز هستند:
- supermin ≥ 5
- نگارش ۵ از Supermin برای ساخت این نسخه از libguestfs لازم است.
- flex, bison
- اکنون Virt-builder برای تجزیه فایل متادیتای خود از یک تجزیهکننده واقعی استفاده میکند، بنابراین این ابزارها الزامی هستند.
- xz
- این مورد اکنون یک وابستگی ساخت الزامی است، در حالی که پیشتر (از نظر تئوری) اختیاری بود.
سازوکار داخلی (Internals)
استخراج پیامهای PO برای پایداری بیشتر بازنویسی شد. (Pino Toscano)
در صورتی که الگوی آرگومان --insert یا --verbatim پیدا نشود، "podwrapper" خطایی صادر میکند.
اکنون libguestfs در صورتی که qemu پشتیبانی کند، گزینه -enable-fips را برای فعالسازی FIPS به qemu ارسال میکند.
اگر نمیخواهید هایپروایزر پیشفرضی را تعیین کنید، میتوانید از "./configure --without-qemu" استفاده نمایید.
لایههای همپوشان کپیهنگامنوشتن [COW] (که به عنوان مثال برای درایوهای فقطخواندنی استفاده میشوند)، اکنون از طریق یک API داخلی پسفراور (".create_cow_overlay") ایجاد میشوند.
پسفراور libvirt از ماکروهای C جالبی برای تولید XML استفاده میکند. این ماکروها سادهتر و ایمنتر هستند.
قالب فایل ChangeLog تغییر کرده است. اکنون به جای استفاده از یک قالب سفارشی، دقیقاً مشابه با "git log" است.
راهاندازی اپلاینس (Appliance) تغییر کرده است:
- اپلاینس libguestfs اکنون LVM را به همان شیوهای که در ماشینهای فیزیکی انجام میشود مقداردهی اولیه میکند.
- اپلاینس libguestfs
هنگام
راهاندازی،
رشتهای
خالی در
/proc/sys/kernel/hotplug
نمینویسد.
توجه داشته باشید که باید هسته خود را طوری پیکربندی کنید که دارای "CONFIG_UEVENT_HELPER_PATH=""" باشد، در غیر این صورت با خطاهای عجیب LVM مواجه خواهید شد (این موضوع برای هر ماشین لینوکسی صادق است، نه فقط libguestfs). (Peter Rajnoha)
اکنون libguestfs میتواند روی معماریهایی ساخته شود که ocamlc(1) را دارند اما فاقد ocamlopt(1) هستند. (Hilko Bengen, Olaf Hering)
نمیتوانید از "./configure --disable-daemon --enable-appliance" استفاده کنید. در هر حال این کار هیچ منطقی نداشت. اکنون اسکریپت configure صراحتاً از آن جلوگیری میکند.
فایل packagelist به جای "cpp" از "m4" برای بسط ماکروها استفاده میکند..SS "باگهای برطرفشده (Bugs fixed)"
- https://bugzilla.redhat.com/1073906
- بایندینگهای java در inspect_list_applications2 خطای java.lang.ArrayIndexOutOfBoundsException پرتاب میکنند:
- https://bugzilla.redhat.com/1063374
- [RFE] فعالسازی عملیات clean یا unregister در subscription manager برای sysprep
- https://bugzilla.redhat.com/1060404
- دستور virt-resize نام پارتیشنهای GPT را حفظ نمیکند
- https://bugzilla.redhat.com/1057504
- دستور mount-local در صورت سوار نشدن ریشه (root) باید خطای واضحتری ارائه دهد
- https://bugzilla.redhat.com/1056290
- دستور virt-sparsify در صورت استفاده از دستگاههای بلوکی بهعنوان فایلهای خروجی، آنها را بازنویسی میکند
- https://bugzilla.redhat.com/1055452
- libguestfs: error: invalid backend: appliance
- https://bugzilla.redhat.com/1054761
- تابع guestfs_pvs در صورت مفقود بودن یک حجم فیزیکی، عبارت “unknown device” را چاپ میکند
- https://bugzilla.redhat.com/1053847
- تنظیمات پیشفرض توصیهشده برای ساعت/تایمر
- https://bugzilla.redhat.com/1046509
- بسته ruby-libguestfs هنگام فراخوانی Guestfs::Guestfs.new خطای “expecting 0 or 1 arguments” صادر میکند
- https://bugzilla.redhat.com/1045450
- عدم امکان بازرسی کامل تصویر دیسک cirros 0.3.1
- https://bugzilla.redhat.com/1045033
- متغیر LIBVIRT_DEFAULT_URI=qemu:///system عملکرد libguestfs را مختل میکند
- https://bugzilla.redhat.com/1044585
- شبکه virt-builder (برای مثال --install) در صورتی که در resolv.conf مقدار nameserver روی 127.0.0.1 تنظیم شده باشد کار نمیکند
- https://bugzilla.redhat.com/1044014
- هنگام نصب بودن SSSD، پیکربندی libvirt نیازمند احراز هویت است، اما این موضوع برای کاربر مشخص نیست
- https://bugzilla.redhat.com/1039995
- شکست virt-make-fs در ایجاد fat/vfat روی کل دیسک: Device partition expected, not making filesystem on entire device '/dev/sda' (use -I to override)
- https://bugzilla.redhat.com/1039540
- حذف فایلهای گزارش (logfiles) بیشتر توسط virt-sysprep
- https://bugzilla.redhat.com/1033207
- درخواست ویژگی (RFE): بخش بازرسی libguestfs سیدی زنده Free4NAS را شناسایی نمیکند
- https://bugzilla.redhat.com/1028660
- درخواست ویژگی (RFE): دستورهای virt-sysprep/virt-builder باید گزینهای برای قفل کردن حساب کاربری داشته باشند
- https://bugzilla.redhat.com/1026688
- شکست libguestfs در بررسی ماشین مهمان libvirt با درایوهای ceph: rbd: image name must begin with a '/'
- https://bugzilla.redhat.com/1022431
- شکست virt-builder در صورتی که $HOME/.cache وجود نداشته باشد
- https://bugzilla.redhat.com/1022184
- ابزار libguestfs: عدم استفاده از فایل jar نسخهبندیشده
- https://bugzilla.redhat.com/1020806
- تمام عملیاتهای LVM در libguestfs روی Debian/Ubuntu با شکست مواجه میشوند
- https://bugzilla.redhat.com/1008417
- نیاز به بهروزرسانی متن راهنمای خروجی در part-set-gpt-type
- https://bugzilla.redhat.com/953907
- دستور virt-sysprep نام میزبان (hostname) را در Debian/Ubuntu بهدرستی تنظیم نمیکند
- https://bugzilla.redhat.com/923355
- ابزار guestfish نویسه تحتاللفظی "\n" را در پیامهای خطا چاپ میکند
- https://bugzilla.redhat.com/660687
- ابزار guestmount: دستور "touch" شکست میخورد: touch: setting times of `timestamp': Invalid argument
- https://bugzilla.redhat.com/593511
- [RFE] تابعی برای دریافت نام پارتیشن
- https://bugzilla.redhat.com/563450
- دستور list-devices دستگاههای با انواع مختلف را خارج از ترتیب برمیگرداند
همچنین ببینید (SEE ALSO)
guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1), http://libguestfs.org
نویسندگان (AUTHORS)
Richard W.M. Jones
کپیرایت و تکثیر (COPYRIGHT)
Copyright (C) 2009-2025 Red Hat Inc.
مجوز (LICENSE)
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU General Public License) همانطور که توسط «بنیاد نرمافزارهای آزاد» منتشر شده است؛ چه نسخه ۲ پروانه و چه (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده یا تغییر دهید.
این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هیچگونه ضمانتی؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر «پروانه عمومی همگانی گنو» را مشاهده کنید.
شما باید به همراه این برنامه یک نسخه از پروانه عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به بنیاد نرمافزارهای آزاد به آدرس زیر بنویسید:
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
گزارش باگها (BUGS)
برای دریافت فهرستی از باگهای ثبتشده برای 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 |