aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2018-11-04 22:32:05 +0100
committerGerd Hoffmann <kraxel@redhat.com>2018-11-04 22:32:05 +0100
commit87a69c3638dfd4a81c7d93c6f900ad2f999a15bd (patch)
treeabcedff38083ac25349346647108d1a870c2f7c4
parent74b3bad73daf28d1bc1ef76aec83e7225b2f34bc (diff)
downloadimagefish-87a69c3638dfd4a81c7d93c6f900ad2f999a15bd.tar.gz
fix grub2 bios boot
-rwxr-xr-xFedora-efi-grub2.sh4
-rwxr-xr-xscripts/tar-to-image.sh42
2 files changed, 25 insertions, 21 deletions
diff --git a/Fedora-efi-grub2.sh b/Fedora-efi-grub2.sh
index e55de4c..b9135dd 100755
--- a/Fedora-efi-grub2.sh
+++ b/Fedora-efi-grub2.sh
@@ -5,8 +5,8 @@ name="fedora-${vers}-efi-grub2"
repo="repos/fedora-${vers}-$(sh basearch.sh).repo"
rpms="grub2-efi efibootmgr -grubby -dracut-config-rescue dracut-config-generic"
-rpms_i686=""
-rpms_x86_64="shim"
+rpms_i686="grub2-pc"
+rpms_x86_64="shim grub2-pc"
rpms_armhfp=""
rpms_aarch64="shim"
eval "rpms=\"\$rpms \$rpms_$(uname -m)\""
diff --git a/scripts/tar-to-image.sh b/scripts/tar-to-image.sh
index 2db9c2a..9b81b4e 100755
--- a/scripts/tar-to-image.sh
+++ b/scripts/tar-to-image.sh
@@ -248,7 +248,7 @@ EOF
function fish_grub2_efi() {
local term="${1-console}"
- local havegrubby havegrubpc haveboot grubefi
+ local havegrubby havegrubpc haveboot grubeficfg grubefi
msg "boot setup (root=${rootfs})"
kver=$(guestfish --remote -- ls /lib/modules)
@@ -261,11 +261,11 @@ function fish_grub2_efi() {
if test "$havegrubby" = "true"; then
echo "### create grub2 boot loader config (grubby mode)"
cat <<-EOF > "$grubdef"
- GRUB_TIMEOUT="5"
- GRUB_TERMINAL_OUTPUT="${term}"
- GRUB_DISABLE_SUBMENU="true"
- GRUB_DISABLE_RECOVERY="true"
- GRUB_CMDLINE_LINUX="ro root=${rootfs} ${console} ${append}"
+ GRUB_TIMEOUT="5"
+ GRUB_TERMINAL_OUTPUT="${term}"
+ GRUB_DISABLE_SUBMENU="true"
+ GRUB_DISABLE_RECOVERY="true"
+ GRUB_CMDLINE_LINUX="ro root=${rootfs} ${console} ${append}"
EOF
fish copy-in $grubdef /etc/default
fish command "sh -c 'grub2-mkconfig > /etc/grub2-efi.cfg'"
@@ -276,23 +276,27 @@ EOF
else
echo "### create grub2 boot loader config (bls mode)"
cat <<-EOF > "$grubdef"
- GRUB_TIMEOUT="5"
- GRUB_TERMINAL_OUTPUT="${term}"
- GRUB_DISABLE_SUBMENU="true"
- GRUB_DISABLE_RECOVERY="true"
- GRUB_CMDLINE_LINUX="ro root=${rootfs} ${console} ${append}"
- GRUB_ENABLE_BLSCFG="true"
+ GRUB_TIMEOUT="5"
+ GRUB_TERMINAL_OUTPUT="${term}"
+ GRUB_DISABLE_SUBMENU="true"
+ GRUB_DISABLE_RECOVERY="true"
+ GRUB_CMDLINE_LINUX="ro root=${rootfs} ${console} ${append}"
+ GRUB_ENABLE_BLSCFG="true"
EOF
fish copy-in $grubdef /etc/default
fish command "sh -c 'grub2-mkconfig > /etc/grub2-efi.cfg'"
- # not working ...
-# havegrubpc=$(guestfish --remote -- is-dir /usr/lib/grub/i386-pc)
-# if test "$havegrubpc" = "true"; then
-# echo "### setup grub2 for bios boot"
-# fish command "grub2-install --target=i386-pc /dev/sda"
-# fish command "sh -c 'grub2-mkconfig > /etc/grub2.cfg'"
-# fi
+ havegrubpc=$(guestfish --remote -- is-dir /usr/lib/grub/i386-pc)
+ if test "$havegrubpc" = "true"; then
+ echo "### setup grub2 for bios boot"
+ grubeficfg=$(guestfish --remote -- glob-expand /boot/efi/EFI/*/grub.cfg)
+ grubeficfg="${grubeficfg#/boot/efi}"
+ cat <<-EOF > "$grubcfg"
+ configfile (hd0,gpt2)$grubeficfg
+EOF
+ fish command "grub2-install --target=i386-pc /dev/sda"
+ fish copy-in $grubcfg /boot/grub2
+ fi
echo "### reinstall kernel"
fish command "kernel-install remove ${kver} /lib/modules/${kver}/vmlinuz"