Difference between revisions of "Install/Bootloader"

From Funtoo
Jump to navigation Jump to search
(27 intermediate revisions by 4 users not shown)
Line 7: Line 7:
<!--T:2-->
<!--T:2-->
{{InstallNavigation|num=14|prev=Kernel|next=Network}}</noinclude>
{{InstallNavigation|num=14|prev=Kernel|next=Network}}</noinclude>
=== boot.conf Configuration === <!--T:218-->


<!--T:214-->
<!--T:214-->
Line 19: Line 21:
}}
}}


<!--T:198-->
==== boot.conf ==== <!--T:237-->
Next, edit {{c|/etc/boot.conf}} using {{c|nano}} and specify "{{c|Funtoo Linux genkernel}}" as the {{c|default}} setting at the top of the file, replacing {{c|"Funtoo Linux"}}.
 
== boot.conf Configuration ==
 
=== NVIDIA Graphics Card Users ===
 
If you have NVIDIA graphics and plan to set up a graphical environment, you have a couple of choices when it comes to graphics drivers -- the proprietary NVIDIA drivers provided by NVIDIA corporation itself, or the Open Source Nouveau drivers. If you don't know which to choose, we recommend starting with the proprietary NVIDIA drivers first for optimal performance on a wider range of hardware.
 
;If preparing your system for proprietary NVIDIA graphics: It is safe to leave the {{c|nomodeset}} parameter in {{c|/etc/boot.conf}} as the proprietary drivers handle setting the graphics mode themselves. However, you will need to ''blacklist the nouveau modules'' so they do not load upon boot. See [[Package:NVIDIA_Linux_Display_Drivers|the NVIDIA Linux Display Drivers page]] for information on how to get these drivers set up.
 
If you are planning to use Nouveau, {{c|nomodeset}} should be should be removed as explained below in the '''Other Graphics Cards''' section.
 
=== Other Graphics Cards ===
 
Most users, particularly those who plan on setting up a graphical environment, will want to eventually remove {{c|nomodeset}} from {{c|params}} in {{f|/etc/make.conf}}. {{c|nomodeset}} prevents the kernel from changing graphics modes at boot.
 
This option is in {{c|/etc/boot.conf}} by default for a couple of good reasons:
 
* '''For users with HiDPI (4K+) displays''': 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.
 
Disabling mode setting is therefore a good, safe option for initial installs of Funtoo Linux.
 
However, essentially all graphics drivers (the big exception being the proprietary NVIDIA drivers) ''require'' mode setting to be enabled. So while {{c|nomodeset}} is a good option to get the initial system up and running, most users ''will need to remove it'', run {{c|ego boot update}} and reboot before they set up X or Wayland. Otherwise, X will not be able to initialize the display.


<!--T:199-->
<!--T:199-->
{{c|/etc/boot.conf}} should now look like this:
{{c|/etc/boot.conf}} controls boot loader configuration in Funtoo. Here is what is in the file by default:


<!--T:200-->
<!--T:200-->
Line 52: Line 30:
boot {
boot {
generate grub
generate grub
default "Funtoo Linux genkernel"  
default "Funtoo Linux"
timeout 3  
timeout 3
}
}


<!--T:238-->
"Funtoo Linux" {
"Funtoo Linux" {
kernel bzImage[-v]
kernel kernel[-v]
initrd initramfs[-v]
params += real_root=auto rootfstype=auto
}
}


"Funtoo Linux genkernel" {
<!--T:239-->
"Funtoo Linux (nomodeset)" {
kernel kernel[-v]
kernel kernel[-v]
initrd initramfs[-v]
initrd initramfs[-v]
        # IMPORTANT: Most users -- remember to REMOVE nomodeset below!
params += real_root=auto rootfstype=auto nomodeset
params += real_root=auto rootfstype=auto nomodeset
}
}
Line 73: Line 52:
If you are booting a custom or non-default kernel, please read {{c|man boot.conf}} for information on the various options available to you.
If you are booting a custom or non-default kernel, please read {{c|man boot.conf}} for information on the various options available to you.


