ບູດໂຫຼດເດີ GRUB2 – ການຕິດຕັ້ງ ແລະ ການກຳນົດຄ່າ

Michael Wu, ທິມງານເອກະສານ Fedora Version unknown Last review: 2012-05-11

GRUB2 ແມ່ນເວີຊັນຫຼ້າສຸດຂອງ GNU GRUB, ຫຼື GRand Unified Bootloader. ບູດໂຫຼດເດີ (Bootloader) ແມ່ນໂປຣແກຣມຊອບແວທຳອິດທີ່ເຮັດວຽກເມື່ອຄອມພິວເຕີເລີ່ມຕົ້ນ. ມັນມີໜ້າທີ່ໃນການໂຫຼດ ແລະ ສົ່ງຕໍ່ການຄວບຄຸມໃຫ້ກັບເຄີນເນີນ (Kernel) ຂອງລະບົບປະຕິບັດການ. ໃນ Fedora, ເຄີນເນີນແມ່ນ Linux. ຈາກນັ້ນ ເຄີນເນີນຈະເລີ່ມຕົ້ນພາກສ່ວນອື່ນໆ ທີ່ເຫຼືອຂອງລະບົບປະຕິບັດການ.

GRUB2 ແມ່ນລຸ້ນສືບທອດຈາກເວີຊັນກ່ອນໜ້າ GRUB (ເວີຊັນ 0.9x). ເວີຊັນດັ້ງເດີມແມ່ນມີໃຫ້ໃຊ້ໃນຊື່ GRUB Legacy.

ຕັ້ງແຕ່ Fedora 16 ເປັນຕົ້ນມາ, GRUB2 ໄດ້ກາຍເປັນບູດໂຫຼດເດີເລີ່ມຕົ້ນໃນລະບົບ x86 BIOS. ສຳລັບການອັບເກຣດລະບົບ BIOS, ຄ່າເລີ່ມຕົ້ນແມ່ນການຕິດຕັ້ງ GRUB2 ເຊັ່ນກັນ, ແຕ່ທ່ານສາມາດເລືອກຂ້າມການກຳນົດຄ່າບູດໂຫຼດເດີໄດ້ທັງໝົດ.

ການກວດສອບປະເພດເຟີມແວ

ເພື່ອຢາກຮູ້ວ່າເຄື່ອງຂອງທ່ານໃຊ້ເຟີມແວປະເພດໃດ, ໃຫ້ລັນຄຳສັ່ງຕໍ່ໄປນີ້:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

ຜົນທີ່ສະແດງອອກມາຈະເປັນພຽງ UEFI ຫຼື BIOS, ຂຶ້ນກັບເຟີມແວທີ່ເຄື່ອງຂອງທ່ານກຳລັງໃຊ້ຢູ່.

ການຕິດຕັ້ງ GRUB2 ໃນລະບົບ BIOS

ໂດຍປົກກະຕິແລ້ວ, GRUB2 ຈະຖືກຕິດຕັ້ງ ແລະ ຕັ້ງຄ່າໂດຍຕົວຕິດຕັ້ງ Anaconda ໃນລະຫວ່າງຂັ້ນຕອນການຕິດຕັ້ງ. ທ່ານອາດຈະບໍ່ຈຳເປັນຕ້ອງຕິດຕັ້ງ GRUB2 ດ້ວຍຕົນເອງເລີຍ. ຢ່າງໃດກໍຕາມ, ໃນບາງສະຖານະການ, ທ່ານອາດຈະຕ້ອງການຕິດຕັ້ງ GRUB2 ດ້ວຍຕົນເອງ, ໂດຍສະເພາະຖ້າທ່ານຕ້ອງການສ້ອມແປງການຕິດຕັ້ງ GRUB2 ທີ່ມີຢູ່ແລ້ວ ຫຼື ຕ້ອງການປ່ຽນແປງການກຳນົດຄ່າຂອງມັນ.

ຂັ້ນຕອນນີ້ຈະສະແດງວິທີການຕິດຕັ້ງ GRUB2 ລົງໃນ Master Boot Record (MBR) ຂອງຮາດດິດຫຼັກຂອງທ່ານ.

ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນ
  • ກວດສອບໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ຕິດຕັ້ງແພັກເກດ GRUB2 ແລະ ແພັກເກດ os-prober ໃນລະບົບຂອງທ່ານແລ້ວ.

    $ dnf list installed | grep grub
  • ເພື່ອຮວບຮວມຂໍ້ມູນກ່ຽວກັບດິດ ແລະ ລະບົບປະຕິບັດການທີ່ຕິດຕັ້ງຢູ່ໃນເຄື່ອງໂດຍອັດຕະໂນມັດ, ຈຳເປັນຕ້ອງຕິດຕັ້ງແພັກເກດ os-prober ໄວ້ໃນລະບົບຂອງທ່ານ.

ຂັ້ນຕອນການດຳເນີນການ
  1. ສະແດງລາຍຊື່ອຸປະກອນຈັດເກັບຂໍ້ມູນ (block devices) ທີ່ມີຢູ່ໃນລະບົບ.

    $ lsblk
  2. Identify the primary hard disk. Usually, it is the sda device.

  3. Install GRUB2 in the MBR of the primary hard disk.

    $ sudo grub2-install /dev/sda
  4. Create a configuration file for GRUB2.

    $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  5. Reboot your computer to boot with the newly installed bootloader.

