GRUB: Difference between revisions

From Q
Jump to navigation Jump to search
Tgurr (talk | contribs)
No edit summary
Tgurr (talk | contribs)
No edit summary
Line 50: Line 50:
Boot0003* EFI Internal Shell (Unsupported option)
Boot0003* EFI Internal Shell (Unsupported option)
</pre>
</pre>


==== Standard, single drive GPT/MBR (SATA/IDE/SCSI) ====
==== Standard, single drive GPT/MBR (SATA/IDE/SCSI) ====
Line 77: Line 74:
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda4 25  GiB / 8300 ext4 Linux filesystem
/dev/sda4 25  GiB / 8300 ext4 Linux filesystem
</pre>
}}
{{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 '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
}
}
</pre>
</pre>
}}
}}
Line 155: Line 84:
/dev/sda2 512 MiB swap ext4 Swap
/dev/sda2 512 MiB swap ext4 Swap
/dev/sda3 25  GiB / swap Root
/dev/sda3 25  GiB / swap Root
</pre>
}}
{{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 '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
}
}
</pre>
</pre>
}}
}}

Revision as of 16:51, 7 November 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"
# 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

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

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

NON EFI:

# 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.

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