کاربران سیستمهایی که از مکانیزم zRAM برای ذخیرهسازی فشرده پارتیشن swap در حافظه استفاده میکنند، با مشکلی مواجه شدهاند که منجر به خرابی بوت پس از بهروزرسانی هسته میشود. Linux این مشکل، توزیعهای Gentoo، Void و سایر توزیعهایی را که از zRAM پشتیبانی میکنند و بستههایی با نسخههای جدید هسته ارائه میدهند، تحت تأثیر قرار میدهد.
علت خرابی تغییری بود که در هسته 6.12 گنجانده شده بود که توانایی پیکربندی الگوریتم های فشرده سازی در زمان اجرا را اضافه کرد. در طول مسیر، منطق انتخاب الگوریتم های فشرده سازی موجود در مرحله ساخت هسته در Kconfig تغییر کرد. این تغییر باعث ایجاد مشکلاتی در توزیعهایی شد که به تنظیمات پیشفرض متکی بودند و همه الگوریتمهای zRAM موجود در پیکربندی Kconfig را برای هسته 6.12 بهصورت جداگانه فعال نمیکردند.
پس از بهروزرسانی به هسته 6.12 در چنین توزیعهایی، فقط الگوریتم فشردهسازی پایه پیشفرض برای انتخاب در دسترس باقی ماند و همه الگوریتمهای پشتیبانیشده در دسترس نیستند. بر این اساس، هنگام تلاش برای گنجاندن الگوریتمهایی در zRAM که با الگوریتم پیشفرض مطابقت نداشتند، خرابی بوت رخ داد. به عنوان مثال، هنگام انتخاب الگوریتم lz4 در هنگام بوت، خطای "zramctl: /dev/zram0: شکست در تنظیم الگوریتم: آرگومان نامعتبر" رخ داد، زیرا به جای lzo، lz4، lz4hc، تنها پشتیبانی lzo در بین الگوریتم ها باقی مانده است. ، 842 و zstd.
مشکل با فعال کردن هر پشتیبان فشرده سازی به صورت جداگانه در Kconfig حل می شود (تنظیمات CONFIG_ZRAM_BACKEND_* در هسته 6.12 اضافه شده است): CONFIG_ZRAM_BACKEND_LZ4=y CONFIG_ZRAM_BACKEND_LZ4HC=y CONFIG_BACK_END_ZRAM y CONFIG_ZRAM_DEF_COMP_LZO=y CONFIG_ZRAM_DEF_COMP=»lzo»
منبع: opennet.ru
