انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => نصب، راه‌اندازی و بروزآوری => نویسنده: alitoos23 در 04 بهمن 1400، 04:23 ب‌ظ

عنوان: خطا در لود شدن Liquorix Kernel برای ubuntu 21.10(حل شد)
ارسال شده توسط: alitoos23 در 04 بهمن 1400، 04:23 ب‌ظ
سلام  :)
بعد مدتی درگیری با امتحانات و دانشگاه امروز امدم کار ناتموم ام رو تموم کنم. اونم راه اندازی anbox رو Ubuntu 21.10 هست که سر همین قضیه دو تا ماژول binder و ashmem عمر گذشت اما نصب نشد که نشد.
با snap  هم میشه anbox رو نصب کرد ولی منم با  snap میانه خوبی ندارم ;D
برای همین در تلاش بودم دو تا ماژول رو به صورت دستی نصب کنم که با این fork :
https://github.com/choff/anbox-modules توانستم ashmem رو نصب کنم ولی اون یکی دیگه نصب نشد.

تا اینکه متوجه شدم چیزی به نام Zen Kernel وجود داره که این ماژول ها رو به صورت پیش فرض داره
البته این Zen Kernel فقط برای arch وجود بود تا اینکه اینو :
https://liquorix.net
برای ubuntu پیدا کردم و طبق راهنما اش نصب کردم و ربیورت کردم تا اون کرنل بیاد بالا ولی
تو بوت شدن کرنل یه خطا برای هارد بود و رو همون موند و بالا نیامد.
 تو عکس گذاشتم. ممنون می شم راهنمایی کنید.


عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: Dragon- در 04 بهمن 1400، 10:53 ب‌ظ
راستش anbox درست کار نمی‌کنه.
موقعی که می‌خواهید اوبونتو رو بوت کنید، این عبارت رو به خط فرمان کرنل اضافه کنید.
break=pre-mountبعد توی اون پوسته که توی initramfs باز میشه، خروجی lsblk و blkid رو بررسی کنید که هارد شما شناسایی شده یا نه.
اگه دستورات بالا وجود نداشتند، با ls ببینید که فایل‌های مجازی مربوط به دیسک‌ها، توی /dev/ ساخته شدند یا نه.
ls /dev/sd*
برای تغییر خط فرمان کرنل، توی گراب، کلید e رو فشار بدید. برید به آخر خطی که با linux شروع میشه و چیزی که بالا نوشتم رو اضافه کنید. این تغییر دائمی نیست.
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: alitoos23 در 05 بهمن 1400، 11:10 ق‌ظ
سلام جناب دراگون  :)
initramfs shell رو آوردم بالا هارد رو شناسایی کرده بود .
راستی الان دقت کردم اون اول بوت شدن هم یه خطایی داده که جلوش نوشته bug اون چی باز .
تو همون محیط initramfs shell دستور exit زدم که بیاد بیرون باز افتاد تو همون چاله ی خطا به هارد
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: alitoos23 در 05 بهمن 1400، 12:50 ب‌ظ
یه چیز دیگه احتمالا به این ربط نداره ؟ :
https://forum.ubuntu-ir.org/index.php?topic=153182.0
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: alitoos23 در 06 بهمن 1400، 10:28 ق‌ظ
تو گیت هابشون مشکل رو ثبت کردم اینطور جواب داده :
نقل‌قول
damentz commented 5 hours ago
Looks like some type of bad interaction with MG-LRU. However, considering 5.15 is near end of life, I'm not sure if this is worth doing anything about until I rebase Liquorix to kernel 5.16 with a more mature patch set.

I'll keep this open and remind you once a new version is out that may fix it.
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: behzad121 در 06 بهمن 1400، 06:11 ب‌ظ
تو گیت هابشون مشکل رو ثبت کردم اینطور جواب داده :
نقل‌قول
damentz commented 5 hours ago
Looks like some type of bad interaction with MG-LRU. However, considering 5.15 is near end of life, I'm not sure if this is worth doing anything about until I rebase Liquorix to kernel 5.16 with a more mature patch set.

