PHP 8.5.2
Preview: 05efi Size: 1.90 KB
//lib/os-probes/mounted/05efi

#!/bin/sh
# Detects all Microsoft OSes on a collection of partitions.

. /usr/share/os-prober/common.sh

partition="$1"
mpoint="$2"
type="$3"

# This file is for UEFI platform only
if [ ! -d /sys/firmware/efi ] || [ -f /var/lib/partman/ignore_uefi ]; then
	debug "Not on UEFI platform"
	exit 1
fi

# Weed out stuff that doesn't apply to us
case "$type" in
	vfat) debug "$1 is a FAT32 partition" ;;
	msdos) debug "$1 is a FAT16 partition" ;;
	fat) debug "$1 is a FAT partition (mounted by GRUB)" ;;
	*) debug "$1 is $type partition: exiting"; exit 1 ;;
esac

if type udevadm > /dev/null 2>&1; then
	udevinfo () {
		udevadm info "$@"
	}
fi

if type udevinfo > /dev/null 2>&1; then
	# Skip virtual devices
	if udevinfo -q path -n $partition | grep -q /virtual/; then
		debug "$1 is virtual device: exiting"
		exit 1
	fi

	eval "$(udevinfo -q property -n "$partition" | grep -E '^ID_PART_ENTRY_(TYPE|SCHEME)=')"
	debug "$partition partition scheme is $ID_PART_ENTRY_SCHEME"
	debug "$partition partition type is $ID_PART_ENTRY_TYPE"

	if [ -z "$ID_PART_ENTRY_TYPE" -o -z "$ID_PART_ENTRY_SCHEME" -o \
		\( "$ID_PART_ENTRY_SCHEME" != gpt -a "$ID_PART_ENTRY_SCHEME" != dos \) -o \
		\( "$ID_PART_ENTRY_SCHEME" = gpt -a "$ID_PART_ENTRY_TYPE" != c12a7328-f81f-11d2-ba4b-00a0c93ec93b \) -o \
		\( "$ID_PART_ENTRY_SCHEME" = dos -a "$ID_PART_ENTRY_TYPE" != 0xef \) ]; then
		debug "$partition is not a ESP partition: exiting"
		exit 1
	fi
else
	debug "udevinfo and udevadm missing - cannot check partition type"
fi

efi=$(item_in_dir efi "$mpoint")
if [ -z "$efi" ]; then
	debug "$mpoint does not have /EFI directory: exiting"
	exit 1
fi

ret=1
for test in /usr/lib/os-probes/mounted/efi/*; do
	debug "running subtest $test"
	if [ -f "$test" ] && [ -x "$test" ]; then
		entry=$("$test" "$mpoint/$efi")
		if [ -n "$entry" ]; then
			debug "bootloader $entry found by subtest $test"
			ret=0
			result "${partition}@/$efi/${entry}:efi"
		fi
	fi
done

exit $ret

Directory Contents

Dirs: 1 × Files: 12

Name Size Perms Modified Actions
efi DIR
- drwxr-xr-x 2026-01-08 12:55:51
Edit Download
1.90 KB lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
517 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
390 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
791 B lrwxr-xr-x 2023-03-07 13:27:00
Edit Download
4.59 KB lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
863 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
891 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
247 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
431 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
883 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
5.81 KB lrwxr-xr-x 2023-03-07 13:24:16
Edit Download
385 B lrwxr-xr-x 2023-03-07 13:24:16
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).