1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-01-15 15:41:54 +01:00
slackware-current/source/installer/sources/initrd/usr/lib/setup/SeTEFI
Patrick J Volkerding 3452074d08 Thu Sep 21 19:32:42 UTC 2023
a/gettext-0.22.2-x86_64-1.txz:  Upgraded.
ap/cups-2.4.7-x86_64-1.txz:  Upgraded.
  This update fixes bugs and a security issue:
  Fixed Heap-based buffer overflow when reading Postscript in PPD files.
  For more information, see:
    https://www.cve.org/CVERecord?id=CVE-2023-4504
  (* Security fix *)
d/cmake-3.27.6-x86_64-1.txz:  Upgraded.
d/gettext-tools-0.22.2-x86_64-1.txz:  Upgraded.
l/dconf-editor-45.0.1-x86_64-1.txz:  Upgraded.
l/gst-plugins-bad-free-1.22.6-x86_64-1.txz:  Upgraded.
l/gst-plugins-base-1.22.6-x86_64-1.txz:  Upgraded.
l/gst-plugins-good-1.22.6-x86_64-1.txz:  Upgraded.
l/gst-plugins-libav-1.22.6-x86_64-1.txz:  Upgraded.
l/gstreamer-1.22.6-x86_64-1.txz:  Upgraded.
l/gtk4-4.12.2-x86_64-1.txz:  Upgraded.
l/imagemagick-7.1.1_17-x86_64-1.txz:  Upgraded.
n/bind-9.18.19-x86_64-1.txz:  Upgraded.
  This update fixes bugs and security issues:
  Limit the amount of recursion that can be performed by isccc_cc_fromwire.
  Fix use-after-free error in TLS DNS code when sending data.
  For more information, see:
    https://kb.isc.org/docs/cve-2023-3341
    https://www.cve.org/CVERecord?id=CVE-2023-3341
    https://kb.isc.org/docs/cve-2023-4236
    https://www.cve.org/CVERecord?id=CVE-2023-4236
  (* Security fix *)
n/stunnel-5.71-x86_64-1.txz:  Upgraded.
x/mesa-23.1.8-x86_64-1.txz:  Upgraded.
x/xorg-server-xwayland-23.2.1-x86_64-1.txz:  Upgraded.
xap/freerdp-2.11.2-x86_64-1.txz:  Upgraded.
xap/mozilla-thunderbird-115.2.3-x86_64-1.txz:  Upgraded.
  This is a bugfix release.
  For more information, see:
    https://www.mozilla.org/en-US/thunderbird/115.2.3/releasenotes/
xap/seamonkey-2.53.17.1-x86_64-1.txz:  Upgraded.
  This update contains security fixes and improvements.
  For more information, see:
    https://www.seamonkey-project.org/releases/seamonkey2.53.17.1
    https://www.cve.org/CVERecord?id=CVE-2023-4863
  (* Security fix *)
2023-09-21 22:14:37 +02:00

109 lines
3.9 KiB
Bash
Executable file

#!/bin/sh
# Script: /usr/lib/setup/SeTEFI
# Called from: /usr/lib/setup/setup
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.
#
# AArch64 note: Any file systems labeled 'SLKins_efi' are filtered out
# because on the AArch64 platform, the Slackware Installer image has its
# own EFI boot partition to support Hardware Models using UEFI firmware.
# This partition must be filtered out here to avoid it being incorrectly
# selected as the OS's EFI partition.
ESPGUID=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
OSTYPE=0xEF
lsblk -Ml -o parttype,name,label | \
grep -v 'SLKins_efi$' | \
grep -iFe "$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.