summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2021-05-14 23:35:17 +0100
committerAndreas Kling <kling@serenityos.org>2021-05-15 00:57:35 +0200
commit5ee9aab7e1a79f1b51b112b9fefd6268bc76f2dd (patch)
tree2e65cb332fc17bb0d916155a7155d29ab05a6c37
parentb31602367e48e83fb411965f7caf353aed691bc9 (diff)
downloadserenity-5ee9aab7e1a79f1b51b112b9fefd6268bc76f2dd.zip
Meta: Bump BIOS/MBR boot partition size of grub disk image to 1MiB
As of ~April 2021 the Meta/build-image-grub.sh script no longer works for me (on Fedora 34) and fails with the following error: /usr/sbin/grub2-install: warning: ../grub-core/partmap/msdos.c:403: your core.img is unusually large. It won't fit in the embedding area. /usr/sbin/grub2-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. /usr/sbin/grub2-install: error: will not proceed with blocklists. Changing the size of the boot partition from 32 kiB to 1 MiB (2048 sectors) fixes the issue. This is also described in the following Ubuntu grub2 bug (as well as 40 duplicates!) from 2012, which suggests the same fix: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1059827 The Arch Linux wiki also uses 1 MiB in their BIOS/MBR examples for parted: https://wiki.archlinux.org/title/Parted I'm not sure why this suddenly stopped working, however I was able to boot with an image created with this change applied.
-rwxr-xr-xMeta/build-image-grub.sh4
1 files changed, 2 insertions, 2 deletions
diff --git a/Meta/build-image-grub.sh b/Meta/build-image-grub.sh
index d4a55cc37e..e8e55ee4a0 100755
--- a/Meta/build-image-grub.sh
+++ b/Meta/build-image-grub.sh
@@ -62,7 +62,7 @@ trap cleanup EXIT
printf "creating partition table... "
if [ "$1" = "mbr" ]; then
- parted -s "${dev}" mklabel msdos mkpart primary ext2 32k 100% -a minimal set 1 boot on || die "couldn't partition disk"
+ parted -s "${dev}" mklabel msdos mkpart primary ext2 1MiB 100% -a minimal set 1 boot on || die "couldn't partition disk"
partition_number="p1"
partition_scheme="mbr"
elif [ "$1" = "gpt" ]; then
@@ -74,7 +74,7 @@ elif [ "$1" = "ebr" ]; then
partition_number="p5"
partition_scheme="ebr"
else
- parted -s "${dev}" mklabel msdos mkpart primary ext2 32k 100% -a minimal set 1 boot on || die "couldn't partition disk"
+ parted -s "${dev}" mklabel msdos mkpart primary ext2 1MiB 100% -a minimal set 1 boot on || die "couldn't partition disk"
partition_number="p1"
partition_scheme="mbr"
fi