diff --git a/README.md b/README.md index 9861014..d07ddf6 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ https://gitlab.archlinux.org/archlinux/archiso/ SystemRescue can be built for x86_64 or i686 architectures. It must be built on archlinux if you want to build a 64bit edition, or archlinux32 if you want to create a 32bit edition. The following packages must be installed on the -build system: archiso, grub, mtools. You need to use a modified version of -archiso for the build to work and for additional fixes and features to be -present. You can find the required archiso version and patches in the "patches" -folder in this git repository. +build system: archiso, grub, mtools, edk2-shell. You need to use a modified +version of archiso for the build to work and for additional fixes and features +to be present. You can find the required archiso version and patches in the +"patches" folder in this git repository. The package list contains packages which are not part of the official binary package repositories. These packages need to be built from sources from the AUR diff --git a/build.sh b/build.sh index 6195516..96d8af4 100755 --- a/build.sh +++ b/build.sh @@ -27,10 +27,12 @@ case ${arch} in x86_64) efiarch="x86_64-efi" efiboot="bootx64.efi" + edk2arch="x64" ;; i686) efiarch="i386-efi" efiboot="bootia32.efi" + edk2arch="ia32" ;; *) echo "ERROR: Unsupported architecture: '${arch}'" @@ -191,6 +193,7 @@ make_efi() { s|%ISO_ARCH%|${arch}|g; s|%INSTALL_DIR%|${install_dir}|g" \ ${script_path}/efiboot/grub/grubsrcd.cfg > ${work_dir}/iso/boot/grub/grubsrcd.cfg + cp -a /usr/share/edk2-shell/${edk2arch}/Shell_Full.efi ${work_dir}/iso/EFI/shell.efi } # Prepare efiboot.img::/EFI for "El Torito" EFI boot mode diff --git a/efiboot/grub/grubsrcd.cfg b/efiboot/grub/grubsrcd.cfg index eb451da..05808d5 100644 --- a/efiboot/grub/grubsrcd.cfg +++ b/efiboot/grub/grubsrcd.cfg @@ -55,3 +55,10 @@ menuentry "Stop during the boot process before mounting the root filesystem" { linux /%INSTALL_DIR%/boot/%ISO_ARCH%/vmlinuz archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% break initrd /%INSTALL_DIR%/boot/intel_ucode.img /%INSTALL_DIR%/boot/amd_ucode.img /%INSTALL_DIR%/boot/%ISO_ARCH%/sysresccd.img } + +menuentry "EFI Shell" { + insmod fat + insmod chain + terminal_output console + chainloader /EFI/shell.efi +}