From 14f1c4f735471dd2fb683ec96c79988f6003a174 Mon Sep 17 00:00:00 2001 From: Jeremi Piotrowski Date: Thu, 25 Apr 2024 10:22:58 +0000 Subject: [PATCH] grub_install: Remove core.{elf,efi} after copying We currently carry multiple copies of the same grub core.elf or core.efi on the boot partition. Save some space by removing duplicates that are never used at runtime. CPIO build needed to be adapted because it publishes grub efi files. Signed-off-by: Jeremi Piotrowski --- build_library/grub_install.sh | 9 +++++---- build_library/vm_image_util.sh | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/build_library/grub_install.sh b/build_library/grub_install.sh index d6f186f48b..6661e021d8 100755 --- a/build_library/grub_install.sh +++ b/build_library/grub_install.sh @@ -204,8 +204,9 @@ case "${FLAGS_target}" in sudo sbsign --key /usr/share/sb_keys/shim.key \ --cert /usr/share/sb_keys/shim.pem \ "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" - sudo cp "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}.signed" \ + sudo mv "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}.signed" \ "${ESP_DIR}/EFI/boot/grubx64.efi" + sudo rm "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" # Sign the mokmanager(mm) with the shim-embedded key sudo sbsign --key /usr/share/sb_keys/shim.key \ --cert /usr/share/sb_keys/shim.pem \ @@ -218,7 +219,7 @@ case "${FLAGS_target}" in --output "${ESP_DIR}/EFI/boot/bootx64.efi" \ "/usr/lib/shim/shim.efi" else - sudo cp "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ + sudo mv "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ "${ESP_DIR}/EFI/boot/grubx64.efi" sudo cp "/usr/lib/shim/shim.efi" \ "${ESP_DIR}/EFI/boot/bootx64.efi" @@ -238,7 +239,7 @@ case "${FLAGS_target}" in x86_64-xen) info "Installing default x86_64 Xen bootloader." sudo mkdir -p "${ESP_DIR}/xen" "${ESP_DIR}/boot/grub" - sudo cp "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ + sudo mv "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ "${ESP_DIR}/xen/pvboot-x86_64.elf" sudo cp "${BUILD_LIBRARY_DIR}/menu.lst" \ "${ESP_DIR}/boot/grub/menu.lst" @@ -247,7 +248,7 @@ case "${FLAGS_target}" in info "Installing default arm64 UEFI bootloader." sudo mkdir -p "${ESP_DIR}/EFI/boot" #FIXME(andrejro): shim not ported to aarch64 - sudo cp "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ + sudo mv "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ "${ESP_DIR}/EFI/boot/bootaa64.efi" if [[ -n "${FLAGS_copy_efi_grub}" ]]; then # copying from vfat so ignore permissions diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index cd0a3745a5..b067362fc9 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -728,13 +728,13 @@ _write_cpio_disk() { # Pull the kernel and loader out of the filesystem ln -fs flatcar_production_image.vmlinuz "${dst_dir}/${vmlinuz_name}" - local grub_arch + local efi_file case $BOARD in - amd64-usr) grub_arch="x86_64-efi" ;; - arm64-usr) grub_arch="arm64-efi" ;; + amd64-usr) efi_file="grubx64.efi" ;; + arm64-usr) efi_file="bootaa64.efi" ;; esac - cp "${base_dir}/boot/flatcar/grub/${grub_arch}/core.efi" "${dst_dir}/${grub_name}" + cp "${base_dir}/boot/EFI/boot/${efi_file}" "${dst_dir}/${grub_name}" VM_GENERATED_FILES+=( "${dst_dir}/${vmlinuz_name}" "${dst_dir}/${grub_name}" ) }