ຂໍ້ມູນເພີ່ມເຕີມ
  • The grub2-mkconfig command creates a new configuration based on the currently running system. It collects information from the /boot partition (or directory), from the /etc/default/grub file, and the customizable scripts in /etc/grub.d.

  • The configuration format is changing with time, and a new configuration file can become slightly incompatible with the older versions of the bootloader. Always run grub2-install before you create the configuration file with grub2-mkconfig.

  • In Fedora, it is generally safe to edit /boot/grub2/grub.cfg manually. Grubby in Fedora patches the configuration when a kernel update is performed and will try to not make any other changes than what is necessary. Manual changes can be overwritten with grub2-mkconfig when the system gets upgraded with Anaconda. Customizations placed in /etc/grub.d/40_custom or /boot/grub2/custom.cfg files will survive running the grub2-mkconfig command.

ການຕິດຕັ້ງ GRUB2 ໃນລະບົບ UEFI

ໂດຍປົກກະຕິແລ້ວ, GRUB2 ຈະຖືກຕິດຕັ້ງ ແລະ ຕັ້ງຄ່າໂດຍຕົວຕິດຕັ້ງ Anaconda ໃນລະຫວ່າງຂັ້ນຕອນການຕິດຕັ້ງ. ທ່ານອາດຈະບໍ່ຈຳເປັນຕ້ອງຕິດຕັ້ງ GRUB2 ດ້ວຍຕົນເອງເລີຍ. ຢ່າງໃດກໍຕາມ, ໃນບາງສະຖານະການ, ທ່ານອາດຈະຕ້ອງການຕິດຕັ້ງ GRUB2 ດ້ວຍຕົນເອງ, ໂດຍສະເພາະຖ້າທ່ານຕ້ອງການສ້ອມແປງການຕິດຕັ້ງ GRUB2 ທີ່ມີຢູ່ແລ້ວ ຫຼື ຕ້ອງການປ່ຽນແປງການກຳນົດຄ່າຂອງມັນ.

ຂັ້ນຕອນນີ້ສະແດງວິທີການຕິດຕັ້ງ GRUB2 ໃນລະບົບ UEFI ສຳລັບ Fedora 18 ຫຼື ເວີຊັນທີ່ໃໝ່ກວ່າ. ຂັ້ນຕອນປະກອບມີສີ່ພາກສ່ວນ.

ການສ້າງພາທິຊັນລະບົບ EFI (ESP)

ເຟີມແວ UEFI ຈຳເປັນຕ້ອງບູດຈາກ EFI System Partition (ESP) ໃນດິດທີ່ເປັນຮູບແບບ GPT. ວິທີການສ້າງພາທິຊັນດັ່ງກ່າວ:

  1. List available block devices to find a place to create your ESP.

    $ lsblk -f -p
  2. Create at least a 128 MiB disk partition using a GPT label on the primary hard disk.

    $ sudo gdisk /dev/sda

    For the sake of this procedure, we assume that the created partition is recognized as /dev/sda1.

  3. Format the partition with the FAT32 file system.

    $ sudo mkfs.vfat /dev/sda1
  4. Create the /boot/efi directory as a mount point for the new partition.

    $ sudo mkdir /boot/efi
  5. Mount the partition to the /boot/efi mount point.

    $ sudo mount /dev/sda1 /boot/efi
  6. Proceed to the next part.

ການຕິດຕັ້ງໄຟລ໌ບູດໂຫຼດເດີ

ເພື່ອທີ່ຈະໃຊ້ GRUB2 ໃນລະບົບ UEFI, ທ່ານຈຳເປັນຕ້ອງຕິດຕັ້ງແພັກເກດທີ່ຈຳເປັນ:

  1. Re-install the necessary packages.

    $ sudo dnf reinstall grub2-efi grub2-efi-modules shim-\*
  2. If the above command ends with an error, install the packages.

    $ sudo dnf install grub2-efi grub2-efi-modules shim-\*
ຂໍ້ມູນເພີ່ມເຕີມ
  • This installs the signed shim and the GRUB2 binary.

ການສ້າງການກຳນົດຄ່າ GRUB2

ຖ້າທ່ານມີໄຟລ໌ກຳນົດຄ່າ GRUB2 EFI ທີ່ໃຊ້ງານໄດ້ຢູ່ແລ້ວ, ທ່ານບໍ່ຈຳເປັນຕ້ອງເຮັດຫຍັງອີກ.

ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ສ້າງໄຟລ໌ກຳນົດຄ່າໂດຍໃຊ້ຄຳສັ່ງ grub2-mkconfig.

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
ຂໍ້ມູນເພີ່ມເຕີມ
  • Under EFI, GRUB2 looks for its configuration in /boot/efi/EFI/fedora/grub.cfg, however the postinstall script of grub2-common installs a small shim which chains to the standard configuration at /boot/grub2/grub.cfg which is generated above. To reset this shim to defaults, delete the existing /boot/efi/EFI/fedora/grub.cfg and then reinstall grub2-common.

    $ sudo rm -f /boot/efi/EFI/fedora/grub.cfg
    $ sudo dnf reinstall grub2-common
  • For newly installed kernels to work, grubby expects /etc/grub2-efi.cfg to be a symlink to the real grub.cfg (for example /boot/grub2/grub.cfg).

ການແກ້ໄຂບັນຫາກ່ຽວກັບ UEFI ບູດໂຫຼດເດີ

ເມື່ອທ່ານເປີດເຄື່ອງ, ເຟີມແວຈະຊອກຫາຕົວປ່ຽນ (variables) ຂອງ EFI ທີ່ບອກວ່າມັນຄວນຈະບູດແນວໃດ. ໃນລະບົບທີ່ກຳລັງເຮັດວຽກຢູ່ ເຊິ່ງບູດເຂົ້າໃນໂໝດ EFI ແລະ ບໍລິການ EFI runtime ເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ, ທ່ານສາມາດກຳນົດຄ່າເມນູບູດຂອງທ່ານໄດ້ດ້ວຍ efibootmgr.

If not, shim can help you bootstrap. The EFI fallback program at /boot/efi/EFI/BOOT/fbx64.efi will look for files called BOOT.CSV in your ESP and will add boot entries corresponding to them. The shim command provides its own BOOT.CSV file that will add an entry for grub2-efi.

The EFI fallback program was originally named fallback.efi, but was refactored into separate architecture-specific variants of the original fallback bootloader. While fbx64.efi is typically used in most cases, a 32-bit variant called fbia32.efi is also available for 32-bit UEFI systems. Although Fedora is only supported as a 64-bit operating system, the UEFI firmware of the system can still run as a 32-bit environment. In these cases, fbia32.efi is used instead of fbx64.efi to boot a 64-bit kernel. If your system has a 32-bit UEFI, you can substitute fbx64.efi with fbia32.efi in the instructions that follow.

During the boot process, you can use the EFI Shell to invoke the fbx64.efi profile to boot the system:

  1. Enter the boot partition.

    > fs0:
  2. ເຂົ້າໄປທີ່ໄດເຣັກທໍຣີ EFI\BOOT.

    > cd EFI\BOOT
  3. Invoke the fbx64.efi profile.

    > fbx64.efi
ຂໍ້ມູນເພີ່ມເຕີມ
  • If you have no boot entries at all, then just booting off your disk in UEFI mode should automatically invoke /boot/efi/EFI/BOOT/BOOTX64.EFI, which will, in turn, invoke fbx64.efi.

  • ຖ້າທ່ານມີລາຍການບູດທີ່ບໍ່ຖືກຕ້ອງຢູ່ແລ້ວ, ທ່ານຈຳເປັນຕ້ອງລຶບພວກມັນອອກ ຫຼື ແກ້ໄຂໄຟລ໌ BOOT.CSV ເພື່ອສ້າງລາຍການໃໝ່ດ້ວຍຊື່ອື່ນ.

ການເພີ່ມລະບົບປະຕິບັດການອື່ນໆ ເຂົ້າໃນເມນູ GRUB2

ໂດຍປົກກະຕິແລ້ວ, GRUB2 ຈະຖືກຕັ້ງຄ່າໃຫ້ບູດໄດ້ຫຼາຍລະບົບປະຕິບັດການໃນລະຫວ່າງການຕິດຕັ້ງ Fedora. ຖ້າເປັນໄປໄດ້, ແນະນຳໃຫ້ຕິດຕັ້ງລະບົບປະຕິບັດການອື່ນທີ່ບໍ່ແມ່ນ Linux ກ່ອນ. ຈາກນັ້ນໃນລະຫວ່າງການຕິດຕັ້ງ, ລະບົບປະຕິບັດການທັງໝົດເຫຼົ່ານັ້ນ ແລະ ບ່ອນຢູ່ຂອງມັນຈະຖືກກວດພົບ ແລະ ຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ.

ການເພີ່ມລາຍການອື່ນເຂົ້າໃນເມນູ GRUB2 ແມ່ນພຽງແຕ່ການລັນຄຳສັ່ງ grub2-mkconfig ເພື່ອສ້າງໄຟລ໌ກຳນົດຄ່າໃໝ່. ໃນລະຫວ່າງຂັ້ນຕອນນີ້, ລະບົບປະຕິບັດການທັງໝົດທີ່ລະບົບຮູ້ຈັກຈະຖືກເພີ່ມເຂົ້າໃນ ການກຳນົດຄ່າ. ໂດຍການຕິດຕັ້ງ GRUB2 ຄືນໃໝ່, ການກຳນົດຄ່ານີ້ຈະຖືກໃຊ້ສຳລັບການບູດຄັ້ງຕໍ່ໆ ໄປ.

ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນ
  • ກວດສອບໃຫ້ແນ່ໃຈວ່າລະບົບປະຕິບັດການຕ່າງໆ ຢູ່ໃນດິດທີ່ເຊື່ອມຕໍ່ກັບເຄື່ອງແລ້ວ.

  • ທ່ານໄດ້ຕິດຕັ້ງແພັກເກດ os-prober ແລ້ວ.

ຂັ້ນຕອນການດຳເນີນການ
  1. ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່.

    $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  2. ຕິດຕັ້ງ GRUB2.

    • ສຳລັບລະບົບ UEFI.

      $ sudo dnf reinstall shim-\* grub2-efi-\* grub2-common
    • ສຳລັບລະບົບ BIOS, ໃຫ້ລະບຸດິດບ່ອນທີ່ຕ້ອງການຕິດຕັ້ງບູດໂຫຼດເດີ.

      $ sudo grub2-install /dev/sda
ຂໍ້ມູນເພີ່ມເຕີມ
  • ຄຳສັ່ງ grub2-mkconfig ຈະເພີ່ມລາຍການສຳລັບທຸກລະບົບປະຕິບັດການທີ່ມັນຊອກຫາເຫັນ.

  • ເມື່ອເກີດບັນຫາ, ໃຫ້ເບິ່ງທີ່ ຄູ່ມື GRUB ເພື່ອແກ້ໄຂບັນຫາການບູດລະບົບປະຕິບັດການອື່ນໆ.

ການຕັ້ງຄ່າລາຍການເລີ່ມຕົ້ນສຳລັບ GRUB2

ເນື່ອງຈາກ grub2-mkconfig (ແລະ os-prober) ບໍ່ສາມາດຄາດຄະເນໄດ້ວ່າລະບົບປະຕິບັດການໃດທີ່ມັນຄົ້ນພົບ ຄວນຈະຖືກກຳນົດໃຫ້ເປັນຄ່າເລີ່ມຕົ້ນ, ໂດຍປົກກະຕິແລ້ວພວກເຮົາຈຶ່ງບໍ່ສາມາດຄາດເດົາລຳດັບຂອງລາຍການໃນ /boot/grub2/grub.cfg ໄດ້. ເພື່ອປ່ຽນຄ່າເລີ່ມຕົ້ນ, ພວກເຮົາຈຳເປັນຕ້ອງກຳນົດຄ່າເລີ່ມຕົ້ນໂດຍອີງໃສ່ name ຫຼື title.

ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນ
  1. ເປີດໄຟລ໌ /etc/default/grub ແລະ ກວດສອບໃຫ້ແນ່ໃຈວ່າມີແຖວເຫຼົ່ານີ້ຢູ່ໃນໄຟລ໌.

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=false
  2. ຖ້າທ່ານຈຳເປັນຕ້ອງປ່ຽນແປງເນື້ອໃນຂອງ /etc/default/grub, ໃຫ້ໃຊ້ການປ່ຽນແປງນັ້ນກັບ grub.cfg.

    $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
ຂັ້ນຕອນການດຳເນີນການ
  1. ສະແດງລາຍການເມນູທັງໝົດທີ່ເປັນໄປໄດ້.

    $ grep -P "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
  2. ເລືອກຕົວເລືອກໃດໜຶ່ງທີ່ສະແດງອອກມາ ແລະ ໃຊ້ມັນເປັນອາກິວເມັ້ນ (argument) ເພື່ອຕັ້ງຄ່າເມນູເລີ່ມຕົ້ນ.

    $ sudo grub2-set-default <menuentry>
  3. ກວດສອບລາຍການເມນູເລີ່ມຕົ້ນ

    $ grub2-editenv - list
  4. ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່ ແລະ ຕິດຕັ້ງບູດໂຫຼດເດີລົງໃນ MBR, ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ການເພີ່ມລະບົບປະຕິບັດການອື່ນໆ ເຂົ້າໃນເມນູ GRUB2.

ຂໍ້ມູນເພີ່ມເຕີມ

ຖ້າທ່ານເຂົ້າໃຈເຖິງຄວາມສ່ຽງ, ທ່ານສາມາດແກ້ໄຂໄຟລ໌ /boot/grub2/grub.cfg ດ້ວຍຕົນເອງໄດ້. ໃນກໍລະນີນັ້ນ, ໃຫ້ຕັ້ງໝາຍເລກຂອງລະບົບປະຕິບັດການເລີ່ມຕົ້ນໂດຍໃຊ້ຕົວປ່ຽນ set default.

ຕົວຢ່າງ:

set default="5"

ຖ້າທ່ານແກ້ໄຂໄຟລ໌ກຳນົດຄ່າດ້ວຍຕົນເອງ, ການຕັ້ງຄ່າເຫຼົ່ານັ້ນຈະຖືກຂຽນທັບທຸກຄັ້ງທີ່ລັນຄຳສັ່ງ grub2-mkconfig.

ການກູ້ຄືນບູດໂຫຼດເດີໂດຍໃຊ້ Live disk

ບາງຄັ້ງ, ໂດຍສະເພາະຫຼັງຈາກການຕິດຕັ້ງລະບົບປະຕິບັດການສຳຮອງ, master boot record (MBR) ອາດຈະເສຍຫາຍ ເຊິ່ງຈະເຮັດໃຫ້ລະບົບ Linux ເດີມບໍ່ສາມາດບູດໄດ້.

ຖ້າເກີດເຫດການນີ້, ຈຳເປັນຕ້ອງຕິດຕັ້ງ GRUB2 ຄືນໃໝ່ເພື່ອສ້າງການຕັ້ງຄ່າເດີມ. ຂັ້ນຕອນນີ້ບໍ່ພຽງແຕ່ຈະຄົ້ນຫາລະບົບປະຕິບັດການທັງໝົດທີ່ຕິດຕັ້ງໄວ້ເທົັ້ນັ້ນ, ແຕ່ຍັງຈະເພີ່ມພວກມັນເຂົ້າໃນ ໄຟລ໌ກຳນົດຄ່າຂອງ GRUB2, ເຮັດໃຫ້ທຸກລະບົບສາມາດບູດຜ່ານ GRUB2 ໄດ້.

ກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນ
  • ດາວໂຫຼດ Fedora Live ISO ຈາກ fedoraproject.org.

  • ກຽມອຸປະກອນບູດໂດຍໃຊ້ ISO ທີ່ດາວໂຫຼດມາ, ບໍ່ວ່າຈະເປັນ CD ຫຼື USB.

