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 <jpiotrowski@microsoft.com>
This commit is contained in:
Jeremi Piotrowski 2024-04-25 10:22:58 +00:00 committed by Adrian Vladu
parent ab4e709fa6
commit 14f1c4f735
2 changed files with 9 additions and 8 deletions

View File

@ -204,8 +204,9 @@ case "${FLAGS_target}" in
sudo sbsign --key /usr/share/sb_keys/shim.key \ sudo sbsign --key /usr/share/sb_keys/shim.key \
--cert /usr/share/sb_keys/shim.pem \ --cert /usr/share/sb_keys/shim.pem \
"${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" "${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" "${ESP_DIR}/EFI/boot/grubx64.efi"
sudo rm "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}"
# Sign the mokmanager(mm) with the shim-embedded key # Sign the mokmanager(mm) with the shim-embedded key
sudo sbsign --key /usr/share/sb_keys/shim.key \ sudo sbsign --key /usr/share/sb_keys/shim.key \
--cert /usr/share/sb_keys/shim.pem \ --cert /usr/share/sb_keys/shim.pem \
@ -218,7 +219,7 @@ case "${FLAGS_target}" in
--output "${ESP_DIR}/EFI/boot/bootx64.efi" \ --output "${ESP_DIR}/EFI/boot/bootx64.efi" \
"/usr/lib/shim/shim.efi" "/usr/lib/shim/shim.efi"
else else
sudo cp "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ sudo mv "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \
"${ESP_DIR}/EFI/boot/grubx64.efi" "${ESP_DIR}/EFI/boot/grubx64.efi"
sudo cp "/usr/lib/shim/shim.efi" \ sudo cp "/usr/lib/shim/shim.efi" \
"${ESP_DIR}/EFI/boot/bootx64.efi" "${ESP_DIR}/EFI/boot/bootx64.efi"
@ -238,7 +239,7 @@ case "${FLAGS_target}" in
x86_64-xen) x86_64-xen)
info "Installing default x86_64 Xen bootloader." info "Installing default x86_64 Xen bootloader."
sudo mkdir -p "${ESP_DIR}/xen" "${ESP_DIR}/boot/grub" 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" "${ESP_DIR}/xen/pvboot-x86_64.elf"
sudo cp "${BUILD_LIBRARY_DIR}/menu.lst" \ sudo cp "${BUILD_LIBRARY_DIR}/menu.lst" \
"${ESP_DIR}/boot/grub/menu.lst" "${ESP_DIR}/boot/grub/menu.lst"
@ -247,7 +248,7 @@ case "${FLAGS_target}" in
info "Installing default arm64 UEFI bootloader." info "Installing default arm64 UEFI bootloader."
sudo mkdir -p "${ESP_DIR}/EFI/boot" sudo mkdir -p "${ESP_DIR}/EFI/boot"
#FIXME(andrejro): shim not ported to aarch64 #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" "${ESP_DIR}/EFI/boot/bootaa64.efi"
if [[ -n "${FLAGS_copy_efi_grub}" ]]; then if [[ -n "${FLAGS_copy_efi_grub}" ]]; then
# copying from vfat so ignore permissions # copying from vfat so ignore permissions

View File

@ -728,13 +728,13 @@ _write_cpio_disk() {
# Pull the kernel and loader out of the filesystem # Pull the kernel and loader out of the filesystem
ln -fs flatcar_production_image.vmlinuz "${dst_dir}/${vmlinuz_name}" ln -fs flatcar_production_image.vmlinuz "${dst_dir}/${vmlinuz_name}"
local grub_arch local efi_file
case $BOARD in case $BOARD in
amd64-usr) grub_arch="x86_64-efi" ;; amd64-usr) efi_file="grubx64.efi" ;;
arm64-usr) grub_arch="arm64-efi" ;; arm64-usr) efi_file="bootaa64.efi" ;;
esac 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}" ) VM_GENERATED_FILES+=( "${dst_dir}/${vmlinuz_name}" "${dst_dir}/${grub_name}" )
} }