The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Package:Boot-Update"
(additional info to fill in the cracks) |
(added info about running as root) |
||
Line 107: | Line 107: | ||
set default%' /boot/grub/grub.cfg | set default%' /boot/grub/grub.cfg | ||
}} | }} | ||
This file must be executable and owned as root, run as root. | |||
[[Category:Projects]] | [[Category:Projects]] | ||
[[Category:Funtoo features]] | [[Category:Funtoo features]] | ||
{{EbuildFooter}} | {{EbuildFooter}} |
Revision as of 17:38, October 14, 2014
Boot-Update
We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.
Funtoo boot-update provides a unified mechanism for configuring the GRUB 1.9x (No results) and GRUB 0.97 (No results) boot loaders. It is the recommended, official way to configure Funtoo Linux systems for booting.
Current Version
Man Pages
Consult the following man pages for detailed, up-to-date information on configuration file settings and command-line arguments:
- boot-update(8)
- boot.conf(5)
GRUB 1.97+ Quick Start
If using sys-boot/grub-1.97
or later, perform the following steps:
- Partition disk using GPT/GUID (recommended) or MBR partitions.
- Install kernel/initrd to
/boot
root # emerge sys-boot/boot-update root # grub-install --no-floppy /dev/sda
Ensure that /etc/fstab
is correct, and edit /etc/boot.conf
to reflect your installation (see /etc/boot.conf.example
). Then run:
root # boot-update
This will auto-generate the complex /boot/grub/grub.cfg
required for booting. Re-run boot-update
every time your available kernels/initrds or /etc/boot.conf
configuration changes.
GRUB 0.97 (grub-legacy) Quick Start
If using sys-boot/grub-legacy-0.97
, perform the following steps:
- Partition disk using MBR partitions (GPT not supported)
- Install kernel/initrd to
/boot
root # emerge sys-boot/boot-update root # emerge ">=sys-boot/grub-legacy-0.97-r11" root # grub-install-legacy /dev/sda
Due to an issue with grub-legacy
, you may see the following message:
root # grub-install-legacy /dev/sda The file /boot/grub-legacy/stage1 not read correctly.
Should you receive this message, you will have to install grub-legacy
from the grub shell.
Assuming /boot
is the partition /dev/sda1
and you want to install grub to the MBR, you would run the following:
root # grub-legacy root (hd0,0) setup (hd0) quit
When adjusting to fit your setup, remember 'root' is the location of your boot partition, 'setup' is where you want to install grub, and don't forget about grub's unique naming conventions for hard drives / partitions. For more information run:
root # info grub-legacy
Ensure that /etc/fstab
is correct, and edit /etc/boot.conf
to reflect your installation.
Ensure a generate grub-legacy
setting in the boot
section. Then run:
root # boot-update
This will auto-generate the /boot/grub-legacy/grub.conf
required for booting. Note that grub-legacy-0.97-r11
and later stores grub.conf
in the /boot/grub-legacy
directory.
Re-run boot-update
every time your available kernels / initrds or /etc/boot.conf
configuration changes.
Additional Information
Loop mounting is not currently supported by boot-update. Some text color options are also missing. Many Funtooers find a loop mounted iso of systemrescuecd or similar utility disk handy. This can be implemented by a simple bash script run after boot-update. Or you could make an aliases to run them both with one command line statement if you wish. Here is an example, change partition information and other options as necessary:
/home/<username>boot-fix
- a simple automatic way to add loop mounts and color options to your grub.cfg#!/bin/bash
# boot-fix
FILENAME=$(ls /opt/sysrcd/systemrescuecd*)
sed -i 's%set menu_color_highlight=white/light-blue%set menu_color_highlight=white/light-blue\
set color_normal=brown/black%' /boot/grub/grub.cfg
sed -i 's%set default%menuentry "SystemRescueCd (isoloop with backstore)" {\
insmod part_gpt\
insmod ext2\
set root=(hostdisk//dev/sda,gpt4)\
loopback loop (hd0,gpt4)'$FILENAME'\
linux (loop)/isolinux/rescue64 setkmap=us backstore=alldev,/opt/sysrcd/sysrcd.bs docache isoloop='$FILENAME'\
initrd (loop)/isolinux/initram.igz\
}\n\
menuentry "SystemRescueCd (isoloop no backstore)" {\
insmod ext2\
insmod part_gpt\
set root=(hostdisk//dev/sda,gpt4)\
loopback loop (hd0,gpt4)'$FILENAME'\
linux (loop)/isolinux/rescue64 setkmap=us backstore=off docache isoloop='$FILENAME'\
initrd (loop)/isolinux/initram.igz\
}\n\
set default%' /boot/grub/grub.cfg
This file must be executable and owned as root, run as root.