التعامل مع إعدادات محمل الإقلاع إبتداءً من فيدورا 30


بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته



مع جديد فيدورا 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 ؟

الجواب لا الأداة مستخدمة للتعرف على الأنظمة والتوزيعات الاخرى مثلا ويندوز أو توزيعة لينكس أخرى وأيضا للأخذ ببعض الإعدادات من ملف etc/default/grub/ مثل كما ذكرت GRUB_TIMEOUT .



هذا الموضوع للتوسع يشرح أكثر لماذا يتم إعتماد هذه الطريقة أي ما هي الأسباب وبعض المعلومات .
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




أخيرا كل ما ذكرته هو ما أعرفه إلى الأن لأن الأمر جديد وحديث وقد يحصل تغيرات مع الوقت لم تذكر هنا يمكنك في أي لحظة البحث عن الوثائق الرسمية .












شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)