summarylogtreecommitdiffstats
path: root/os-prober-accept-ESP-on-IMSM.patch
blob: 71004bc8c0781b47e97f4eb5e65860f514ed2285 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Index: os-prober-1.76/os-probes/mounted/x86/05efi
===================================================================
--- os-prober-1.76.orig/os-probes/mounted/x86/05efi
+++ os-prober-1.76/os-probes/mounted/x86/05efi
@@ -28,13 +28,24 @@ if type udevadm > /dev/null 2>&1; then
 fi

 if type udevinfo > /dev/null 2>&1; then
-	# Skip virtual devices
+	eval "$(udevinfo -q property -n "$partition" | grep -E '^(MD_CONTAINER|ID_PART_ENTRY_(TYPE|SCHEME))=')"
+	debug "$partition container is '$MD_CONTAINER'"
+
+	# Skip virtual devices unless they are known SW-RAID
 	if udevinfo -q path -n $partition | grep -q /virtual/; then
-		debug "$1 is virtual device: exiting"
-		exit 1
+		# Check for Intel Matrix array
+		if [ -n "$MD_CONTAINER" ]; then
+			eval "$(udevinfo -q property -n "$MD_CONTAINER" | grep -E '^MD_METADATA=')"
+			debug "$MD_CONTAINER metadata is '$MD_METADATA'"
+		fi
+		if [ "$MD_METADATA" = imsm ]; then
+			debug "$partition is on IMSM array"
+		else
+			debug "$1 is virtual device: exiting"
+			exit 1
+		fi
 	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"