Difference between revisions of "Install/Bootloader"

From Funtoo
Jump to navigation Jump to search
(add AMD microcode. remind people to run lsblk and think about what they're about to enter.)
(note the default fallback is a shim efi location, and that shim functions by unlocking secureboot, and kicking over to grubx64.efi.....)
Line 3: Line 3:
== Bootloader == <!--T:1-->
== Bootloader == <!--T:1-->
</includeonly><noinclude><languages/>
</includeonly><noinclude><languages/>
= Install Guide: Bootloader =
== Install Guide: Bootloader ==


<!--T:2-->
<!--T:2-->
Line 87: Line 87:


<!--T:205-->
<!--T:205-->
Run lsblk again and make sure you're installing grub to the correct drive.  Run the following command to install GRUB in legacy mode, and generate the {{c|/boot/grub/grub.cfg}} configuration file that GRUB will use for booting:
Run the following command to install GRUB in legacy mode, and generate the {{c|/boot/grub/grub.cfg}} configuration file that GRUB will use for booting:


<!--T:206-->
<!--T:206-->
{{console|body=
{{console|body=
%chroot% ##i##grub-install --target=i386-pc --no-floppy /dev/sdX
%chroot% ##i##grub-install --target=i386-pc --no-floppy /dev/funtoo
%chroot% ##i##ego boot update
%chroot% ##i##ego boot update
}}
}}
Line 106: Line 106:
{{console|body=
{{console|body=
%chroot% ##i##mount -o remount,rw /sys/firmware/efi/efivars
%chroot% ##i##mount -o remount,rw /sys/firmware/efi/efivars
%chroot% ##i##grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="FUNTOO" --recheck /dev/sdX
%chroot% ##i##grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="FUNTOO" --recheck /dev/funtoo
%chroot% ##i##ego boot update
%chroot% ##i##ego boot update
}}
}}
Line 116: Line 116:
{{console|body=
{{console|body=
%chroot% ##i##mount -o remount,rw /sys/firmware/efi/efivars
%chroot% ##i##mount -o remount,rw /sys/firmware/efi/efivars
%chroot% ##i##grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="FUNTOO" --recheck /dev/sdX
%chroot% ##i##grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="FUNTOO" --recheck /dev/funtoo
%chroot% ##i##ego boot update
%chroot% ##i##ego boot update
}}
}}
Line 131: Line 131:


==== Post reboot UEFI troubleshooting ==== <!--T:236-->
==== Post reboot UEFI troubleshooting ==== <!--T:236-->
In case UEFI NVRAM boot entry is missing in BIOS and grub does not start you can try moving an already installed GRUB EFI executable to the [https://wiki.archlinux.org/index.php/GRUB#Default/fallback_boot_path default/fallback path]
In case UEFI NVRAM boot entry is missing in BIOS and grub does not start you can try moving an already installed GRUB EFI executable to the [https://wiki.archlinux.org/index.php/GRUB#Default/fallback_boot_path default/fallback path] we suggest against this, that's a location for a boot shim, which unlocks secure boot, and kicks over to /boot/EFI/BOOT/grubx64.efi
{{console|body=
{{console|body=
%chroot% ##i##mv -v '/boot/EFI/FUNTOO' /boot/EFI/BOOT
%chroot% ##i##mv -v /boot/EFI/FUNTOO /boot/EFI/BOOT
%chroot% ##i##mv -v /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI
%chroot% ##i##mv -v /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI
}}
}}

Revision as of 12:21, December 7, 2020

Other languages:
English • ‎Türkçe • ‎español • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎

Install Guide: Bootloader

Install Guide, Chapter 14 < Prev Next >

boot.conf Configuration

These install instructions show you how to use GRUB to boot using BIOS (legacy) or UEFI.

ego boot update (ego boot) is installed by default, but GRUB is not, as it is not required for all Funtoo Linux systems (such as containers, for example.) But for booting on bare metal, it is the recommended and best-supported boot loader, so you will need to emerge it:

chroot # emerge -av grub

boot.conf

/etc/boot.conf controls boot loader configuration in Funtoo. Here is what is in the file by default:

   /etc/boot.conf
boot {
	generate grub
	default "Funtoo Linux"
	timeout 3
}

"Funtoo Linux" {
	kernel kernel[-v]
	initrd initramfs[-v]
	params += real_root=auto rootfstype=auto
}

"Funtoo Linux (nomodeset)" {
	kernel kernel[-v]
	initrd initramfs[-v]
	params += real_root=auto rootfstype=auto nomodeset
}

If you are booting a custom or non-default kernel, please read man boot.conf for information on the various options available to you.

nomodeset

You will notice after booting that you there will be a boot option in the GRUB menu for a "nomodeset" mode. We don't recommend you use this mode by default but it is available to you for a couple of good reasons:

  • For users with HiDPI (4K+) displays, especially laptops: If you have not set up a graphical environment, when the kernel automatically changes graphics modes, the console font can be tiny and unreadable.
  • For users with incompatible graphics cards: Some graphics cards don't handle mode setting properly and this can result in a blank screen after reboot. Use this boot option as a temporary workaround.

To use the nomodeset option, simply select that option from the GRUB menu when your system boots.


Intel Microcode

ego boot will ensure that you have the most recent Intel CPU microcode installed on your system if you emerge the following packages:

chroot # emerge intel-microcode iucode_tool

AMD microcode is packaged with linux-firmware.

chroot #  echo "sys-kernel/linux-firmware initramfs" >> /etc/portage/package.use
chroot #  emerge linux-firmware

Old School (BIOS) MBR

Run the following command to install GRUB in legacy mode, and generate the /boot/grub/grub.cfg configuration file that GRUB will use for booting:

chroot # grub-install --target=i386-pc --no-floppy /dev/funtoo
chroot # ego boot update

New School (UEFI) Boot Entry

If you're using "new school" UEFI booting, run of the following sets of commands, depending on whether you are installing a 64-bit or 32-bit system. This will add GRUB as a UEFI boot entry.

For x86-64bit systems:

chroot # mount -o remount,rw /sys/firmware/efi/efivars
chroot # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="FUNTOO" --recheck /dev/funtoo
chroot # ego boot update

For x86-32bit systems:

chroot # mount -o remount,rw /sys/firmware/efi/efivars
chroot # grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="FUNTOO" --recheck /dev/funtoo
chroot # ego boot update

First Boot, and in the future...

   Warning

ensure you disable secure boot in uefi bios. ensure you enable legacy mode in uefi bios, or funtoo will not be able to load.

   Warning

install Package:Shim to get funtoo booting with UEFI secureboot.

   Warning

turn your secure boot back on once everything is confirmed working.

You only need to run grub-install when you first install Funtoo Linux, but you need to re-run ego boot update every time you modify your /etc/boot.conf file or add new kernels to your system. This will regenerate /boot/grub/grub.cfg so that you will have new kernels available in your GRUB boot menu upon your next reboot.

Post reboot UEFI troubleshooting

In case UEFI NVRAM boot entry is missing in BIOS and grub does not start you can try moving an already installed GRUB EFI executable to the default/fallback path we suggest against this, that's a location for a boot shim, which unlocks secure boot, and kicks over to /boot/EFI/BOOT/grubx64.efi

chroot # mv -v /boot/EFI/FUNTOO /boot/EFI/BOOT
chroot # mv -v /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI
Install Guide, Chapter 14 < Prev Next >