Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.linux.slackware    |    I think its the one without Selinux crap    |    87,272 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 87,005 of 87,272    |
|    Henrik Carlqvist to root    |
|    Re: Virtualbox EFI won't find grub64.efi    |
|    09 Mar 25 15:04:13    |
   
   From: Henrik.Carlqvist@deadspam.com   
      
   On Sat, 08 Mar 2025 16:52:59 +0000, root wrote:   
   > Henrik, do you format the EFI partition as vfat before starting the   
   > install?   
      
   The formatting is done during the install in my heavily customized   
   isolinux/initrd.img I have changed /bin/startup.sh to:   
      
   -8<-----------------------------   
   #!/bin/sh   
   #/bin/network   
   /bin/partition   
   -8<-----------------------------   
      
   Where /bin/partition is my own custom script containing:   
   -8<-----------------------------   
   #!/bin/sh   
      
   export MBR_DEVICE=/dev/`cat /proc/partitions | grep " 0 " | grep -v -E   
   "ram0|fd0|sr0" | head -1 | awk '{print $4}'`   
   if [ -d /sys/firmware/efi ]; then   
    PART_TYPE=GPT   
   else   
    PART_TYPE=MBR   
   fi   
   dialog --title "Partitions" \   
    --yesno "Do you want to use standard partition sizes (${PART_TYPE}   
   )?" \   
    5 55   
   if [ $? = 0 ]; then   
    export PART_DEVICE=$MBR_DEVICE   
    if [ -d /sys/firmware/efi ]; then   
    /usr/sbin/parted -s $PART_DEVICE mklabel gpt   
    /usr/sbin/parted -s $PART_DEVICE mkpart root ext4 65536s 3600MB   
    /usr/sbin/parted -s $PART_DEVICE mkpart swap linux-swap 3600MB 41400MB   
    /usr/sbin/parted -s $PART_DEVICE mkpart efi fat32 41400MB 44GB   
    /usr/sbin/parted -s $PART_DEVICE set 3 esp on   
    /usr/sbin/parted -s $PART_DEVICE mkpart dummy fat32 44GB 44GB   
    /usr/sbin/parted -s $PART_DEVICE mkpart usr ext4 44GB 106GB   
    /usr/sbin/parted -s $PART_DEVICE mkpart opt ext4 106GB 118GB   
    /usr/sbin/parted -s $PART_DEVICE mkpart var ext4 118GB 138GB   
    /usr/sbin/parted -s $PART_DEVICE mkpart tmp ext4 138GB 148GB   
    else   
    (echo o; \   
    echo n; \   
    echo p; \   
    echo 1; \   
    echo; \   
    echo +3600M; \   
    echo a; \   
    echo n; \   
    echo p; \   
    echo 2; \   
    echo; \   
    echo +37800M; \   
    echo t; \   
    echo 2; \   
    echo 82; \   
    echo n; \   
    echo e; \   
    echo 3; \   
    echo; \   
    echo; \   
    echo n; \   
    echo; \   
    echo +62000M; \   
    echo n; \   
    echo; \   
    echo +12000M; \   
    echo n; \   
    echo; \   
    echo +20000M; \   
    echo n; \   
    echo; \   
    echo +10000M; \   
    echo w) | fdisk $PART_DEVICE   
    fi   
    /usr/lib/setup/setup   
   else   
    echo Create your partitions manually, then run setup!   
    echo First do \". /etc/profile\", then run \"fdisk\" and finally \"setup   
   \"   
    /bin/sh -   
   fi   
   -8<-----------------------------   
      
   The above custom script was written for me a few years ago, intended for   
   Slackware 15.0. I was then in the belief that lilo would be unable to   
   boot from a GPT partition table, but by coincidence I have found that   
   lilo at least on some systems are able to boot also from GPT partitions.   
      
   My customezed usr/lib/setup/setup continues with a minimum of questions   
   and calls a customized SeTEFI:   
      
   -8<------------------------------   
   #!/bin/sh   
   TMP=/var/log/setup/tmp   
   T_PX="`cat $TMP/SeTT_PX`"   
   if [ ! -d $TMP ]; then   
    mkdir -p $TMP   
   fi   
      
   # If the kernel does not support EFI, then we shouldn't be trying to   
   mount an   
   # EFI partition. If we do, probably the only device found with an EFI   
   structure   
   # will be the installer, which we don't want added to /etc/fstab.   
   if [ ! -d /sys/firmware/efi ]; then   
    exit   
   fi   
      
   rm -f $TMP/SeTefipartitions   
   touch $TMP/SeTefipartitions   
      
   # Scan for EFI partitions:   
   # The UEFI specification states that an EFI System partition should have   
   # a GUID of C12A7328-F81F-11D2-BA4B-00A0C93EC93B for a GPT disk layout.   
   # In case of a MBR disk layout instead, an ESP should have an OS type of   
   # 0xEF. lsblk writes these values in the same field: PARTTYPE.   
   ESPGUID=C12A7328-F81F-11D2-BA4B-00A0C93EC93B   
   OSTYPE=0xEF   
   lsblk -l -o parttype,name | \   
   grep -i -F -e "$ESPGUID" -e "$OSTYPE" | \   
   sed "s,[^ ]*[ ]*,/dev/," > $TMP/SeTefipartitions   
      
   if [ ! -s $TMP/SeTefipartitions ]; then # No EFI partitions   
    rm -f $TMP/SeTefipartitions   
    exit   
   fi   
      
   # Initially, we will just take the first EFI partition found, which   
   # will probably be on /dev/sda:   
   PREFERRED_EFI_PARTITION="$(cat $TMP/SeTefipartitions | head -n 1)"   
      
   # But we will also test to see if there is an EFI partition on the same   
   # device as the root partition, and if so, prefer that:   
   if [ -r $TMP/SeTrootdev ]; then   
    if grep -q "$(cat $TMP/SeTrootdev | cut -b 1-8)" $TMP/   
   SeTefipartitions ; then   
    PREFERRED_EFI_PARTITION="$(grep "$(cat $TMP/SeTrootdev | cut -b 1-8)"   
   $TMP/SeTefipartitions | head -n 1)"   
    fi   
   fi   
      
   # This file is no longer needed:   
   rm -f $TMP/SeTefipartitions   
      
   # See if EFI partition is formatted. If not, offer to format it:   
   EFITMPMOUNT=$(mktemp -d)   
   if ! mount $PREFERRED_EFI_PARTITION $EFITMPMOUNT 1> /dev/null 2> /dev/   
   null ; then   
    # It didn't mount, so it must not be formatted:   
   # dialog --title "FORMAT EFI PARTITION ${PREFERRED_EFI_PARTITION}?" \   
   # --yesno "An EFI System Partition was found on   
   ${PREFERRED_EFI_PARTITION}, \   
   #but it has not yet been formatted. Would you like to format this   
   partition?" \   
   #7 56   
   # if [ ! $? = 0 ]; then   
   # exit   
   # fi   
    # Format the partition with FAT32, 2 sectors per cluster (needed for the   
    # minimum supported EFI partition size of 100MB):   
   # dialog --title "FORMATTING EFI PARTITION ${PREFERRED_EFI_PARTITION}" --   
   infobox \   
   # "Formatting EFI System Partition ${PREFERRED_EFI_PARTITION} as FAT32."   
   3 60   
    mkfs.vfat -F 32 -s 2 ${PREFERRED_EFI_PARTITION} 1> /dev/null 2> /dev/   
   null   
    sleep 1   
    mount ${PREFERRED_EFI_PARTITION} $EFITMPMOUNT 1> /dev/null 2> /dev/null   
   fi   
   if [ ! -d $EFITMPMOUNT/EFI -a ! -d $EFITMPMOUNT/efi ]; then   
    mkdir $EFITMPMOUNT/EFI 1> /dev/null 2> /dev/null   
   fi   
   umount $PREFERRED_EFI_PARTITION 1> /dev/null 2> /dev/null   
   rmdir $EFITMPMOUNT   
      
   # Mount the partition on ${T_PX}/boot/efi:   
   if [ ! -d ${T_PX}/boot/efi ]; then   
    mkdir -p ${T_PX}/boot/efi   
   fi   
   mount ${PREFERRED_EFI_PARTITION} ${T_PX}/boot/efi 1> /dev/null 2> /dev/   
   null   
      
   # Add the EFI System Partition to /etc/fstab:   
   printf "%-16s %-16s %-11s %-16s %-3s %s\n" "$PREFERRED_EFI_PARTITION" "/   
   boot/efi" "vfat" "defaults" "1" "0" > $TMP/SeTEFI   
   cat << EOF > $TMP/tempmsg   
      
   Adding this information to your /etc/fstab:   
      
   EOF   
   cat $TMP/SeTEFI >> $TMP/tempmsg   
   #dialog --backtitle "Finished setting up EFI System Partition." \   
   #--title "EFI SYSTEM PARTITION RECOGNIZED" \   
   #--exit-label OK \   
   #--textbox $TMP/tempmsg 10 72   
      
   # Piggyback this fstab addition on the other native partitions in   
   SeTnative:   
   cat $TMP/SeTEFI >> $TMP/SeTnative   
   rm -f $TMP/SeTEFI $TMP/tempmsg   
      
   # Done.   
   -8<------------------------------   
      
   This customized SeTEFI calls mkfs.vfat -F 32 -s 2 on the EFI partition.   
      
   My customezed installation is intended for non dual boot systems, so I   
   allow my script to allways reformat the EFI partition without any   
   questions asked.   
      
   regards Henrik   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca