ဒီ article လေးမှာ grub bootloader အကြောင်းလေးရှင်းပြမှာဖြစ်ပါတယ်။ အရင်ဆုံး Grub အလုပ်လုပ်ပုံလေးကို ပြောပြပါမယ်။
What is Grub?
Grub ဆိုတာက Linux system တွေမှာအသုံးပြုတဲ့ bootloader ဖြစ်ပါတယ်။ Bootloader ဆိုတာက Linux OS ကို boot တက်အောင် ပြုလုပ်ပေးတဲ့ service တစ်ခု ဖြစ်ပါတယ်။ Grub အကြောင်းရှင်းရင်းနဲ့ Linux OS ရဲ့ boot procedure အကြမ်းဖြင်းလေးကို ထည့်ပြောချင်ပါတယ်။
Linux Boot Process Procedure
Linux OS တစ်ခု စပြီး တက်ဖို့အတွက် လိုအပ်တာတွေကတော့
1. BIOS/POST (Power on Self Test)
2. MBR (Master Boot Record)
3. Grub
4. Kernel
5. PID 1 (init <or> systemd)
ဆိုပြီး ရှိပါတယ်။ စစချင်း Power on လိုက်တဲ့အချိန်မှာ POST ကစပြီး computer ရဲ့ Input/Output hardwares တွေ အလုပ်လုပ်မလုပ် စစ်ပါတယ်။ BIOS က စစ်ဆေးပြီးတဲ့အခါမှာ harddisk ရဲ့ special partition ဖြစ်တဲ့ MBR မှာရှိတဲ့ Grub bootloader configuration ကို run စေပါတယ်။ ထို့နောက် Grub ကမှစဆင့် Linux Kernel ကို run စေပြီး Linux Kernel ကမှ Systemd ကို လွှဲပေးကာ Systemd (if using systemd) က /etc/systemd အောက်မှာ ရှိတဲ့ configuration အတိုင်း Linux OS ကို boot တက်စေပါတယ်။
So, what if grub gone wrong?
အခု ဒီ Linux boot procedure လေးကိုကြည့်မယ်ဆိုရင် grub တစ်ခုခုဖြစ်သွားခဲ့သည်ရှိသော် linux kernel ကို မ run စေတော့ပဲ OS လဲ boot တက်လာမှာမဟုတ်တော့ဘူးဖြစ်ပါတယ်။ ဒီတော့ Linux OS ပေါ်မှာ ရှိတဲ့ Grub အကြောင်းလေးတွေကို ဆက်လေ့လာရအောင်။
What are the grub configurations file and their location?
1. /etc/default/grub
ဒီ config file ကတော့ grub နဲ့ ပတ်သတ်ပြီး ဘာလို changesပဲဖြစ်ဖြစ် ပြုလုပ်ချင်ရင် ဒီ configuration file မှာသွားပြီး ပြင်ပေးရပါတယ်။ ဒီ file ကမှတစ်ဆင့်...
2. /boot/grub2/grub.cfg
/etc/default/grub က ပြုပြင်လိုက်တဲ့ changes မှန်သမျှကို ဒီ config file မှာ သွားပြီး update (or) new grub config file generate လုပ်ပါတယ်။ အရေးကြီးတာ တစ်ခုက ဒီ config file ကနေ တိုက်ရိုက် ပြုပြင်ဖို့ recommend မပေးထားပါဘူး။ ပြင်ချင်ရင် /etc/default/grub မှာသွားပြင်ရပါမယ်။
3. /etc/grub.d
အဲ့တော့ /etc/default/grub က ပြင်သမျှကို /boot/grub2/grub.cfg မှာ update ဖြစ်စေဖို့အတွက် ဒီ /etc/grub.d directory အောက်မှာရှိတဲ့ shell script file တွေကနေ တစ်ဆင့် လုပ်ဆောင်ပေးပါတယ်။ ဒီ shell script file တွေကို "grub2-mkconfig" ဆိုတဲ့ grub program လေးက manage လုပ်ပေးပါတယ်။
Let's try editing Grub file
အိုကေ ဒါဆို grub အကြောင်းလေး သိသွားပြီ ဆိုရင် grub file ကို manage လုပ်ကြည့်ရအောင်။ အရင်ဆုံး edit လုပ်မယ်ဆိုရင် /etc/default/grub မှာသွားပြီး ပြုလုပ်ရပါမယ်။ ဒီမှာတော့ grub menu default 5s ကို 10s ဆိုပြီး ပြောင်းလိုက်မယ်။ နောက် Grub Disable Recovery Menu ကို Enable လုပ်မယ်။
Can we backup grub config before changes?
Yes, grub ကို တစ်ခုခု changes မပြုလုပ်ခင် config file ကို backup လုပ်ထားလို့ရပါတယ်။ Backup လုပ်ချင်ရင်တော့ /boot/grub2/ အောက်မှာရှိတဲ့ grub.cfg file ရယ် grubenv file ရယ်ကို rename လုပ်ပြီး backup လုပ်ထားလို့ရပါတယ်။ Boot မတက်နိုင်ခဲ့သည်ရှိသော် backup config file ကို rescue mode ဖြင့် တက်ပြီး ပြန်လည်အသုံးပြုနိုပါတယ်။
Let's purposely mess around with Grub
အခုဆိုရင် grub config file ကို ပြန်ပြီး rewrite လုပ်ဖို့အတွက် reboot ချ ISO ကို attache လုပ်ပြီး rescue mode ဖြင့် တက်ရပါမယ်။
ပြီးရင်တော့ Rescue mode က read-write mode ဖြင့် တက်မည် ကို confirm "1" ဖြင့် ရွေးပြီး chroot ဖြင့် root environment create လုပ်ပါမယ်။
Ok, How many ways to recover grub config file?
That's it 😊
Pls Like and Subscribe Our Root Of Info FB Page and Youtube Channel
https://www.facebook.com/rootofinfo
https://www.youtube.com/channel/UCkOi7WxhUBKONv3uD0CvuWw?view_as=subscriber
Thank you!!!
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.