I'll keep this open and remind you once a new version is out that may fix it.
میگه منتظر باش تا نسخه جدید رو انتشار بده و اگه درستش کرد بهت خبر بده.
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: Dragon- در 10 بهمن 1400، 02:08 ق‌ظ
سلام جناب دراگون  :)
initramfs shell رو آوردم بالا هارد رو شناسایی کرده بود .
راستی الان دقت کردم اون اول بوت شدن هم یه خطایی داده که جلوش نوشته bug اون چی باز .
تو همون محیط initramfs shell دستور exit زدم که بیاد بیرون باز افتاد تو همون چاله ی خطا به هارد
چنتا هارد دارید؟ ۷ تا هارد شناسایی کرده ولی فکر می‌کنم یه جاییش مشکل داره.
در مورد اینکه وقتی از اون محیط خارج میشید، دوباره همون خطا‌ها نمایان میشن اینه که یه پوسته برای شما باز شده و بعد از بسته شدن اون پوسته، ادامه مراحل داخل initramfs از سر گرفته میشه.
احتمالا وقتی initramfs سعی می‌کنه فایل‌سیستم روت رو سوار کنه، این مشکل پیش میاد.
می‌تونید توی زمان‌های مختلفی، initramfs رو متوقف کنید تا ببینید کجا مشکل پیش میاد.
وقتی که با initramfs-tools، فایل initramfs ساخته بشه، به ترتیب مقاطع زیر اجرا میشن
init-top
init-premount
local-top
local-block
local-premount
local-bottom
init-bottom
با توجه به تنظیمات و شرایط سیستم، ممکنه بعضی از مقاطع بالا توی initramfs وجود نداشته باشن.
مثلا توی initramfs من، init-premount وجود نداره.
udev توی init-top اجرا میشه.
udev برنامه‌ای هست که تغییرات توی سخت‌افزار‌ها رو متوجه میشه و با توجه با اون تغییرات، ممکنه برنامه‌های دیگه رو از تغییر با خبر کنه، فایل‌ها و لینک‌های داخل /dev/ رو تغییر بده یا یه کار خاصی انجام بده، مثل اجرای یه اسکریپت یا برنامه.
توی initramfs بیشتر به این دلیل اجرا میشه تا لینک‌ها و فایل‌های داخل /dev/ رو ایجاد کنه.

با دادن break یا break=SOMETHING به خط فرمان کرنل، میشه کاری کرد تا قبل از بعضی مراحل، initramfs متوقف بشه و یه پوسته در اختیار شما قرار بده.

شما می‌تونید قبل از اجرای اسکریپت‌های init-top، قبل از اینکه یه سری ماژول‌ها بارگذاری بشه، قبل از اجرای اسکریپت‌های init-premount، قبل از اجرای اسکریپت‌های مربوط به سوار کردن فایل‌سیستم روت، قبل از سوار شدن فایل‌سیستم روت، قبل از اجرای اسکریپت‌های init-bottom و همینطور قبل از اینکه init system (توی اکثر مواقع systemd) اجرا بشه، initramfs رو متوقف کنید تا برای شما یه پوسته باز کنه. بعد از خارج شدن از پوسته، ادامه مراحل توی initramfs انجام میشه.

اگه break خالی بدید، پوسته قبل از اجرای اسکریپت‌های مقطع init-premount باز میشه. اگه break=SOMETHING بدید و اون SOMETHING معتبر باشه، initramfs قبل از انجام کار‌های مربوط به اون مرحله، یه پوسته برای شما باز می‌کنه.
نمی‌دونم چی میشه اگه break رو چند بار مشخص کنید یا مقدار نامعتبر بهش بدید. توی مورد دوم، احتمالا مقادیر نامعتبر نادیده گرفته میشن، کامل مطمئن نیستم.

چیز‌هایی که می‌تونه جلوی مساوی قرار بگیره اینها هست:
 
top   برای متوقف شدن قبل از اجرای اسکریپت‌های مقطع init-top
modules   برای متوقف شدن قبل از بارگذاری بعضی ماژول‌های کرنل
premount   برای متوقف شدن قبل از اجرای اسکریپت‌های مقطع  init-premount
mount   برای متوقف شدن قبل از اجرای اسکریپت‌های مربوط به فایل‌سیستم روت
mountroot    برای متوقف قبل از سوار شدن فایل‌سیستن روت
bottom   برای متوقف شدن قبل از اجرای اسکریپت‌های مقطع init-bottom
و در نهایت init برای متوقف شدن قبل از اجرای init system و شروع سیستم اصلی.

مراحل بالا، به همون ترتیبی که نوشتم اجرا میشن. مقاطع local-top و local-block و هر چی که که اینجا نیست، یه جایی بین مراحل بالا اجرا میشن. ترتیب اونها رو یادم نیست.

توی مثال‌های پایین، اولی باعث میشه که initramfs قبل از مرحله بارگذاری بعضی از ماژول‌های کرنل، متوقف بشه.
دومی باعث میشه قبل از سوار شدن فایل‌سیستم روت، initramfs متوقف بشه.
break=modules
break=mountroot
break و break=premount معادل هم هستند.

