LFCS: ວິທີການ ກຳ ຫນົດຄ່າແລະແກ້ໄຂບັນຫາ Bootloader Grand Unified Bootloader (GRUB) - ພາກທີ 13
ເນື່ອງຈາກວ່າມີການປ່ຽນແປງ ໃໝ່ ໃນຈຸດປະສົງການສອບເສັງເອົາໃບຢັ້ງຢືນ LFCS ມີຜົນບັງຄັບໃຊ້ຕັ້ງແຕ່ວັນທີ 2 ເດືອນກຸມພາປີ 2016, ພວກເຮົາ ກຳ ລັງເພີ່ມຫົວຂໍ້ທີ່ ຈຳ ເປັນເຂົ້າໃນຊຸດ LFCE ເຊັ່ນດຽວກັນ.
ໃນບົດຄວາມນີ້ພວກເຮົາຈະແນະ ນຳ ທ່ານໃຫ້ GRUB ແລະອະທິບາຍວ່າເປັນຫຍັງເຄື່ອງຄອມພິວເຕີ້ boot ເປັນສິ່ງ ຈຳ ເປັນ, ແລະວິທີທີ່ມັນເພີ່ມຄວາມຄ່ອງແຄ້ວໃຫ້ກັບລະບົບ.
ຂະບວນການບູດເຄື່ອງ Linux ຕັ້ງແຕ່ເວລາທີ່ທ່ານກົດປຸ່ມພະລັງງານຂອງຄອມພິວເຕີຂອງທ່ານຈົນກວ່າທ່ານຈະໄດ້ຮັບລະບົບທີ່ມີປະສິດຕິພາບເຕັມທີ່ຕາມລະດັບສູງນີ້:
<
ໃນພາກທີ 7 ຂອງຊຸດນີ້ (“ ລະບົບການຄຸ້ມຄອງບໍລິການແລະເຄື່ອງມືທີ່ໃຊ້ໂດຍການແຈກຢາຍ Linux ທີ່ທັນສະ ໄໝ. ທ່ານອາດຕ້ອງການທົບທວນບົດຄວາມນັ້ນກ່ອນທີ່ຈະ ດຳ ເນີນການຕໍ່ໄປ.
ແນະ ນຳ GRUB Boot Loader
ສອງລຸ້ນ GRUB ທີ່ ສຳ ຄັນ (v1 ບາງຄັ້ງເອີ້ນວ່າ GRUB Legacy ແລະ v2) ສາມາດພົບໄດ້ໃນລະບົບທັນສະ ໄໝ, ເຖິງແມ່ນວ່າການແຈກຈ່າຍສ່ວນໃຫຍ່ໃຊ້ v2 ໂດຍຄ່າເລີ່ມຕົ້ນໃນຮຸ່ນຫຼ້າສຸດຂອງມັນ. ພຽງແຕ່ Red Hat Enterprise Linux 6 ແລະອະນຸພັນຂອງມັນຍັງໃຊ້ v1 ໃນປະຈຸບັນນີ້.
ດັ່ງນັ້ນ, ພວກເຮົາຈະສຸມໃສ່ຄຸນລັກສະນະຕົ້ນຕໍຂອງ v2 ໃນຄູ່ມືນີ້.
ໂດຍບໍ່ສົນເລື່ອງຂອງລຸ້ນ GRUB, ຕົວເກັບຂໍ້ມູນຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດ:
<
ໃນມື້ນີ້, GRUB ໄດ້ຖືກຮັກສາໄວ້ໂດຍໂຄງການ GNU ແລະຖືກບັນທຶກໄວ້ໃນເວັບໄຊທ໌ຂອງພວກເຂົາ. ທ່ານຖືກແນະ ນຳ ໃຫ້ໃຊ້ເອກະສານທາງການຂອງ GNU ໃນຂະນະທີ່ ກຳ ລັງຜ່ານປື້ມຄູ່ມືນີ້.
ເມື່ອລະບົບເກີບທ່ານຖືກ ນຳ ສະ ເໜີ ດ້ວຍ ໜ້າ ຈໍ GRUB ຕໍ່ໄປນີ້ໃນຄອນໂຊນຕົ້ນຕໍ. ໃນເບື້ອງຕົ້ນ, ທ່ານໄດ້ຖືກກະຕຸ້ນໃຫ້ເລືອກລະຫວ່າງແກ່ນອື່ນແທນ (ໂດຍຄ່າເລີ່ມຕົ້ນ, ລະບົບຈະເລີ່ມຕົ້ນໂດຍໃຊ້ແກ່ນຫຼ້າສຸດ) ແລະໄດ້ຮັບອະນຸຍາດໃຫ້ເຂົ້າເສັ້ນ ຄຳ ສັ່ງ GRUB (ດ້ວຍ c
) ຫຼືດັດແກ້ຕົວເລືອກ boot (ໂດຍ ກົດປຸ່ມ e
).
ໜຶ່ງ ໃນເຫດຜົນທີ່ທ່ານຄວນພິຈາລະນາການໃສ່ເກີບກັບເຄື່ອຂ່າຍເກົ່າແມ່ນອຸປະກອນຮາດແວທີ່ເຄີຍເຮັດວຽກຢ່າງຖືກຕ້ອງແລະໄດ້ເລີ່ມ“ ປະຕິບັດຕົວຈິງ” ຫຼັງຈາກການຍົກລະດັບ (ອ້າງອີງໃສ່ລິ້ງນີ້ໃນຫ້ອງສົນທະນາ AskUbuntu ສຳ ລັບຕົວຢ່າງ).
ການຕັ້ງຄ່າ GRUB v2 ແມ່ນອ່ານຈາກ boot ຈາກ /boot/grub/grub.cfg
ຫຼື /boot/grub2/grub.cfg
, ໃນຂະນະທີ່ /boot/grub/grub.conf
ຫຼື /boot/grub/menu.lst
ຖືກໃຊ້ໃນ v1. ເອກະສານເຫຼົ່ານີ້ບໍ່ໄດ້ຖືກດັດແກ້ດ້ວຍມືແຕ່ຖືກດັດແກ້ໂດຍອີງໃສ່ເນື້ອໃນຂອງລະຫັດ /etc/default/grub
ແລະເອກະສານທີ່ພົບໃນພາຍໃນ /etc/grub.d
.
ໃນ CentOS 7, ນີ້ແມ່ນເອກະສານການຕັ້ງຄ່າທີ່ຖືກສ້າງຂື້ນເມື່ອລະບົບຖືກຕິດຕັ້ງ ທຳ ອິດ:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet" GRUB_DISABLE_RECOVERY="true"
ນອກ ເໜືອ ຈາກເອກະສານ online, ທ່ານຍັງສາມາດຊອກຫາຄູ່ມື GNU GRUB ໂດຍໃຊ້ຂໍ້ມູນດັ່ງຕໍ່ໄປນີ້:
# info grub
ຖ້າທ່ານສົນໃຈໂດຍສະເພາະທາງເລືອກທີ່ມີ ສຳ ລັບ/etc/default/grub, ທ່ານສາມາດຂໍພາກສ່ວນການຕັ້ງຄ່າໂດຍກົງ:
# info -f grub -n 'Simple configuration'
ການໃຊ້ ຄຳ ສັ່ງຂ້າງເທິງນີ້ທ່ານຈະຮູ້ວ່າ <ລະຫັດ GRUB_TIMEOUT ກຳ ນົດເວລາລະຫວ່າງເວລາທີ່ ໜ້າ ຈໍເລີ່ມຕົ້ນແລະລະບົບອັດຕະໂນມັດຈະເລີ່ມຕົ້ນລະບົບເວັ້ນເສຍແຕ່ຈະຖືກລົບກວນໂດຍຜູ້ໃຊ້. ເມື່ອຕົວປ່ຽນນີ້ຖືກຕັ້ງຄ່າ -1
, ເກີບຈະບໍ່ຖືກເລີ່ມຕົ້ນຈົນກວ່າຜູ້ໃຊ້ຈະເລືອກຕົວເລືອກ.
ເມື່ອລະບົບປະຕິບັດການຫຼືແກ່ນຫຼາຍໆຖືກຕິດຕັ້ງຢູ່ໃນເຄື່ອງດຽວກັນ, GRUB_DEFAULT
ຮຽກຮ້ອງໃຫ້ມີຄ່າເລກເຕັມເຊິ່ງຊີ້ໃຫ້ເຫັນວ່າ OS ຫຼື kernel ເຂົ້າໃນ ໜ້າ ຈໍ GRUB ເບື້ອງຕົ້ນຄວນຖືກເລືອກໃຫ້ໃສ່ເກີບໂດຍຄ່າເລີ່ມຕົ້ນ. ບັນຊີລາຍຊື່ຂອງລາຍການສາມາດເບິ່ງໄດ້ບໍ່ພຽງແຕ່ໃນ ໜ້າ ຈໍທີ່ສະແດງຢູ່ຂ້າງເທິງເທົ່ານັ້ນ, ແຕ່ຍັງໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້:
# awk -F\' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg
# awk -F\' '$1=="menuentry " {print $2}' /boot/grub/grub.cfg
ໃນຕົວຢ່າງທີ່ສະແດງຢູ່ໃນຮູບຂ້າງລຸ່ມນີ້, ຖ້າພວກເຮົາຕ້ອງການບູດກັບລຸ້ນ 3.10.0-123.el7.x86_64 (ເຂົ້າຮອບທີ 4), ພວກເຮົາຕ້ອງຕັ້ງຄ່າ GRUB_DEFAULT
ໄປ 3
(ລາຍະການແມ່ນນັບພາຍໃນສູນເລີ່ມຕົ້ນດ້ວຍສູນ) ດັ່ງຕໍ່ໄປນີ້:
GRUB_DEFAULT=3
ຕົວແປການຕັ້ງຄ່າ GRUB ສຸດທ້າຍທີ່ມີຄວາມສົນໃຈເປັນພິເສດແມ່ນ GRUB_CMDLINE_LINUX
, ເຊິ່ງຖືກ ນຳ ໃຊ້ເພື່ອສົ່ງຕົວເລືອກໄປສູ່ແກ່ນ. ຕົວເລືອກຕ່າງໆທີ່ສາມາດສົ່ງຜ່ານ GRUB ໄປຫາແກ່ນໄດ້ຖືກບັນທຶກໄວ້ເປັນຢ່າງດີໃນ man 7 bootparam.
ຕົວເລືອກປະຈຸບັນໃນເຊີບເວີ CentOS 7 ຂອງຂ້ອຍແມ່ນ:
GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet"
ເປັນຫຍັງທ່ານຕ້ອງການທີ່ຈະປັບປຸງແກ້ໄຂພາລາມິເຕີຂອງຄ່າເລີ່ມຕົ້ນຫລືຜ່ານທາງເລືອກພິເສດ? ໃນ ຄຳ ສັບທີ່ງ່າຍດາຍ, ມັນອາດຈະມີບາງເວລາທີ່ທ່ານຕ້ອງການບອກຕົວ ກຳ ນົດການຮາດແວທີ່ແນ່ນອນວ່າມັນອາດຈະບໍ່ສາມາດ ກຳ ນົດດ້ວຍຕົນເອງ, ຫຼືເກີນມູນຄ່າທີ່ມັນຈະກວດພົບ.
ສິ່ງນີ້ໄດ້ເກີດຂື້ນກັບຂ້ອຍບໍ່ດົນເມື່ອຂ້ອຍໄດ້ທົດລອງໃຊ້ Vector Linux, ເຊິ່ງມາຈາກ Slackware, ໃນຄອມພິວເຕີ້ຄອມພິວເຕີ້ຂ້ອຍທີ່ມີອາຍຸ 10 ປີ. ຫຼັງຈາກການຕິດຕັ້ງມັນບໍ່ໄດ້ກວດພົບການຕັ້ງຄ່າທີ່ຖືກຕ້ອງ ສຳ ລັບບັດວີດີໂອຂອງຂ້ອຍສະນັ້ນຂ້ອຍຕ້ອງໄດ້ປັບປ່ຽນຕົວເລືອກແກ່ນທີ່ຜ່ານ GRUB ເພື່ອເຮັດໃຫ້ມັນເຮັດວຽກໄດ້.
ຕົວຢ່າງອີກອັນ ໜຶ່ງ ແມ່ນເມື່ອທ່ານ ຈຳ ເປັນຕ້ອງ ນຳ ເອົາລະບົບໄປຍັງໂຫມດຜູ້ໃຊ້ຄົນດຽວເພື່ອປະຕິບັດວຽກງານ ບຳ ລຸງຮັກສາ. ທ່ານສາມາດເຮັດສິ່ງນີ້ໄດ້ໂດຍການຕື່ມ ຄຳ ດຽວໃສ່ GRUB_CMDLINE_LINUX
ແລະເລີ່ມ ໃໝ່:
GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet single"
ຫຼັງຈາກການແກ້ໄຂ /etc/defalt/grub
, ທ່ານຈະຕ້ອງໃຊ້ update-grub
(Ubuntu) ຫຼື grub2-mkconfig -o/boot/grub2/grub. cfg
(CentOS ແລະ openSUSE) ຫລັງຈາກນັ້ນໃຫ້ອັບເດດ grub.cfg
(ຖ້າບໍ່ດັ່ງນັ້ນ, ການປ່ຽນແປງຈະຫາຍໄປເມື່ອໃສ່ເກີບ).
ຄຳ ສັ່ງນີ້ຈະປະມວນຜົນເອກະສານການຕັ້ງຄ່າບູດທີ່ກ່າວມາກ່ອນເພື່ອປັບປຸງ grub.cfg
. ວິທີການນີ້ຮັບປະກັນການປ່ຽນແປງແມ່ນຖາວອນ, ໃນຂະນະທີ່ທາງເລືອກທີ່ຜ່ານ GRUB ໃນເວລາບູດກໍ່ຈະມີຢູ່ໃນຊ່ວງເວລາດຽວນີ້.
ແກ້ໄຂບັນຫາ Linux GRUB
ຖ້າທ່ານຕິດຕັ້ງລະບົບປະຕິບັດການທີສອງຫຼືຖ້າເອກະສານການຕັ້ງຄ່າ GRUB ຂອງທ່ານເສື່ອມໂຊມຍ້ອນຄວາມຜິດພາດຂອງມະນຸດ, ມີຫລາຍວິທີທີ່ທ່ານສາມາດເຮັດໃຫ້ລະບົບຂອງທ່ານກັບມາຢູ່ເທິງຕີນຂອງມັນແລະສາມາດບູດໄດ້ອີກ.
ໃນ ໜ້າ ຈໍເລີ່ມຕົ້ນ, ກົດປຸ່ມ c
ເພື່ອໃຫ້ໄດ້ເສັ້ນ ຄຳ ສັ່ງ GRUB (ຈື່ໄວ້ວ່າທ່ານຍັງສາມາດກົດປຸ່ມ e
ເພື່ອແກ້ໄຂຕົວເລືອກການຕັ້ງຄ່າເລີ່ມຕົ້ນ), ແລະໃຊ້ການຊ່ວຍເຫຼືອໃນການ ນຳ ໃຊ້ທີ່ມີຢູ່ ຄຳ ສັ່ງໃນ GRUB prompt:
ພວກເຮົາຈະສຸມໃສ່ ls, ເຊິ່ງຈະລາຍຊື່ອຸປະກອນແລະລະບົບແຟ້ມທີ່ຕິດຕັ້ງໄວ້, ແລະພວກເຮົາຈະກວດເບິ່ງສິ່ງທີ່ມັນພົບ. ໃນຮູບພາບຂ້າງລຸ່ມນີ້ພວກເຮົາສາມາດເຫັນໄດ້ວ່າມີ 4 ຮາດໄດ ( hd0
ຜ່ານ hd3
).
ພຽງແຕ່ hd0
ເບິ່ງຄືວ່າໄດ້ຖືກແບ່ງປັນ (ດັ່ງທີ່ສະແດງໂດຍ msdos1 ແລະ msdos2, ບ່ອນທີ່ 1 ແລະ 2 ແມ່ນຕົວເລກການແບ່ງປັນແລະ msdos ແມ່ນລະບົບການແບ່ງປັນ).
ຕອນນີ້ໃຫ້ກວດເບິ່ງພາທິຊັນຕອນ ທຳ ອິດກ່ຽວກັບ hd0
(msdos1) ເພື່ອເບິ່ງວ່າພວກເຮົາສາມາດຊອກຫາ GRUB ຢູ່ບ່ອນນັ້ນໄດ້ບໍ. ວິທີການນີ້ຈະຊ່ວຍໃຫ້ພວກເຮົາໃສ່ Linux ແລະມີເຄື່ອງມືອື່ນທີ່ມີລະດັບສູງເພື່ອແກ້ໄຂເອກະສານການຕັ້ງຄ່າຫລືຕິດຕັ້ງ GRUB ຄືນ ໃໝ່ ຖ້າມັນຕ້ອງການ:
# ls (hd0,msdos1)/
ດັ່ງທີ່ພວກເຮົາສາມາດເຫັນໃນພື້ນທີ່ທີ່ຖືກເນັ້ນ, ພວກເຮົາໄດ້ພົບກັບໄດເລກະທໍລີ grub2 ໃນສ່ວນແບ່ງນີ້:
ເມື່ອພວກເຮົາແນ່ໃຈວ່າ GRUB ຕັ້ງຢູ່ (hd0, msdos1), ໃຫ້ບອກ GRUB ບ່ອນທີ່ຈະຊອກຫາເອກະສານການຕັ້ງຄ່າຂອງມັນແລະຫຼັງຈາກນັ້ນແນະ ນຳ ໃຫ້ພະຍາຍາມເປີດເມນູ:
set prefix=(hd0,msdos1)/grub2 set root=(hd0,msdos1) insmod normal normal
ຫຼັງຈາກນັ້ນ, ໃນ GRUB menu, ເລືອກເຂົ້າແລະກົດ Enter ເພື່ອບູດໂດຍໃຊ້ມັນ. ເມື່ອລະບົບເລີ່ມຕົ້ນທ່ານສາມາດອອກ ຄຳ ສັ່ງ grub2-install/dev/sdX
(ປ່ຽນ sdX
ກັບອຸປະກອນທີ່ທ່ານຕ້ອງການຕິດຕັ້ງ GRUB). ຂໍ້ມູນໃສ່ເກີບຫຼັງຈາກນັ້ນຈະໄດ້ຮັບການປັບປຸງແລະທຸກເອກະສານທີ່ກ່ຽວຂ້ອງຈະຖືກ ນຳ ກັບຄືນ.
# grub2-install /dev/sdX
ສະຖານະການທີ່ສັບສົນອື່ນໆແມ່ນຖືກບັນທຶກໄວ້ພ້ອມກັບການແກ້ໄຂທີ່ແນະ ນຳ ຂອງພວກເຂົາ, ໃນຄູ່ມືແກ້ໄຂບັນຫາ Ubuntu GRUB2. ແນວຄວາມຄິດທີ່ອະທິບາຍວ່າມັນຖືກຕ້ອງ ສຳ ລັບການແຈກຢາຍອື່ນໆເຊັ່ນກັນ.
ບົດສະຫຼຸບ
ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ແນະ ນຳ ໃຫ້ທ່ານ GRUB, ເຊິ່ງບອກເຖິງບ່ອນທີ່ທ່ານສາມາດຊອກຫາເອກະສານຕ່າງໆທັງທາງອິນເຕີເນັດແລະອອບໄລນ໌, ແລະໄດ້ອະທິບາຍວິທີການເຂົ້າຫາສະຖານະການທີ່ລະບົບຢຸດເຊົາການບູດຢ່າງຖືກຕ້ອງເນື່ອງຈາກບັນຫາທີ່ກ່ຽວຂ້ອງກັບ bootloader.
ໂຊກດີ, GRUB ແມ່ນ ໜຶ່ງ ໃນເຄື່ອງມືທີ່ເປັນເອກະສານທີ່ດີທີ່ສຸດແລະທ່ານສາມາດຊອກຫາຄວາມຊ່ວຍເຫຼືອໄດ້ຢ່າງງ່າຍດາຍບໍ່ວ່າຈະຢູ່ໃນເອກະສານທີ່ຕິດຕັ້ງຫລື online ໂດຍ ນຳ ໃຊ້ຊັບພະຍາກອນທີ່ພວກເຮົາໄດ້ແບ່ງປັນໃນບົດຄວາມນີ້.
ທ່ານມີ ຄຳ ຖາມຫລື ຄຳ ເຫັນບໍ? ຢ່າລັງເລທີ່ຈະແຈ້ງໃຫ້ພວກເຮົາຮູ້ໂດຍໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້. ພວກເຮົາຫວັງວ່າຈະໄດ້ຍິນຂ່າວຈາກທ່ານ!