ຂັ້ນຕອນການດຳເນີນການ
  1. ບູດລະບົບ Fedora live ຈາກອຸປະກອນບູດທີ່ທ່ານໄດ້ສ້າງໄວ້.

  2. ເປີດເທີມີນໍ (Terminal).

  3. ກວດສອບໂຄງສ້າງພາທິຊັນ ແລະ ລະບຸພາທິຊັນ /boot ແລະ /root.

    $ lsblk -f -p
  4. ຖ້າພາທິຊັນ /root ຂອງທ່ານຖືກເຂົ້າລະຫັດດ້ວຍ LUKS, ມັນຕ້ອງຖືກຖອດລະຫັດກ່ອນ.

    1. ກວດສອບໃຫ້ແນ່ໃຈວ່າມີການໃຊ້ງານໂມດູນ crypt.

      $ sudo modprobe dm-crypt
    2. ຖອດລະຫັດພາທິຊັນ /root (ຕົວຢ່າງ: /dev/sda3).

      $ sudo cryptsetup luksOpen /dev/sda3 myvolume

      ອຸປະກອນທີ່ຖອດລະຫັດແລ້ວ (ຕົວຢ່າງ: myvolume) ຈະສາມາດເຂົ້າເຖິງໄດ້ພາຍໃຕ້ /dev/mapper.

  5. ປະຕິບັດຕາມຂັ້ນຕອນສຳລັບ BTRFS (ໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນໃນ Fedora 33 ຫຼື ໃໝ່ກວ່າ).

    1. ເມົາທ໌ພາທິຊັນ /root.

      • ສຳລັບ LUKS.

        $ sudo mount /dev/mapper/myvolume /mnt -o subvol=root
      • ສຳລັບລະບົບທີ່ບໍ່ແມ່ນ LUKS.

        $ sudo mount /dev/sda3 /mnt -o subvol=root
  6. ປະຕິບັດຕາມຂັ້ນຕອນສຳລັບ LVM (ໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນກ່ອນ Fedora 33).

    1. ສະແກນ LVM volumes ເພື່ອຫາ volume group ທີ່ກ່ຽວຂ້ອງກັບພາທິຊັນ /root.

      $ sudo vgscan
    2. ເປີດໃຊ້ງານ volume group (ຕົວຢ່າງ: fedora).

      $ sudo vgchange -ay fedora
    3. ຊອກຫາ logical volume ທີ່ກົງກັບ /root.

      $ sudo lvs

      Logical volume ຈະສາມາດເຂົ້າເຖິງໄດ້ພາຍໃຕ້ /dev/mapper.

    4. ເມົາທ໌ logical volume (ຕົວຢ່າງ: /dev/mapper/fedora-root) ທີ່ກ່ຽວຂ້ອງກັບພາທິຊັນ /root.

      $ sudo mount /dev/mapper/fedora-root /mnt
  7. ເມົາທ໌ພາທິຊັນ /boot (ຕົວຢ່າງ: /dev/sda2).

    $ sudo mount /dev/sda2 /mnt/boot
  8. ເມົາທ໌ໂປຣເຊສຂອງລະບົບ ແລະ ອຸປະກອນຕ່າງໆ ເຂົ້າໃນລະບົບໄຟລ໌ /root.

    $ sudo mount -o bind /dev /mnt/dev
    $ sudo mount -o bind /proc /mnt/proc
    $ sudo mount -o bind /sys /mnt/sys
    $ sudo mount -o bind /run /mnt/run
    $ sudo mount -o bind /dev/pts /mnt/dev/pts
  9. ສຳລັບລະບົບ UEFI, ໃຫ້ທຳການ bind ໄດເຣັກທໍຣີ efivars ແລະ ເມົາທ໌ພາທິຊັນລະບົບ EFI (ຕົວຢ່າງ: /dev/sda1).

    $ sudo mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
    $ sudo mount /dev/sda1 /mnt/boot/efi
  10. ປ່ຽນລະບົບໄຟລ໌ຂອງທ່ານໄປເປັນຕົວທີ່ເມົາທ໌ໄວ້ພາຍໃຕ້ /mnt.

    $ sudo chroot /mnt
  11. ຕິດຕັ້ງ GRUB2 ຄືນໃໝ່.

    • ສຳລັບລະບົບ UEFI, ຈຳເປັນຕ້ອງໃຊ້ຫຼາຍແພັກເກດ.

      $ sudo dnf reinstall shim-\* grub2-efi-\* grub2-common
    • ສຳລັບລະບົບ BIOS, ໃຫ້ລະບຸດິດ (ຕົວຢ່າງ: /dev/sda) ບ່ອນທີ່ຕ້ອງການຕິດຕັ້ງ GRUB2.

      $ sudo grub2-install /dev/sda
  12. ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່.

    $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  13. Sync ແລະ ອອກຈາກ chroot.

    $ sync && exit
  14. ເລີ່ມລະບົບໃໝ່.

ການໃຊ້ງານ GRUB2 boot prompt

ຖ້າການກຳນົດຄ່າບໍ່ຖືກຕ້ອງ, GRUB2 ອາດຈະໂຫຼດບໍ່ສຳເລັດ ແລະ ຈະເຂົ້າສູ່ boot prompt. ເພື່ອບູດເຂົ້າສູ່ລະບົບ, ໃຫ້ປະຕິບັດຕາມຂັ້ນຕອນລຸ່ມນີ້.

