GRUB: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 236: | Line 236: | ||
EFI: | EFI: | ||
{{Root|grub-mkconfig -o /boot/efi/ | {{Root|grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg}} | ||
EFI GENTOO: | EFI GENTOO: | ||
{{Root|grub2-mkconfig -o /boot/efi/ | {{Root|grub2-mkconfig -o /boot/efi/EFI/grub2/grub.cfg}} | ||
NON EFI: | NON EFI: | ||
Revision as of 15:49, 22 May 2013
GRUB 2
Packages
Exherbo: sys-boot/grub
Gentoo: sys-boot/grub
/etc/portage/make.conf
GRUB_PLATFORMS="efi-64"
Installation
# mount /boot
# mount /boot/efi
# grub-install --boot-directory=/boot/efi/EFI --no-floppy --recheck
# efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "Linux" --loader "\\EFI\\grub\\grub.efi"
Gentoo:
# grub2-install --boot-directory=/boot/efi/EFI --no-floppy --recheck
# efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "Linux" --loader "\\EFI\\grub2\\grub.efi"
# 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* Linux
SET ACTIVE
# efibootmgr -b 4 -a
DELETE
# efibootmgr -b 4 -B
# 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)
Standard, single drive GPT/MBR (SATA/IDE/SCSI)
# grub-install --recheck --no-floppy /dev/sda
Configuration
Note: Manual grub2 configuration should always happen in /etc/default/grub and /etc/grub.d/40_custom.
File: /etc/default/grub
GRUB_DISTRIBUTOR="Exherbo" GRUB_DEFAULT="Exherbo GNU/Linux, current kernel"
Standard, single drive GPT (SATA/IDE/SCSI)
| 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 |
File: /etc/grub.d/40_custom
#!/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-cf602240-7bac-4b29-8930-2080a5aac7cd' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
else
search --no-floppy --fs-uuid --set=root 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
fi
echo 'Loading Linux ...'
linux /vmlinuz root=/dev/sda4 ro
}
submenu 'Advanced options for Exherbo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-cf602240-7bac-4b29-8930-2080a5aac7cd' {
menuentry 'Exherbo GNU/Linux, current kernel (recovery mode)' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-advanced-current-recovery-cf602240-7bac-4b29-8930-2080a5aac7cd' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
else
search --no-floppy --fs-uuid --set=root 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
fi
echo 'Loading Linux ...'
linux /vmlinuz root=/dev/sda4 ro single
}
menuentry 'Exherbo GNU/Linux, previous kernel' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-advanced-previous-cf602240-7bac-4b29-8930-2080a5aac7cd' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
else
search --no-floppy --fs-uuid --set=root 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
fi
echo 'Loading Linux ...'
linux /vmlinuz.old root=/dev/sda4 ro
}
menuentry 'Exherbo GNU/Linux, previous kernel (recovery mode)' --class exherbo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-advanced-previous-recovery-cf602240-7bac-4b29-8930-2080a5aac7cd' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
else
search --no-floppy --fs-uuid --set=root 0930a69b-f2d5-4607-93fe-4f8bfdf2ea87
fi
echo 'Loading Linux ...'
linux /vmlinuz.old root=/dev/sda4 ro single
}
}
Standard, single drive MBR (SATA/IDE/SCSI)
| Code: Assuming following MBR partition layout |
/dev/sda1 32 MiB /boot ext2 Boot /dev/sda2 512 MiB swap ext4 Swap /dev/sda3 25 GiB / swap Root |
File: /etc/grub.d/40_custom
#!/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-advanced-current-recovery-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-advanced-previous-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-advanced-previous-recovery-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
}
}
Generate grub.cfg
Warning: Running the following command will overwrite any changes in grub.cfg you manually made.
EFI:
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg
EFI GENTOO:
# grub2-mkconfig -o /boot/efi/EFI/grub2/grub.cfg
NON EFI:
# grub-mkconfig -o /boot/grub/grub.cfg
# umount /boot
Updating Grub 2
# mount /boot
# grub-install --recheck --no-floppy /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
# umount /boot
Optional: Additional Kernel Parameters
File: /etc/default/grub
GRUB_CMDLINE_LINUX="acpi=off"
Regenerate your grub.cfg for the changes to take effect.
# mount /boot
# grub-mkconfig -o /boot/grub/grub.cfg
# umount /boot
Optional: Theme
File: /etc/default/grub
GRUB_TERMINAL_OUTPUT=gfxterm GRUB_THEME=/boot/grub/themes/starfield/theme.txt
Regenerate your grub.cfg for the changes to take effect.
# mount /boot
# grub-mkconfig -o /boot/grub/grub.cfg
# umount /boot
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.
# mount /boot
# grub-mkconfig -o /boot/grub/grub.cfg
# umount /boot
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