From 0f28ee414f4cd4e6a8828abf1a941c92445a346f Mon Sep 17 00:00:00 2001 From: Anton Midyukov Date: Wed, 1 Apr 2020 23:25:52 +0700 Subject: [PATCH] build-vm, tar2fs: added VM_PARTTABLE For Raspberry Pi needed to build grub-efi + MBR images. --- bin/tar2fs | 25 ++++++++++++++++++------- features.in/build-vm/lib/90-build-vm.mk | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/bin/tar2fs b/bin/tar2fs index d91a6200..a44e06dd 100755 --- a/bin/tar2fs +++ b/bin/tar2fs @@ -68,6 +68,15 @@ ppc*) ;; esac +PARTTABLE="$7" +if [ -z "$PARTTABLE" ]; then + if [ "$BOOTLOADER" == grub-efi ]; then + PARTTABLE=gpt + else + PARTTABLE=msdos + fi +fi + # figure out the part taken by /boot in the given tarball boot_size() { if [ -n "$BOOTPART" ]; then @@ -185,11 +194,7 @@ OFFSET="$(($CUR_BOUNDARY + $EFIPARTSIZEM + $BOOTLOADERPARTSIZEM + $BOOTSIZEM + $ dd if=/dev/zero of="$IMG" conv=notrunc bs=$MB count=1 seek="$OFFSET" losetup "$LOOPDEV" "$IMG" -if [ "$BOOTLOADER" == grub-efi ]; then - parting mklabel gpt -else - parting mklabel msdos -fi +parting mklabel "$PARTTABLE" if [ -n "$BOOTLOADERPART" ] && [ -n "$BOOTLOADERPARTSIZEM" ]; then case "$ARCH" in @@ -204,10 +209,16 @@ fi if [ -n "$EFIPART" ]; then EFIDEV="$EFIDEV$EFIPART" - parting mkpart fat32 2048s $(($EFIPARTSIZEM + 1))MiB + if [ "$PARTTABLE" == gpt ]; then + parting mkpart fat32 2048s $(($EFIPARTSIZEM + 1))MiB + else + parting mkpart primary fat32 2048s $(($EFIPARTSIZEM + 1))MiB + fi CUR_BOUNDARY="$EFIPARTSIZEM" parting set 1 boot on - parting set 1 esp on + if [ "$PARTTABLE" == gpt ]; then + parting set 1 esp on + fi fi if [ -n "$BOOTPART" ]; then diff --git a/features.in/build-vm/lib/90-build-vm.mk b/features.in/build-vm/lib/90-build-vm.mk index f077d082..7d72a1c2 100644 --- a/features.in/build-vm/lib/90-build-vm.mk +++ b/features.in/build-vm/lib/90-build-vm.mk @@ -45,7 +45,7 @@ tar2fs: check-sudo prepare-tarball-qemu fi; \ if ! sudo $$TOPDIR/bin/tar2fs \ "$(VM_TARBALL)" "$(VM_RAWDISK)" "$(VM_SIZE)" "$(VM_FSTYPE)" \ - "$(VM_BOOTLOADER)" "$(ARCH)"; then \ + "$(VM_BOOTLOADER)" "$(ARCH)" "$(VM_PARTTABLE)"; then \ echo "** error: sudo tar2fs failed, see build log" >&2; \ exit 1; \ fi