ຂັ້ນຕອນການດຳເນີນການ
  1. ໂຫຼດໂມດູນທີ່ຈຳເປັນເພື່ອອ່ານພາທິຊັນຂອງລະບົບ (ທ່ານຈຳເປັນຕ້ອງໂຫຼດ part_msdos ຫຼື part_gpt ຕື່ມ ຂຶ້ນກັບຮູບແບບຕາຕະລາງພາທິຊັນຂອງທ່ານ).

    • ສຳລັບລະບົບໄຟລ໌ BTRFS (Fedora 33 ຫຼື ໃໝ່ກວ່າ).

      grub> insmod btrfs
    • ສຳລັບລະບົບໄຟລ໌ LVM (ເກົ່າກວ່າ Fedora 33).

      grub> insmod xfs
      grub> insmod lvm
  2. ສະແດງລາຍຊື່ໄດຣຟ໌ທີ່ GRUB2 ກວດພົບ.

    grub> ls
  3. ກວດສອບຜົນທີ່ສະແດງອອກມາເພື່ອທຳຄວາມເຂົ້າໃຈຕາຕະລາງພາທິຊັນຂອງອຸປະກອນ /dev/sda. ຕົວຢ່າງລຸ່ມນີ້ສະແດງຕາຕະລາງພາທິຊັນແບບ DOS ທີ່ມີສາມພາທິຊັນ.

    (hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

    ຕາຕະລາງພາທິຊັນແບບ GPT ຂອງອຸປະກອນ /dev/sda ທີ່ມີສີ່ພາທິຊັນ ອາດຈະມີໜ້າຕາແບບນີ້.

    (hd0) (hd0,gpt4) (hd0,gpt3)  (hd0,gpt2) (hd0,gpt1)
  4. ກວດສອບແຕ່ລະພາທິຊັນຂອງໄດຣຟ໌ ແລະ ຊອກຫາບ່ອນຢູ່ຂອງໄຟລ໌ vmlinuz ແລະ initramfs.

    grub> ls (hd0,1)/

    ຜົນຂອງຄຳສັ່ງກ່ອນໜ້ານີ້ຈະສະແດງລາຍຊື່ໄຟລ໌ໃນ /dev/sda1. ພາທິຊັນທີ່ມີໂຟນເດີ /boot ແມ່ນພາທິຊັນທີ່ຖືກຕ້ອງ. ໃຫ້ທ່ານຊອກຫາຊື່ເຕັມຂອງໄຟລ໌ vmlinuz ແລະ initramfs ຢູ່ທີ່ນັ້ນ.

  5. ປະຕິບັດຕາມ ການຕັ້ງຄ່າກ່ອນບູດສຳລັບ BTRFS ຫຼື ການຕັ້ງຄ່າກ່ອນບູດສຳລັບ LVM ເພື່ອ ກູ້ຄືນລະບົບຂອງທ່ານ.

  6. ຫຼັງຈາກຕັ້ງຄ່າກ່ອນບູດແລ້ວ, ໃຫ້ທຳການບູດລະບົບ.

    grub> boot
  7. ເພື່ອໃຫ້ບູດໂຫຼດເດີກັບມາເຮັດວຽກໄດ້ປົກກະຕິ, ໃຫ້ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່ ແລະ ຕິດຕັ້ງບູດໂຫຼດເດີອີກຄັ້ງ ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ການເພີ່ມລະບົບປະຕິບັດການອື່ນໆ ເຂົ້າໃນເມນູ GRUB2.

ການຕັ້ງຄ່າກ່ອນບູດສຳລັບລະບົບໄຟລ໌ BTRFS

  • ສຳລັບລະບົບ BIOS.

    1. ຕັ້ງ GRUB2 root ໄປທີ່ພາທິຊັນ /boot. ຖ້າພາທິຊັນ /boot ຂອງທ່ານແມ່ນ (hd0,msdos1), ຄຳສັ່ງຈະເປັນ:

      grub> set root=(hd0,msdos1)
    2. ຕໍ່ໄປ, ເລືອກເຄີນເນີນທີ່ຕ້ອງການ. ລະບຸພາທິຊັນ /root (ຕົວຢ່າງ: /dev/sda2).

      grub> linux /vmlinuz-5.14.10-300.fc35.x86_64 root=/dev/sda2 ro rootflags=subvol=root
  • ສຳລັບລະບົບ UEFI.

    1. ຕັ້ງ GRUB2 root ໄປທີ່ພາທິຊັນລະບົບ EFI. ຖ້າພາທິຊັນລະບົບ EFI ຂອງທ່ານແມ່ນ (hd0,gpt1), ໃຫ້ໃຊ້ຄຳສັ່ງນີ້:

      grub> set root=(hd0,gpt1)
    2. ຕໍ່ໄປ, ເລືອກເຄີນເນີນທີ່ຕ້ອງການ. ຊອກຫາບ່ອນຢູ່ຂອງ vmlinuz ແລະ ລະບຸພາທິຊັນ /root (ຕົວຢ່າງ: /dev/sda3).

      grub> linux (hd0,gpt2)/vmlinuz-5.14.10-300.fc35.x86_64 root=/dev/sda3 ro rootflags=subvol=root
    3. ເລືອກລະບົບໄຟລ໌ RAM (initrd) ທີ່ຈະໂຫຼດ.

      grub> initrd (hd0,gpt2)/initramfs-5.14.10-300.fc35.x86_64.img

ການຕັ້ງຄ່າກ່ອນບູດສຳລັບລະບົບໄຟລ໌ LVM

  • ສຳລັບລະບົບ BIOS.

    1. ຕັ້ງ GRUB2 root ໄປທີ່ພາທິຊັນ /boot. ຖ້າພາທິຊັນ /boot ຂອງທ່ານແມ່ນ (hd0,msdos1), ໃຫ້ໃຊ້ຄຳສັ່ງນີ້:

      grub> set root=(hd0,msdos1)
    2. ຕໍ່ໄປ, ເລືອກເຄີນເນີນທີ່ຕ້ອງການ. ຕັ້ງ root ໄປທີ່ logical volume ທີ່ກ່ຽວຂ້ອງກັບໂຟນເດີ /root.

      grub> linux /vmlinuz-3.0.0-1.fc16.i686 root=/dev/mapper/fedora-root
    3. ເລືອກລະບົບໄຟລ໌ RAM (initrd) ທີ່ຈະໂຫຼດ.

      grub> initrd /initramfs-3.0.0-1.fc16.i686.img
  • ສຳລັບລະບົບ UEFI.

    1. ຕັ້ງ GRUB2 root ໄປທີ່ພາທິຊັນລະບົບ EFI. ຖ້າພາທິຊັນລະບົບ EFI ຂອງທ່ານແມ່ນ (hd0,gpt1), ໃຫ້ໃຊ້ຄຳສັ່ງນີ້:

      set root=(hd0,gpt1)
    2. ຕໍ່ໄປ, ເລືອກເຄີນເນີນທີ່ຕ້ອງການ. ຊອກຫາບ່ອນຢູ່ຂອງ vmlinuz ແລະ ຕັ້ງ root ໄປທີ່ logical volume ທີ່ກ່ຽວຂ້ອງກັບໂຟນເດີ /root.

      linux (hd0,gpt2)/vmlinuz-3.0.0-1.fc16.i686 root=/dev/mapper/fedora-root
    3. ເລືອກລະບົບໄຟລ໌ RAM (initrd) ທີ່ຈະໂຫຼດ.

      initrd (hd0,gpt2)/initramfs-3.0.0-1.fc16.i686.img

ການບູດລະບົບໂດຍໃຊ້ໄຟລ໌ກຳນົດຄ່າທີ່ຢູ່ໃນພາທິຊັນອື່ນ

ຖ້າທ່ານເຂົ້າສູ່ GRUB2 boot prompt, ທ່ານຍັງສາມາດບູດໂດຍໃຊ້ configfile ທີ່ຢູ່ໃນພາທິຊັນອື່ນໄດ້ ເຊິ່ງມັກຈະເກີດຂຶ້ນກັບລະບົບທີ່ມີຫຼາຍລະບົບປະຕິບັດການ (multi-boot) ເຊັ່ນ Ubuntu ແລະ Fedora. ໃຫ້ປະຕິບັດຕາມຂັ້ນຕອນລຸ່ມນີ້ຖ້າທ່ານຕ້ອງການບູດຈາກໄຟລ໌ກຳນົດຄ່າໃນພາທິຊັນອື່ນ.

ຂັ້ນຕອນການດຳເນີນການ
  1. ໂຫຼດໂມດູນທີ່ຈຳເປັນເພື່ອອ່ານພາທິຊັນຂອງລະບົບ (ທ່ານຈຳເປັນຕ້ອງໂຫຼດ part_msdos ຫຼື part_gpt ຕື່ມ ຂຶ້ນກັບຮູບແບບຕາຕະລາງພາທິຊັນຂອງທ່ານ).

    • ສຳລັບລະບົບໄຟລ໌ BTRFS.

      grub> insmod btrfs
    • ສຳລັບລະບົບໄຟລ໌ LVM.

      grub> insmod xfs
      grub> insmod lvm
  2. ຕັ້ງ GRUB2 root ໄປທີ່ພາທິຊັນ /boot. ສຳລັບລະບົບ UEFI, ທ່ານຄວນຕັ້ງ GRUB2 root ໄປທີ່ພາທິຊັນລະບົບ EFI.

    grub> set root=(hd0,msdos1)
  3. ກຳນົດເສັ້ນທາງ (path) ໄປຫາໄຟລ໌ກຳນົດຄ່າ.

    grub> configfile /grub2/grub.cfg
ຂໍ້ມູນເພີ່ມເຕີມ
  • ແຖວ hd0,msdos1 ສະແດງໃຫ້ເຫັນເຖິງພາທິຊັນ /boot ທີ່ກ່ຽວຂ້ອງ ເຊິ່ງເກັບໄຟລ໌ grub.cfg ໄວ້. ການຕັ້ງຄ່າອາດຈະແຕກຕ່າງກັນໄປຕາມລະບົບຂອງທ່ານ. ເບິ່ງ ການໃຊ້ງານ GRUB2 boot prompt ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.

ການຕັ້ງລະຫັດຜ່ານສຳລັບໂໝດການແກ້ໄຂແບບໂຕ້ຕອບ

ຖ້າທ່ານຕ້ອງການປ້ອງກັນໂໝດການແກ້ໄຂຂອງ GRUB2 ດ້ວຍລະຫັດຜ່ານ, ແຕ່ຍັງອະນຸຍາດໃຫ້ຜູ້ໃຊ້ທົ່ວໄປບູດເຄື່ອງໄດ້, ໃຫ້ໃຊ້ຄຳສັ່ງ grub2-set-password. ລະບົບຈະຖາມຫາລະຫັດຜ່ານ ແລະ ໃຫ້ທ່ານຢືນຢັນອີກຄັ້ງ. ລະຫັດຜ່ານທີ່ຖືກເຂົ້າລະຫັດແລ້ວຈະຖືກເກັບໄວ້ໃນ /boot/grub2/user.cfg.

ເພື່ອຍົກເລີກການປ້ອງກັນດ້ວຍລະຫັດຜ່ານ, ພຽງແຕ່ລຶບໄຟລ໌ user.cfg ອອກ.

ຫຼື ທ່ານສາມາດຕັ້ງຄ່າດ້ວຍຕົນເອງໄດ້ດັ່ງນີ້:

ຂັ້ນຕອນການດຳເນີນການ
  1. ສ້າງໄຟລ໌ /etc/grub.d/01_users ແລະ ຂຽນແຖວຕໍ່ໄປນີ້ລົງໃນໄຟລ໌.

    $ sudo tee /etc/grub.d/01_users << EOF
    set superusers="root"
    export superusers
    password root <password>
    EOF
  2. ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່, ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ການເພີ່ມລະບົບປະຕິບັດການອື່ນໆ ເຂົ້າໃນເມນູ GRUB2.

ຂໍ້ມູນເພີ່ມເຕີມ

ທ່ານສາມາດເຂົ້າລະຫັດລະຫັດຜ່ານໂດຍໃຊ້ pbkdf2. ໃຫ້ໃຊ້ grub2-mkpasswd-pbkdf2 ເພື່ອເຂົ້າລະຫັດ, ແລ້ວປ່ຽນແຖວລະຫັດຜ່ານເປັນ:

password_pbkdf2 root grub.pbkdf2.sha512.10000.1B4BD9B60DE889A4C50AA9458C4044CBE129C9607B6231783F7E4E7191D8254C0732F4255178E2677BBE27D03186E44815EEFBAD82737D81C87F5D24313DDDE7.E9AEB53A46A16F30735E2558100D8340049A719474AEEE7E3F44C9C5201E2CA82221DCF2A12C39112A701292BF4AA071EB13E5EC8C8C84CC4B1A83304EA10F74

ເພື່ອຍົກເລີກການປ້ອງກັນດ້ວຍລະຫັດຜ່ານ, ພຽງແຕ່ລຶບສິ່ງທີ່ທ່ານແກ້ໄຂໃນໄຟລ໌ /etc/grub.d/01_users ອອກ ແລະ ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່ຄືເກົ່າ.

ສາມາດເບິ່ງລາຍລະອຽດເພີ່ມເຕີມໄດ້ທີ່ Ubuntu Help: GRUB2 Passwords.

ເລີ່ມຕົ້ນຈາກ Fedora 15 ເປັນຕົ້ນມາ, ຕ້ອງໃຊ້ຕົວເລືອກ --password=<encrypted_grub_passwd> --iscrypted ໃນ kickstart ຖ້າຕ້ອງການຕັ້ງລະຫັດຜ່ານ GRUB2 ທີ່ເຂົ້າລະຫັດໄວ້ໃນໄຟລ໌ kickstart.

ການຈັດການກັບຂໍ້ຜິດພາດ "Absent Floppy Disk"

ມີລາຍງານຈາກຜູ້ໃຊ້ບາງຄົນວ່າ GRUB2 ອາດຈະຕິດຕັ້ງລົງໃນ boot sector ຂອງພາທິຊັນບໍ່ສຳເລັດ ຖ້າ floppy controller ຂອງຄອມພິວເຕີຖືກເປີດໃຊ້ງານໃນ BIOS ແຕ່ບໍ່ມີ floppy disk drive ຢູ່ແທ້. ສະຖານະການດັ່ງກ່າວຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດ Absent Floppy Disk.

ວິທີການແກ້ໄຂບັນຫານີ້ແມ່ນໃຫ້ເຂົ້າສູ່ rescue mode ແລະ ປະຕິບັດຕາມຂັ້ນຕອນໃນ ການຕິດຕັ້ງ GRUB2 ໃນລະບົບ BIOS, ແຕ່ໃຫ້ໃຊ້ຕົວເລືອກ --no-floppy ຮ່ວມກັບຄຳສັ່ງ grub2-install.

$ sudo grub2-install <target device> --no-floppy

ການໃຊ້ໂໝດກຣາຟິກແບບເກົ່າໃນບູດໂຫຼດເດີ

ອຸປະກອນເທີມິນໍແມ່ນຖືກເລືອກດ້ວຍ GRUB_TERMINAL. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງໄດ້ທີ່ລິງກ໌: ຄູ່ມື Grub.

ຊື່ການສະແດງຜົນຂອງເທີມີນໍທີ່ໃຊ້ໄດ້ແມ່ນຂຶ້ນກັບແພລັດຟອມ, ແຕ່ອາດຈະລວມມີ console (PC BIOS ແລະ EFI consoles), serial (serial terminal), gfxterm (graphics-mode output), ofconsole (Open Firmware console), ຫຼື vga_text (VGA text output, ເຊິ່ງສ່ວນຫຼາຍຈະໃຊ້ກັບ Coreboot).

ຄ່າເລີ່ມຕົ້ນແມ່ນການໃຊ້ການສະແດງຜົນເທີມີນໍດັ້ງເດີມຂອງແພລັດຟອມນັ້ນ.

ໃນ Fedora, gfxterm ແມ່ນຕົວເລືອກເລີ່ມຕົ້ນ. ເພື່ອໃຊ້ໂໝດກຣາຟິກແບບເກົ່າ (legacy):

ຂັ້ນຕອນການດຳເນີນການ
  1. ແກ້ໄຂໄຟລ໌ /etc/default/grub.

  2. ຕັ້ງຕົວປ່ຽນ GRUB_TERMINAL ໄປເປັນຕົວເລືອກໃດໜຶ່ງທີ່ກ່າວມາຂ້າງເທິງ.

  3. ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່ ແລະ ຕິດຕັ້ງບູດໂຫຼດເດີລົງໃນ MBR, ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ການເພີ່ມລະບົບປະຕິບັດການອື່ນໆ ເຂົ້າໃນເມນູ GRUB2.

ການເປີດໃຊ້ງານ Serial Console ໃນ GRUB2

ວິທີການເປີດໃຊ້ງານ Serial console ໃນ grub:

ຂັ້ນຕອນການດຳເນີນການ
  1. ແກ້ໄຂໄຟລ໌ /etc/default/grub.

  2. ປັບແຕ່ງຄ່າ baudrate, parity, bits, ແລະ flow ໃຫ້ເໝາະສົມກັບສະພາບແວດລ້ອມ ແລະ ສາຍສັນຍານຂອງທ່ານ, ໃຫ້ເບິ່ງຕາມຕົວຢ່າງ.

    GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8'
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
  3. ສ້າງໄຟລ໌ກຳນົດຄ່າ GRUB2 ຄືນໃໝ່ ແລະ ຕິດຕັ້ງບູດໂຫຼດເດີລົງໃນ MBR, ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ ການເພີ່ມລະບົບປະຕິບັດການອື່ນໆ ເຂົ້າໃນເມນູ GRUB2.

ແຫຼ່ງຂໍ້ມູນເພີ່ມເຕີມ