Difference between revisions of "Install/Bootloader/en"

From Funtoo
Jump to navigation Jump to search
(Updating to match new version of source page)
(Updating to match new version of source page)
(3 intermediate revisions by the same user not shown)
Line 6: Line 6:
{{InstallNavigation|num=14|prev=Kernel|next=Network}}</noinclude>
{{InstallNavigation|num=14|prev=Kernel|next=Network}}</noinclude>


These install instructions show you how to use GRUB to boot using BIOS (legacy) or UEFI. As of boot-update-1.7.2, now in Portage, the steps are very similar.
=== boot.conf Configuration ===


First, emerge <code>boot-update</code>. This will also cause <code>grub-2</code> and {{c|efibootmgr}} to be merged, since they are dependencies:
These install instructions show you how to use GRUB to boot using BIOS (legacy) or UEFI.


<console>
ego boot update ({{c|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) # ##i##emerge boot-update
</console>


Then, edit <code>/etc/boot.conf</code> using {{c|nano}} and specify "<code>Funtoo Linux genkernel</code>" as the <code>default</code> setting at the top of the file, replacing <code>"Funtoo Linux"</code>. Also, if you're not using memtest86+ remove the entry in boot.conf to avoid errors.
{{console|body=
%chroot% ##i##emerge -av grub
}}
 
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"}}.
 
==== 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 using 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 using Nouveau...: {{c|nomodeset}} should be ''should be removed'' as explained in the '''Other Graphics Cards''' section below.
 
==== 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, but most users will ''want to remove this option.''
 
This is because essentially all graphics drivers (the big exception being the proprietary NVIDIA drivers) rely on mode setting to set the graphics mode of your display. So most users ''will need to remove it'', and run {{c|ego boot update}} and reboot before they set up X or Wayland. Otherwise, X will not be able to initialize the display. Of course, you can also choose to remove it now and then you won't need to remember to remove it later :)


<code>/etc/boot.conf</code> should now look like this:
{{c|/etc/boot.conf}} should now look like this:


{{file|name=/etc/boot.conf|body=
{{file|name=/etc/boot.conf|body=
Line 32: Line 53:
kernel kernel[-v]
kernel kernel[-v]
initrd initramfs[-v]
initrd initramfs[-v]
params += real_root=auto
}


"Funtoo Linux better-initramfs" {
        # IMPORTANT: Most users -- remember to REMOVE nomodeset below!
kernel vmlinuz[-v]
 
initrd /initramfs.cpio.gz
params += real_root=auto rootfstype=auto nomodeset
}
}
}}
}}


If you are booting a custom or non-default kernel, please read <code>man boot.conf</code> 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 ===
 
{{c|ego boot}} will ensure that you have the most recent Intel CPU microcode installed on your system if you emerge the
following packages:
 
{{console|body=
%chroot% ##i##emerge intel-microcode iucode_tool
}}
 
This is not necessary for AMD systems.


==== Old School (BIOS) MBR ====
==== Old School (BIOS) MBR ====
Line 47: Line 77:
When using "old school" BIOS booting, run the following command to install GRUB to your MBR, and generate the {{c|/boot/grub/grub.cfg}} configuration file that GRUB will use for booting:
When using "old school" BIOS booting, run the following command to install GRUB to your MBR, and generate the {{c|/boot/grub/grub.cfg}} configuration file that GRUB will use for booting:


<console>
{{console|body=
(chroot) # ##i##grub-install --target=i386-pc --no-floppy /dev/sda
%chroot% ##i##grub-install --target=i386-pc --no-floppy /dev/sda
(chroot) # ##i##boot-update
%chroot% ##i##ego boot update
</console>
}}


==== New School (UEFI) Boot Entry ====  
==== New School (UEFI) Boot Entry ====  
Line 58: Line 88:
For x86-64bit systems:
For x86-64bit systems:


<console>
{{console|body=
(chroot) # ##i##grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
%chroot% ##i##mount -o remount,rw /sys/firmware/efi/efivars
(chroot) # ##i##boot-update
%chroot% ##i##grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
</console>
%chroot% ##i##ego boot update
}}


For x86-32bit systems:
For x86-32bit systems:


<console>
{{console|body=
(chroot) # ##i##grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
%chroot% ##i##mount -o remount,rw /sys/firmware/efi/efivars
(chroot) # ##i##boot-update
%chroot% ##i##grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda
</console>
%chroot% ##i##ego boot update
}}


==== First Boot, and in the future... ====  
==== First Boot, and in the future... ====  
Line 74: Line 106:
OK -- you are almost ready to boot!  
OK -- you are almost ready to boot!  


You only need to run <code>grub-install</code> when you first install Funtoo Linux, but you need to re-run <code>boot-update</code> every time you modify your <code>/etc/boot.conf</code> 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, the next time you 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}} 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.
<noinclude>{{InstallNavigation|num=14|prev=Kernel|next=Network|align=right}}</noinclude>

Revision as of 22:06, October 10, 2019

Other languages:

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

Next, edit /etc/boot.conf using nano and specify "Funtoo Linux genkernel" as the default setting at the top of the file, replacing "Funtoo Linux".

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 using proprietary NVIDIA graphics...
It is safe to leave the nomodeset parameter in /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 the NVIDIA Linux Display Drivers page for information on how to get these drivers set up.
If using Nouveau...
nomodeset should be should be removed as explained in the Other Graphics Cards section below.

Other Graphics Cards

Most users, particularly those who plan on setting up a graphical environment, will want to eventually remove nomodeset from params in /etc/make.conf. nomodeset prevents the kernel from changing graphics modes at boot. This option is in /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, but most users will want to remove this option.

This is because essentially all graphics drivers (the big exception being the proprietary NVIDIA drivers) rely on mode setting to set the graphics mode of your display. So most users will need to remove it, and run ego boot update and reboot before they set up X or Wayland. Otherwise, X will not be able to initialize the display. Of course, you can also choose to remove it now and then you won't need to remember to remove it later :)

/etc/boot.conf should now look like this:

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

"Funtoo Linux" {
	kernel bzImage[-v]
}

"Funtoo Linux genkernel" {
	kernel kernel[-v]
	initrd initramfs[-v]

        # IMPORTANT: Most users -- remember to REMOVE nomodeset below!

	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.

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

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/sda
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 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.

Install Guide, Chapter 14 < Prev Next >