=== Intel Microcode ===
==== nomodeset ==== <!--T:240-->
 
<!--T:241-->
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:
 
<!--T:225-->
* '''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.
 
<!--T:242-->
To use the {{c|nomodeset}} option, simply select that option from the GRUB menu when your system boots.
 
=== rootwait === <!--T:243-->
If you are using a root partition on an {{c|nvme}} device, add the {{c|rootwait}} kernel parameter to force the kernel to wait for it to asynchronously initialize or the kernel will panic on some hardware.


{{c|ego boot}} will ensure that you have the most recent Intel CPU microcode installed on your system if you emerge the
=== Intel Microcode === <!--T:232-->
following packages:


<!--T:233-->
{{c|ego boot}} will ensure that you have the most recent Intel CPU microcode installed on your system if you emerge the following packages. These will be merged for you already if
you are using a desktop stage3:
<!--T:234-->
{{console|body=
{{console|body=
%chroot% ##i##emerge intel-microcode iucode_tool
%chroot% ##i##emerge -av intel-microcode iucode_tool
}}
}}


<!--T:235-->
This is not necessary for AMD systems.
This is not necessary for AMD systems.


Line 91: Line 88:
<!--T:206-->
<!--T:206-->
{{console|body=
{{console|body=
%chroot% ##i##grub-install --target=i386-pc --no-floppy /dev/sda
%chroot% ##i##grub-install --target=i386-pc --no-floppy /dev/sdX
%chroot% ##i##ego boot update
%chroot% ##i##ego boot update
}}
}}
Line 126: Line 123:


<!--T:213-->
<!--T:213-->
You only need to run {{c|grub-install}} when you first install Funtoo Linux, but you need to re-run {{c|ego boot update}} every time you modify your {{c|/etc/boot.conf}} file or add new kernels to your system. This will regenerate {{c|/boot/grub/grub.cfg}} so that you will have new kernels available in your GRUB boot menu upon your next reboot.
You only need to run {{c|grub-install}} when you first install Funtoo Linux, but you need to re-run {{c|ego boot update}} every time you modify your {{c|/etc/boot.conf}}. When you emerge updated kernels, {{c|ego boot update}} will be run automatically as part of the install process. This will regenerate {{c|/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 ==== <!--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]
{{console|body=
%chroot% ##i##mv -v '/boot/EFI/Funtoo Linux [GRUB]' /boot/EFI/BOOT
%chroot% ##i##mv -v /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI
}}
 
</translate>
</translate>
<noinclude>{{InstallNavigation|num=14|prev=Kernel|next=Network|align=right}}</noinclude>
<noinclude>{{InstallNavigation|num=14|prev=Kernel|next=Network|align=right}}</noinclude>

Revision as of 22:58, October 6, 2022

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.

rootwait

If you are using a root partition on an nvme device, add the rootwait kernel parameter to force the kernel to wait for it to asynchronously initialize or the kernel will panic on some hardware.

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. These will be merged for you already if you are using a desktop stage3:

chroot # emerge -av intel-microcode iucode_tool

This is not necessary for AMD systems.

Old School (BIOS) MBR

When using "old school" BIOS booting, run the following command to install GRUB to your MBR, and generate the /boot/grub/grub.cfg configuration file that GRUB will use for booting:

chroot # grub-install --target=i386-pc --no-floppy /dev/sdX
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 Linux [GRUB]" --recheck /dev/sda
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 Linux [GRUB]" --recheck /dev/sda
chroot # ego boot update

First Boot, and in the future...

OK -- you are almost ready to boot!

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. When you emerge updated kernels, ego boot update will be run automatically as part of the install process. 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

chroot # mv -v '/boot/EFI/Funtoo Linux [GRUB]' /boot/EFI/BOOT
chroot # mv -v /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI
Install Guide, Chapter 14 < Prev Next >