|
|
| (38 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| == GRUB 2 ==
| | == Packages == |
| | |
| === Packages ===
| |
|
| |
|
| Exherbo: {{Package|sys-boot/grub}} | | Exherbo: {{Package|sys-boot/grub}} |
| Line 7: |
Line 5: |
| Gentoo: {{Package|sys-boot/grub}} | | Gentoo: {{Package|sys-boot/grub}} |
|
| |
|
| === Installation === | | /etc/portage/make.conf |
| | <pre> |
| | GRUB_PLATFORMS="efi-64" |
| | </pre> |
| | |
| | == Installation == |
| | === EFI === |
| | |
| | {{Code|Assuming following GPT partition layout| |
| | <pre> |
| | /dev/sda1 200 MiB /boot/efi EF00 vfat EFI System Partition |
| | /dev/sda2 500 MiB /boot 8300 ext4 Linux filesystem |
| | /dev/sda3 512 MiB 8200 swap Linux swap |
| | /dev/sda4 25 GiB / 8300 ext4 Linux filesystem |
| | </pre> |
| | }} |
| | |
| {{Root|mount /boot}} | | {{Root|mount /boot}} |
|
| |
|
| ==== Standard, single drive (SATA/IDE/SCSI) ==== | | {{Root|mount /boot/efi}} |
| | |
| | {{Root|<nowiki>grub-install --efi-directory=/boot/efi --no-floppy --recheck</nowiki>}} |
|
| |
|
| {{Root|grub-install --recheck --no-floppy /dev/sda}}
| | ==== efibootmgr ==== |
|
| |
|
| ==== Special, hardware RAID (HP Smart Array CCISS) ====
| | {{Root|efibootmgr}} |
|
| |
|
| {{Root|grub-install --recheck --no-floppy /dev/cciss/c0d0}}
| | <pre> |
| | BootCurrent: 0001 |
| | BootOrder: 0004,0000,0001,0002,0003 |
| | Boot0000* EFI SCSI Hard Drive |
| | Boot0001* EFI IDE CD/DVD Drive |
| | Boot0002* EFI Network |
| | Boot0003* EFI Internal Shell (Unsupported option) |
| | Boot0004* exherbo |
| | </pre> |
|
| |
|
| /sbin/grub-setup: warn: Your embedding area is unusually small. core.img won't fit in it..
| | ===== SET ACTIVE ===== |
| /sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
| |
| /sbin/grub-setup: error: will not proceed with blocklists.
| |
|
| |
|
| {{Root|grub-install --recheck --no-floppy /dev/cciss/c0d0 --force}} | | {{Root|efibootmgr --bootnum 0004 --active}} |
|
| |
|
| /sbin/grub-setup: warn: Your embedding area is unusually small. core.img won't fit in it..
| | ===== DELETE ===== |
| /sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
| |
| Installation finished. No error reported.
| |
|
| |
|
| === Configuration ===
| | {{Root|efibootmgr --bootnum 0004 --delete-bootnum}} |
|
| |
|
| {{Note|Manual grub2 configuration should always happen in {{Path|/etc/default/grub}} and {{Path|/etc/grub.d/40_custom}}.}}
| | === GPT/MBR === |
|
| |
|
| {{File|/etc/default/grub| | | {{Code|Assuming following GPT partition layout| |
| <pre> | | <pre> |
| GRUB_DISTRIBUTOR="Exherbo"
| | /dev/sda1 1 MiB EF02 BIOS boot BIOS boot partition |
| GRUB_DEFAULT="Exherbo GNU/Linux, current kernel"
| | /dev/sda2 100 MiB /boot 8300 ext4 Linux filesystem |
| | /dev/sda3 512 MiB 8200 swap Linux swap |
| | /dev/sda4 25 GiB / 8300 ext4 Linux filesystem |
| </pre> | | </pre> |
| }} | | }} |
|
| |
|
| ==== Standard, single drive (SATA/IDE/SCSI) ====
| | {{Root|mount /boot}} |
|
| |
|
| {{File|/etc/grub.d/40_custom| | | {{Root|grub-install --recheck --no-floppy /dev/sda}} |
| <pre>
| |
| #!/bin/sh
| |
| exec tail -n +3 $0
| |
| # This file provides an easy way to add custom menu entries. Simply type the
| |
| # menu entries you want to add after this comment. Be careful not to change
| |
| # the 'exec tail' line above.
| |
| menuentry 'Exherbo GNU/Linux, current kernel' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-010c7d23-2031-4c4b-b0e2-3fddbcd9bf61' {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='hd0,msdos1'
| |
| if [ x$feature_platform_search_hint = xy ]; then
| |
| search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| else
| |
| search --no-floppy --fs-uuid --set=root 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| fi
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz root=/dev/sda3 ro
| |
| }
| |
| submenu 'Advanced options for Exherbo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-010c7d23-2031-4c4b-b0e2-3fddbcd9bf61' {
| |
| menuentry 'Exherbo GNU/Linux, current kernel (recovery mode)' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-010c7d23-2031-4c4b-b0e2-3fddbcd9bf61' {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='hd0,msdos1'
| |
| if [ x$feature_platform_search_hint = xy ]; then
| |
| search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| else
| |
| search --no-floppy --fs-uuid --set=root 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| fi
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz root=/dev/sda3 ro single
| |
| }
| |
| menuentry 'Exherbo GNU/Linux, previous kernel' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-010c7d23-2031-4c4b-b0e2-3fddbcd9bf61' {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='hd0,msdos1'
| |
| if [ x$feature_platform_search_hint = xy ]; then
| |
| search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| else
| |
| search --no-floppy --fs-uuid --set=root 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| fi
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz.old root=/dev/sda3 ro
| |
| }
| |
| menuentry 'Exherbo GNU/Linux, previous kernel (recovery mode)' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-010c7d23-2031-4c4b-b0e2-3fddbcd9bf61' {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='hd0,msdos1'
| |
| if [ x$feature_platform_search_hint = xy ]; then
| |
| search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| else
| |
| search --no-floppy --fs-uuid --set=root 5e056c75-61b4-42a5-8dd8-9fefd5f5b7fb
| |
| fi
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz.old root=/dev/sda3 ro single
| |
| }
| |
| }
| |
| </pre>
| |
| }}
| |
| | |
| ==== Special, hardware RAID (HP Smart Array CCISS) ====
| |
| {{File|/etc/grub.d/40_custom|
| |
| <pre>
| |
| #!/bin/sh
| |
| exec tail -n +3 $0
| |
| # This file provides an easy way to add custom menu entries. Simply type the
| |
| # menu entries you want to add after this comment. Be careful not to change
| |
| # the 'exec tail' line above.
| |
| menuentry 'GNU/Linux, current kernel' --class gnu-linux --class gnu --class os {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='(hd0,msdos1)'
| |
| search --no-floppy --fs-uuid --set=root b3727853-ae78-4a00-b21c-7b974c233e1c
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuzo root=/dev/cciss/c0d0p3 ro
| |
| }
| |
| menuentry 'GNU/Linux, current kernel (recovery mode)' --class gnu-linux --class gnu --class os {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='(hd0,msdos1)'
| |
| search --no-floppy --fs-uuid --set=root b3727853-ae78-4a00-b21c-7b974c233e1c
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz root=/dev/cciss/c0d0p3 ro single
| |
| }
| |
| menuentry 'GNU/Linux, previous kernel' --class gnu-linux --class gnu --class os {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='(hd0,msdos1)'
| |
| search --no-floppy --fs-uuid --set=root b3727853-ae78-4a00-b21c-7b974c233e1c
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz.old root=/dev/cciss/c0d0p3 ro
| |
| }
| |
| menuentry 'GNU/Linux, previous kernel (recovery mode)' --class gnu-linux --class gnu --class os {
| |
| load_video
| |
| insmod gzio
| |
| insmod part_msdos
| |
| insmod ext2
| |
| set root='(hd0,msdos1)'
| |
| search --no-floppy --fs-uuid --set=root b3727853-ae78-4a00-b21c-7b974c233e1c
| |
| echo 'Loading Linux ...'
| |
| linux /vmlinuz.old root=/dev/cciss/c0d0p3 ro single
| |
| }
| |
| </pre>
| |
| }} | |
|
| |
|
| === Generate grub.cfg ===
| | == Generate grub.cfg == |
|
| |
|
| {{Warning|Running the following command will overwrite any changes in grub.cfg you manually made.}} | | {{Warning|Running the following command will overwrite any changes in grub.cfg you manually made.}} |
| Line 166: |
Line 71: |
| {{Root|grub-mkconfig -o /boot/grub/grub.cfg}} | | {{Root|grub-mkconfig -o /boot/grub/grub.cfg}} |
|
| |
|
| {{Root|umount /boot}}
| | == Configuration == |
|
| |
|
| === Updating Grub 2 ===
| | {{Note|Manual grub2 configuration should always happen in {{Path|/etc/default/grub}} and/or {{Path|/etc/grub.d/40_custom}}.}} |
| | |
| {{Root|mount /boot}} | |
| | |
| {{Root|grub-install --recheck --no-floppy /dev/sda}} | |
| | |
| {{Root|grub-mkconfig -o /boot/grub/grub.cfg}} | |
| | |
| {{Root|umount /boot}}
| |
|
| |
|
| === Optional: Additional Kernel Parameters === | | === Optional: Additional Kernel Parameters === |
| Line 187: |
Line 84: |
|
| |
|
| Regenerate your grub.cfg for the changes to take effect. | | Regenerate your grub.cfg for the changes to take effect. |
|
| |
| {{Root|mount /boot}}
| |
|
| |
| {{Root|grub-mkconfig -o /boot/grub/grub.cfg}}
| |
|
| |
| {{Root|umount /boot}}
| |
|
| |
|
| === Optional: Theme === | | === Optional: Theme === |
| Line 198: |
Line 89: |
| {{File|/etc/default/grub| | | {{File|/etc/default/grub| |
| <pre> | | <pre> |
| | GRUB_THEME=/boot/efi/EFI/grub/themes/starfield/theme.txt |
| GRUB_TERMINAL_OUTPUT=gfxterm | | GRUB_TERMINAL_OUTPUT=gfxterm |
| GRUB_THEME=/boot/grub2/themes/starfield/theme.txt
| |
| </pre> | | </pre> |
| }} | | }} |
|
| |
|
| Regenerate your grub.cfg for the changes to take effect.
| | If your display resolutions isn't automatically detected you can manually force a specific resolution. |
|
| |
|
| {{Root|mount /boot}} | | {{File|/etc/default/grub| |
| | <pre> |
| | GRUB_GFXMODE=1600x1200 |
| | </pre> |
| | }} |
|
| |
|
| {{Root|grub-mkconfig -o /boot/grub/grub.cfg}}
| | Regenerate your grub.cfg for the changes to take effect. |
| | |
| {{Root|umount /boot}}
| |
|
| |
|
| === Optional: Serial Console === | | === Optional: Serial Console === |
| Line 222: |
Line 115: |
|
| |
|
| Regenerate your grub.cfg for the changes to take effect. | | Regenerate your grub.cfg for the changes to take effect. |
|
| |
| {{Root|mount /boot}}
| |
|
| |
| {{Root|grub-mkconfig -o /boot/grub/grub.cfg}}
| |
|
| |
| {{Root|umount /boot}}
| |
|
| |
|
| If you want to be able to login to your system via the serial console you need to edit {{Path|/etc/inittab}}. | | If you want to be able to login to your system via the serial console you need to edit {{Path|/etc/inittab}}. |
Packages
Exherbo: sys-boot/grub
Gentoo: sys-boot/grub
/etc/portage/make.conf
GRUB_PLATFORMS="efi-64"
Installation
EFI
| Code: Assuming following GPT partition layout
|
/dev/sda1 200 MiB /boot/efi EF00 vfat EFI System Partition
/dev/sda2 500 MiB /boot 8300 ext4 Linux filesystem
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda4 25 GiB / 8300 ext4 Linux filesystem
|
# mount /boot
# mount /boot/efi
# grub-install --efi-directory=/boot/efi --no-floppy --recheck
efibootmgr
# efibootmgr
BootCurrent: 0001
BootOrder: 0004,0000,0001,0002,0003
Boot0000* EFI SCSI Hard Drive
Boot0001* EFI IDE CD/DVD Drive
Boot0002* EFI Network
Boot0003* EFI Internal Shell (Unsupported option)
Boot0004* exherbo
SET ACTIVE
# efibootmgr --bootnum 0004 --active
DELETE
# efibootmgr --bootnum 0004 --delete-bootnum
GPT/MBR
| Code: Assuming following GPT partition layout
|
/dev/sda1 1 MiB EF02 BIOS boot BIOS boot partition
/dev/sda2 100 MiB /boot 8300 ext4 Linux filesystem
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda4 25 GiB / 8300 ext4 Linux filesystem
|
# mount /boot
# grub-install --recheck --no-floppy /dev/sda
Generate grub.cfg
Warning: Running the following command will overwrite any changes in grub.cfg you manually made.
# grub-mkconfig -o /boot/grub/grub.cfg
Configuration
Note: Manual grub2 configuration should always happen in /etc/default/grub and/or /etc/grub.d/40_custom.
Optional: Additional Kernel Parameters
File: /etc/default/grub
GRUB_CMDLINE_LINUX="acpi=off"
Regenerate your grub.cfg for the changes to take effect.
Optional: Theme
File: /etc/default/grub
GRUB_THEME=/boot/efi/EFI/grub/themes/starfield/theme.txt
GRUB_TERMINAL_OUTPUT=gfxterm
If your display resolutions isn't automatically detected you can manually force a specific resolution.
File: /etc/default/grub
GRUB_GFXMODE=1600x1200
Regenerate your grub.cfg for the changes to take effect.
Optional: Serial Console
File: /etc/default/grub
GRUB_TERMINAL=serial
GRUB_SERIAL=COMMAND="serial --unit=0 --speed=57600 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,57600"
Regenerate your grub.cfg for the changes to take effect.
If you want to be able to login to your system via the serial console you need to edit /etc/inittab.
File: /etc/inittab
Uncomment the s0 entry and change the speed to your needs.
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 57600 ttyS0 vt100
#s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100