From c67d03eb3684acab89e5972609e397087727e74e Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Wed, 14 Sep 2011 13:01:55 -0500 Subject: initramfs-live-install: add support for grub2 grub2 needs a different set of install steps from grub 0.97. This adds them to init-install.sh and adds an install-time check that determines which version is being used and which steps to use depending on the version of grub selected. Signed-off-by: Tom Zanussi --- .../initrdscripts/files/init-install.sh | 31 +++++++++++++++++----- .../initrdscripts/initramfs-live-install_1.0.bb | 8 +++--- 2 files changed, 28 insertions(+), 11 deletions(-) (limited to 'meta/recipes-core') diff --git a/meta/recipes-core/initrdscripts/files/init-install.sh b/meta/recipes-core/initrdscripts/files/init-install.sh index 5e6b81c9d3..fb6cea8d31 100644 --- a/meta/recipes-core/initrdscripts/files/init-install.sh +++ b/meta/recipes-core/initrdscripts/files/init-install.sh @@ -1,6 +1,6 @@ #!/bin/sh -e # -# Copyright (C) 2008 Intel +# Copyright (C) 2008-2011 Intel # # install.sh [device_name] [rootfs_name] [video_mode] [vga_mode] # @@ -126,6 +126,7 @@ mkswap $swap mkdir /ssd mkdir /rootmnt +mkdir /bootmnt mount $rootfs /ssd mount -o rw,loop,noatime,nodiratime /media/$1/$2 /rootmnt @@ -142,6 +143,16 @@ if [ -d /ssd/etc/ ] ; then fi fi +if [ -f /ssd/etc/grub.d/40_custom ] ; then + echo "Preparing custom grub2 menu..." + sed -i "s@__ROOTFS__@$rootfs@g" /ssd/etc/grub.d/40_custom + sed -i "s/__VIDEO_MODE__/$3/g" /ssd/etc/grub.d/40_custom + sed -i "s/__VGA_MODE__/$4/g" /ssd/etc/grub.d/40_custom + mount $bootfs /bootmnt + cp /ssd/etc/grub.d/40_custom /bootmnt/40_custom + umount /bootmnt +fi + umount /ssd umount /rootmnt @@ -151,11 +162,19 @@ grub-install --root-directory=/ssd /dev/${device} echo "(hd0) /dev/${device}" > /ssd/boot/grub/device.map -echo "default 0" > /ssd/boot/grub/menu.lst -echo "timeout 30" >> /ssd/boot/grub/menu.lst -echo "title Live Boot/Install-Image" >> /ssd/boot/grub/menu.lst -echo "root (hd0,0)" >> /ssd/boot/grub/menu.lst -echo "kernel /boot/vmlinuz root=$rootfs rw $3 $4 quiet" >> /ssd/boot/grub/menu.lst +if [ -f /ssd/40_custom ] ; then + mv /ssd/40_custom /ssd/boot/grub/grub.cfg + sed -i "/#/d" /ssd/boot/grub/grub.cfg + sed -i "/exec tail/d" /ssd/boot/grub/grub.cfg + chmod 0444 /ssd/boot/grub/grub.cfg +else + echo "Preparing custom grub menu..." + echo "default 0" > /ssd/boot/grub/menu.lst + echo "timeout 30" >> /ssd/boot/grub/menu.lst + echo "title Live Boot/Install-Image" >> /ssd/boot/grub/menu.lst + echo "root (hd0,0)" >> /ssd/boot/grub/menu.lst + echo "kernel /boot/vmlinuz root=$rootfs rw $3 $4 quiet" >> /ssd/boot/grub/menu.lst +fi cp /media/$1/vmlinuz /ssd/boot/ diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb index 0eeabf1774..619b16c7c7 100644 --- a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb +++ b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb @@ -1,9 +1,9 @@ -DESCRIPTION = "A live image init script" +DESCRIPTION = "A live image init script for grub" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" SRC_URI = "file://init-install.sh" -PR = "r4" +PR = "r5" RDEPENDS="grub parted e2fsprogs-mke2fs" @@ -19,6 +19,4 @@ INHIBIT_DEFAULT_DEPS = "1" FILES_${PN} = " /install.sh " -# Alternatives to grub need adding for other arch support -# consistent with grub 0.97 -COMPATIBLE_HOST = "i.86.*-linux" +COMPATIBLE_HOST = "(i.86|x86_64).*-linux" -- cgit 1.2.3-korg