در صورتی که بخواهید initramfs توی چندین مرحله متوقف بشه، می‌تونید اون مراحل رو با کاما از هم جدا کنید. مثلا break=top,bottom,init باعث میشه initramfs قبل از اجرای اسکریپت‌های مقطع init-top، قبل از اجرای اسکریپت‌های مقطع init-bottom و همینطور قبل از اینکه init system رو اجرا کنه و کنترل سیستم رو به اون بده، متوقف بشه و یه پوسته برای شما باز کنه.

هر بار که یه پوسته برای شما باز میشه و بعد شما اون رو می‌بندید، ادامه فرایند‌های توی initramfs انجام میشه.
ممکنه جاهای دیگه هم initramfs متوقف بشه و به شما یه پوسته بده. معمولا مواقعی که یه خطای قابل توجه پیش میاد، این اتفاق می‌افته.

برای اطلاعات بیشتر درباره initramfs-tools و نحوه عملکرد اون، صفحات man زیر رو می‌تونید ببینید.
initramfs-tools
mkinitramfs
update-initramfs
lsinitramfs
unmkinitramfs
initramfs.conf
update-initramfs.conf

می‌تونید اسکریپت زیر رو مشاهده کنید تا دقیقا ببینید فرایند‌ها به چه ترتیبی و چجوری توی initramfs انجام میشن.
/usr/share/initramfs-tools/initاسکریپت بالا توی روتِ initramfs کپی میشه و کار‌ها رو انجام میده. اسکریپت بالا اولین چیزی هست که کرنل لینوکس، بعد از باز کردن initramfs، اجرا می‌کنه.

به طور کلی، کرنل لینوکس به طور پیش‌فرض سعی می‌کنه بعد از باز کردن initramfs، اولین چیزی که اجرا کنه، فایل زیر باشه
/initتوی مراحل اول بوت، initramfs به عنوان به فایل‌سیستم روتِ مجازی سوار میشه تا کار‌های لازم انجام بشه و بعد فایل‌سیستم اصلی روت سوار، و init system اصلی اجرا بشه.

اکثر چیز‌هایی که بالا در مورد initramfs گفتیم، (به غیر از مورد آخر) وقتی صادقه که از initramfs-tools برای ساخت initramfs استفاده شده باشه.
توی دبیان و توزیع‌های مبتنی بر اون، اینطوری هست. بقیه توزیع‌ها، عموما از dracut برای ساخت initramfs استفاده می‌کنند. dracut به طور پیش‌فرض توی دبیان نصب نیست (ولی توی مخازن وجود داره). نحوه عملکرد dracut متفاوته و چیز‌های بالا، الزاما توی dracut یکسان نیست. dracut توسط redhat ساخته شده و توسه پیدا می‌کنه.
آرچ از mkinitcpio استفاده می‌کنه، نحوه کار اون هم با dracut و initramfs-tools متفاوته. ولی همه اونها، شباهت‌هایی با هم دارند.

الان که در مورد break  توی initramfs اطلاعات بدست آوردید، initramfs رو توی مراحل مختلف متوقف کنید تا بفهمید بین کدوم دو مرحله مشکل پیش میاد. بعد از این باید اتفاقاتی که بین اون دو مرحله انجام میشه رو بررسی کرد و همینطور اینکار رو انجام داد تا به مشکل رسید.
دقت کنید موقعی که break رو به خط فرمان کرنل میدید، panic هم توی خط فرمان نباشه. چون باعث میشه مستقیم کامپیوتر راه‌اندازی مجدد بشه یا اگه راه‌اندازی مجدد ممکن نبود، کرنل panic کنه و سیستم غیر قابل استفاده بشه؛ تا زمانی که به زور کامپیوتر رو راه‌اندازی مجدد یا خاموش کنید.
طبق مستنداتِ initramfs-tools، این یه پارامتر امنیتی هست تا دسترسی به پوسته بازیابی توی initramfs، مسدود بشه.

یه چیز دیگه احتمالا به این ربط نداره ؟ :
https://forum.ubuntu-ir.org/index.php?topic=153182.0
شاید؛ مطمئن نیستم.

تو گیت هابشون مشکل رو ثبت کردم اینطور جواب داده :
نقل‌قول
damentz commented 5 hours ago
Looks like some type of bad interaction with MG-LRU. However, considering 5.15 is near end of life, I'm not sure if this is worth doing anything about until I rebase Liquorix to kernel 5.16 with a more mature patch set.

