diff --git a/diskimage_builder/elements/iso/cleanup.d/100-build-iso b/diskimage_builder/elements/iso/cleanup.d/100-build-iso index dfe8a669..d60ea821 100755 --- a/diskimage_builder/elements/iso/cleanup.d/100-build-iso +++ b/diskimage_builder/elements/iso/cleanup.d/100-build-iso @@ -32,6 +32,12 @@ function build_efiboot_img() { if [[ $DISTRO_NAME = "fedora" || $DISTRO_NAME = "rhel7" ]] ; then cp $TMP_BOOTLOADER_DIR/shim.efi $TMP_BUILD_DIR/bootx64.efi cp $TMP_BOOTLOADER_DIR/grubx64.efi $TMP_BUILD_DIR/grubx64.efi + elif [[ $DISTRO_NAME = "centos" ]] ; then + cp $TMP_BOOTLOADER_DIR/shimx64-centos.efi $TMP_BUILD_DIR/bootx64.efi + cp $TMP_BOOTLOADER_DIR/grubx64.efi $TMP_BUILD_DIR/grubx64.efi + elif [[ $DISTRO_NAME = "ubuntu" || $DISTRO_NAME = "debian" ]] ; then + cp $TMP_BOOTLOADER_DIR/shimx64.efi.signed $TMP_BUILD_DIR/bootx64.efi + cp $TMP_BOOTLOADER_DIR/grubx64.efi.signed $TMP_BUILD_DIR/grubx64.efi else cp $TMP_BOOTLOADER_DIR/shim.efi.signed $TMP_BUILD_DIR/bootx64.efi cp $TMP_BOOTLOADER_DIR/grubx64.efi.signed $TMP_BUILD_DIR/grubx64.efi @@ -64,6 +70,10 @@ function build_iso() { MKISOFS="/usr/bin/mkisofs" if [ $DISTRO_NAME = "fedora" ]; then EXTRA_KERNEL_PARAMS="usbcore.autosuspend=-1" + #centos + elif [ $DISTRO_NAME = "centos" ]; then + EFI_BOOT_DIR="EFI/centos" + EXTRA_KERNEL_PARAMS="" #debian elif [ $DISTRO_NAME = "debian" ]; then EXTRA_KERNEL_PARAMS="" @@ -175,4 +185,3 @@ build_iso "$EMITTED_KERNEL" "$EMITTED_RAMDISK" "$EMITTED_KERNEL_CMDLINE_ARGS" \ # Clean-up the bootloaders directory sudo rm -fr $TMP_BOOTLOADER_DIR - diff --git a/diskimage_builder/elements/iso/pkg-map b/diskimage_builder/elements/iso/pkg-map index a9d9d371..4226ac28 100644 --- a/diskimage_builder/elements/iso/pkg-map +++ b/diskimage_builder/elements/iso/pkg-map @@ -4,6 +4,11 @@ "syslinux": "syslinux", "syslinux-common": "syslinux-common", "isolinux": "isolinux" + }, + "ubuntu":{ + "syslinux": "syslinux", + "syslinux-common": "syslinux-common", + "isolinux": "isolinux" } }, "family":{ @@ -24,4 +29,3 @@ "isolinux": "" } } - diff --git a/diskimage_builder/elements/iso/post-install.d/01-copy-bootloaders b/diskimage_builder/elements/iso/post-install.d/01-copy-bootloaders index 63b96695..4d38d9fa 100755 --- a/diskimage_builder/elements/iso/post-install.d/01-copy-bootloaders +++ b/diskimage_builder/elements/iso/post-install.d/01-copy-bootloaders @@ -16,10 +16,16 @@ if [ $DISTRO_NAME = "fedora" ]; then SHIM_FILE="/boot/efi/EFI/fedora/shim.efi" SYSLINUX_FILE="/usr/share/syslinux/isolinux.bin" LDLINUX_FILE="/usr/share/syslinux/ldlinux.c32" -#debian -elif [ $DISTRO_NAME = "debian" ]; then +#centos +elif [ $DISTRO_NAME = "centos" ]; then + GRUB_FILE="/boot/efi/EFI/centos/grubx64.efi" + SHIM_FILE="/boot/efi/EFI/centos/shimx64-centos.efi" + SYSLINUX_FILE="/usr/share/syslinux/isolinux.bin" + LDLINUX_FILE="/usr/share/syslinux/ldlinux.c32" +#debian/ubuntu +elif [ $DISTRO_NAME = "ubuntu" || $DISTRO_NAME = "debian" ]; then GRUB_FILE="/usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed" - SHIM_FILE="/usr/lib/shim/shim.efi.signed" + SHIM_FILE="/usr/lib/shim/shimx64.efi.signed" SYSLINUX_FILE="/usr/lib/ISOLINUX/isolinux.bin" LDLINUX_FILE="/usr/lib/syslinux/modules/bios/ldlinux.c32" #rhel7 @@ -28,18 +34,23 @@ elif [ $DISTRO_NAME = "rhel7" ]; then SHIM_FILE="/boot/efi/EFI/redhat/shim.efi" SYSLINUX_FILE="/usr/share/syslinux/isolinux.bin" LDLINUX_FILE="/usr/share/syslinux/ldlinux.c32" -#ubuntu +#other else GRUB_FILE="/usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed" - SHIM_FILE="/usr/lib/shim/shim.efi.signed" - SYSLINUX_FILE="/usr/lib/syslinux/isolinux.bin" - LDLINUX_FILE="/usr/lib/syslinux/ldlinux.c32" + SHIM_FILE="/usr/lib/shim/shimx64.efi.signed" + SYSLINUX_FILE="/usr/lib/ISOLINUX/isolinux.bin" + LDLINUX_FILE="/usr/lib/syslinux/modules/bios/ldlinux.c32" fi cp $GRUB_FILE $TMP_BOOTLOADER_DIR cp $SHIM_FILE $TMP_BOOTLOADER_DIR cp $SYSLINUX_FILE $TMP_BOOTLOADER_DIR +# On some operating systems signed bootloader packages install +# files with read permissions for root only, whereas some for all +# the users. +chmod --recursive +r $TMP_BOOTLOADER_DIR + # Starting from SYSLINUX 5.00, the isolinux.bin is dependent # on ldlinux.c32. # http://www.syslinux.org/wiki/index.php/Library_modules