بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
مع جديد فيدورا 30 بما يخص محمل الإقلاع ؟
سأبدأ أولا بشرح على السريع ومبسط لبعض الأشياء التي تهمنا من دون تفصيل .
في السابق عندما كنا نريد إدخال تغيرات مثلا التعديل على البارامترات التي تمرر للنواة (kernel command line arguments) وتثبيت هذه التعديلات كنا نعدل على هذا الملف etc/default/grub/ ثم نقوم بطلب الأخذ بالتغيرات وتحديث ما يسمى boot menu من خلال أداة mkconfig.
في الإصدرا 30 من فيدورا هناك بعض الأشياء الجديدة سموها Boot Loader Specification وإختصارها BLSCFG أو BLS (سأعتمد إختصار BLS في الشرح لتسهيله) وهي ببساطة تغير طريقة أخذ محمل الإقلاع الإعدادات.
هذا موضوع قديم يشرح الطريقة القديمة .
https://arfedora.blogspot.com/2016/09/parameters.html
ما هي التغيرات التي تهم المستخدم أو حتى المطور ؟
أولا كل نواة لها ملف إعدادات خاص يأخذ منه إعدادات محمل الإقلاع ومنها البارامترات للنواة ,عندما يقوم النظام بتثبيت أي نواة يأتي معها هذا الملف ولست بحاجة لتغير أي شيء ومسار هذه الملفات هو boot/loader/entries/ كل ملف يتم تسميته بإسم يدل على إصدار النواة ورقم خاص يكون محفوظ في هذا الملف etc/machine-id/ وينتهي إسم الملف باللاحقة conf.
1-هذا الرقم الخاص في ملف etc/machine-id/.
2-هذه هي ملفات الإعدادات نلاحظ كيف يتم تسميتها.
3-هذه الأنوية المتوفرة عندي ويبدأ إسمها ب vmlinuz .
قمت بقرأءة أحد ملفات الإعدادات نلاحظ أن إفتراضيا options التي ستمرر للنواة محفوظة في متغير $kernelopts لاكن ما هي قيمة هذا المتغير وأين موجود ؟ الصورة في الأسفل توضح الأمر .
نلاحظ إفتراضيا من أين يتم أخذ المعلومات نلاحظ قيمة متغير kernelopts وغيره من الإعدادات وهذا المسار في حالة إستخدام Legacy Bios أما في حالة EFI يصبح المسار شيء كهذا boot/EFI/fedora/grubenv/
متغير kernelopts ممكن إستخدامه كإعدادات عامة أي يحفظ فيه الإعدادات العامة ثم أي نواة تريد اخذ الإعدادات العامة يتم إضافة هذا السطر في ملف إعداداتها options $kernelopts أما إذا أردنا لنواة ما أن تأخذ إعدادات خاصة نستبدل kernelopts$ بالذي نريده (ممكن إستخدام اداة grubby حيث ممكن تحديد النواة المراد التعديل عليها وممكن التعديل على القيمة العامة من خلال ALL هناك رابط في أخر الموضوع يشرح القليل عن grubby )
الأن هل إنتهى دور ملف etc/default/grub/ ؟
لا لم ينتهي مازال يحتفظ ببعض الإعدادات منها إعداد معين يفعل BSL وأيضا بعض الإعدادات مثل GRUB_TIMEOUT مازالت تأخذ منه وأيضا للتوافقية مثلا إذا قمت بالترقية من فيدورا 29 إلى 30 لن تكون BLS مفعلة ستحتاج تفعيلها بنفسك (أخر الموضوع يوجد رابط من وثائق فيدورا يشرح عن الأمر).
الخلاصة.
في السابق إذا كنا نريد تمرير شيء للنواة عند كل إقلاع نعدل على ملف etc/default/grub/ ثم نقوم بتحديث المعلومات من خلال اداة mkconfig ثم إعادة تشغيل الجهاز أما حديثا يكفي التعديل على ملف grubenv وإعادة إقلاع النظام من دون إستخدام اداة mkconfig (ملاحظة بدل التعديل اليدوي على ملف grubenv ممكن أيضا إستخدام اداة grubby ).
وهذا يقودنا لسؤال اخر هل تم التخلي عن اداة mkconfig ؟
وهذا يقودنا لسؤال اخر هل تم التخلي عن اداة mkconfig ؟
الجواب لا الأداة مستخدمة للتعرف على الأنظمة والتوزيعات الاخرى مثلا ويندوز أو توزيعة لينكس أخرى وأيضا للأخذ ببعض الإعدادات من ملف etc/default/grub/ مثل كما ذكرت GRUB_TIMEOUT .
هذا الموضوع للتوسع يشرح أكثر لماذا يتم إعتماد هذه الطريقة أي ما هي الأسباب وبعض المعلومات .
https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault
وهذا أيضا موضوع من مجلة فيدورا يشرح قليلا عن اداة grubby.
https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/
أخر ملاحظة إذا كنت تستخدم برنامجي Arfedoracontrolcenter الإضافة المتعلقة بتعديل إعدادات محمل الإقلاع كما في الصورة في الأسفل إلى الأن لم أعدل عليها لهذا بعض التغيرات التي تقوم بها من هناك لن تعطي نتيجة في حالة BLS لاكن إن شاء الله في المستقبل عندما يكون لي وقت اعمل على حل ما .
https://github.com/yucefsourani/arfedoraccframework
هذا الموضوع للتوسع يشرح أكثر لماذا يتم إعتماد هذه الطريقة أي ما هي الأسباب وبعض المعلومات .
https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault
وهذا أيضا موضوع من مجلة فيدورا يشرح قليلا عن اداة grubby.
https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/
أخر معلومة عن grubby .
نلاحظ عند إستخدام ALL أي تحديد كل الأنوية يتم التعديل على ملف grubenv .
وعند إستبدال ALL بنواة محددة التعديل يتم على ملف إعدادات النواة المحددة وليس grubenv اي سيتم اخذ قيمة kernelopts وإضافة إليها القيمة الجديدة وتعينهم بشكل صريح في options أي لن يتم بعدها لهذه النواة بالتحديد أخذ القيمة من ملف grubenv بل تم تعينها بشكل صريح في ملف أعداداتها الخاص أتمنى أن تكون الأمور واضحة .
على العموم الأفضل دائما إذا ما أردنا القيام بأي تغيرعلى ملفات الإعدادات اولا أخذ نسخة عنهم ثم بعد التعديل التأكد من المعلومات الموجودة فيها .
أخر ملاحظة إذا كنت تستخدم برنامجي Arfedoracontrolcenter الإضافة المتعلقة بتعديل إعدادات محمل الإقلاع كما في الصورة في الأسفل إلى الأن لم أعدل عليها لهذا بعض التغيرات التي تقوم بها من هناك لن تعطي نتيجة في حالة BLS لاكن إن شاء الله في المستقبل عندما يكون لي وقت اعمل على حل ما .
https://github.com/yucefsourani/arfedoraccframework
أخيرا كل ما ذكرته هو ما أعرفه إلى الأن لأن الأمر جديد وحديث وقد يحصل تغيرات مع الوقت لم تذكر هنا يمكنك في أي لحظة البحث عن الوثائق الرسمية .