I'll keep this open and remind you once a new version is out that may fix it.
جوابتون رو توی ارسال بالا دادند.
گفته به نظر میاد مشکل از MG-LRU باشه. در ادامه گفته، نسخه 5.15 آخرای پشتیبانیش هست. (چون 5.16 امده و 5.15 نسخه lts نیست) به همین دلیل من مطمئن نیستم ارزش داشته باشه کاری درباره اون انجام داد یا نه؛ تا زمانی که Liquorix رو بر اساس 5.16 پیاده کنم، همراه وصله‌هایی بهتر.
در آخر گفته من این مشکل رو باز میذارم و وقتی یه نسخه جدید بیاد که شاید مشکل رو حل کنه، به شما یادآوری می‌کنم.
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10
ارسال شده توسط: alitoos23 در 13 بهمن 1400، 06:47 ب‌ظ
بسیار تشکر از شما جناب داراگون  :)
مطالب شما از فرایند قبل از بوت شدن چنان عمیق بود که این جانب شگفت زده شدم. که این همه مطلب فقط برای ابزار initramfs وجود دارد ! وای که این عالم چه قدر وسیع است و بنده در برابر این اقیانوس بزرگ قدر چاله ای آب هم نمی دانم  :D
بگذریم  ;D

بازم از وقتی که شما گذاشتید ممنونم.
همون طور که اون بنده خدا توسعه دهنده liquorix kernel گفت تو کرنل ۵٫۱۶ که همین تازگی منتشر کرد این مشکل رو حل کرده و سیستم من خیلی عادی بدون هیچ خطایی بالا اومد.
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10(حل شد)
ارسال شده توسط: alitoos23 در 14 بهمن 1400، 03:22 ب‌ظ
بعد از کلی نصب فهمیدم این فرقی به حال anbox نکرد.
این بنده خدا به نظر جوش اورد: چیز بدی گفتم مگه ؟! :(
https://github.com/damentz/liquorix-package/issues/80
ضمن اینکه یه لحظه با این کرنل یه هنگ وحشتناکی کرد.

کلا از خیر همه چیز گذشتم و Liquorix Kernel رو پاک کردم ](*,)

اصلا من دستم بشکنه از این به بعد چیزی اضافی از مخازن نصب کنم.
پایداری هم نعمتی ها  ;)
عنوان: پاسخ : خطا در لود شدن LIQUORIX KERNEL برای ubuntu 21.10(حل شد)
ارسال شده توسط: Dragon- در 15 بهمن 1400، 12:29 ق‌ظ
بعد از کلی نصب فهمیدم این فرقی به حال anbox نکرد.
این بنده خدا به نظر جوش اورد: چیز بدی گفتم مگه ؟! :(
https://github.com/damentz/liquorix-package/issues/80
ضمن اینکه یه لحظه با این کرنل یه هنگ وحشتناکی کرد.

کلا از خیر همه چیز گذشتم و Liquorix Kernel رو پاک کردم ](*,)

اصلا من دستم بشکنه از این به بعد چیزی اضافی از مخازن نصب کنم.
پایداری هم نعمتی ها  ;)
به نظر نمیاد خیلی قاطی کرده باشه. فقط گفته اگه خودتون نصب می‌کردید و می‌دید، می‌فهمیدید که این ماژول‌ها همراه کرنل هست یا نه. تا زمانی که من جواب میدادم، می‌تونستید بفهمید.
ماژول‌های کرنل معمولا توی زیر دایرکتوری‌ها، توی مسیر زیر قرار میگیرن.
/lib/modules/KERNEL-RELEASEبه جای KERNEL-RELEASE، اسم انتشار کرنل قرار میگیره. با یه دستور find می‌تونید ببینید چنین چیزی اونجا هست یا نه
find /lib/modules/KERNEL-RELEASE -iname '*binder*'
find /lib/modules/KERNEL-RELEASE -iname '*ashmem*'

در ادامه گفته می‌تونستید فایل config کرنل رو هم ببینید و با چیز‌هایی که anbox پیشنهاد می‌کنه، مقایسه می‌کردید.
این (https://github.com/damentz/liquorix-package/blob/5.16/master/linux-liquorix/debian/config/kernelarch-x86/config-arch-64) یه لینک یه فایل config اون کرنل برای معماری x86_64 هست.
عنوان: پاسخ : خطا در لود شدن Liquorix Kernel برای ubuntu 21.10(حل شد)
ارسال شده توسط: alitoos23 در 15 بهمن 1400، 01:10 ق‌ظ
آها .
راستش هی می خوام برم دوره کامل جادی رو نگاه کنم هی امروز و فردا می کنم .
به خاطر همین اصولی بلد نیستم .
بازم ممنون . حتما امتحان می کنم
شدم یه گاز از این یه گاز از اون
عنوان: پاسخ : خطا در لود شدن Liquorix Kernel برای ubuntu 21.10(حل شد)
ارسال شده توسط: Dragon- در 15 بهمن 1400، 01:39 ق‌ظ
lpic2 رو هم ببینید. البته ندیدم توی اون دوره‌ها، چیز زیادی درباره کامپایل کرنل بگه.