#!/bin/sh EFI_MOUNTPATH="/boot/efi" # Show a warning if not in a chroot (a rescue/chroot mode is mostly attempted) if ! ischroot; then printf "%s" "Take care, you are not in a chroot environment !\n" fi # Select the future EFI partition printf "%b" "Select device and partition to use for UEFI Stub (eg. /dev/sdd1) :\n" read -r EFI_PARTITION # Test if partition exists if [ ! -b "${EFI_PARTITION}" ]; then EFI_DEVICE=$(printf "%s" "${EFI_PARTITION}" | sed "s;\(/dev/...\).*;\1;") printf "%b\n" "${EFI_PARTITION} partition doesn't exist. Create it with parted." parted "${EFI_DEVICE}" mklabel gpt parted "${EFI_DEVICE}" mkpart primary 1049kB 1gB fi # Enable boot flag parted "${EFI_DEVICE}" set 1 boot on # Format in vfat mkfs.fat "${EFI_PARTITION}" # Create mountpoint if needed mkdir -p -- "${EFI_MOUNTPATH}" # And mount it if not already mounted mountpoint -q "${EFI_MOUNTPATH}" || mount -- "${EFI_PARTITION}" "${EFI_MOUNTPATH}" # Add EFI device automount in fstab EFI_UUID=$(blkid -s UUID -o value "${EFI_PARTITION}") printf "%b\n" "UUID=${EFI_UUID} ${EFI_MOUNTPATH} vfat defaults,x-systemd.automount,x-systemd.device-timeout=2,x-systemd.idle-timeout=1min,noatime,noauto 0 2" >> /etc/fstab # Install required packages aptitude install -y efibootmgr efivar # Copy kernel and initrd printf "%b\n" "Copy kernel and initramfs to EFI partition : ${EFI_MOUNTPATH}" mkdir -p -- "${EFI_MOUNTPATH}"/EFI/debian/ cp /vmlinuz /initrd.img -- "${EFI_MOUNTPATH}" exit 0