configure_bootloaders: add grub install stub code

Not currently used, this configuration which sets up grub to re-use the
syslinux configuration only works with recent git versions, not any
releases. Compatibility is also limited because the serial configuration
in syslinux must be duplicated in the grub config.
This commit is contained in:
Michael Marineau 2014-08-30 17:46:38 -07:00
parent 0cc06c9c5c
commit 680730cc1a
2 changed files with 30 additions and 5 deletions

View File

@ -51,7 +51,7 @@ GRUB_DIR="${FLAGS_boot_dir}/grub"
SYSLINUX_DIR="${FLAGS_boot_dir}/syslinux" SYSLINUX_DIR="${FLAGS_boot_dir}/syslinux"
# Build configuration files for pygrub/pvgrub # Build configuration files for pygrub/pvgrub
configure_grub() { configure_pvgrub() {
sudo mkdir -p "${GRUB_DIR}" sudo mkdir -p "${GRUB_DIR}"
# Add hvc0 for hypervisors # Add hvc0 for hypervisors
@ -177,12 +177,28 @@ copy_to_esp() {
done done
} }
# Install GRUB2 to the disk image
install_grub() {
# Install under boot/coreos/grub instead of boot/grub to prevent
# more recent versions of pygrub that attempt to read grub2 configs
# from finding it, pygrub and pvgrub must stick with using menu.lst
sudo mkdir -p "${FLAGS_esp_dir}/coreos/grub"
sudo grub-install \
--target=i386-pc \
--modules=part_gpt \
--boot-directory="${FLAGS_esp_dir}/coreos" \
"${FLAGS_disk_image}"
sudo cp "${BUILD_LIBRARY_DIR}/grub.cfg" \
"${FLAGS_esp_dir}/coreos/grub/grub.cfg"
}
[[ -d "${FLAGS_esp_dir}" ]] || die_notrace "--esp_dir is required"
[[ -f "${FLAGS_disk_image}" ]] || die_notrace "--disk_image is required"
if [[ "${FLAGS_arch}" = "x86" || "${FLAGS_arch}" = "amd64" ]]; then if [[ "${FLAGS_arch}" = "x86" || "${FLAGS_arch}" = "amd64" ]]; then
configure_grub configure_pvgrub
configure_syslinux configure_syslinux
if [[ -n "${FLAGS_esp_dir}" ]]; then copy_to_esp
copy_to_esp
fi
else else
error "No bootloader configuration for ${FLAGS_arch}" error "No bootloader configuration for ${FLAGS_arch}"
fi fi

9
build_library/grub.cfg Normal file
View File

@ -0,0 +1,9 @@
# Use both default console and ttyS0
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal_input console serial
terminal_output console serial
# Re-use the existing syslinux configuration
echo "Loading SYSLINUX configuration..."
insmod syslinuxcfg
syslinux_configfile -s /syslinux/syslinux.cfg