1 #!/bin/sh
2 # Detects Haiku on BeFS partitions.
4 . /usr/share/os-prober/common.sh
6 partition="$1"
7 mpoint="$2"
8 type="$3"
10 # Weed out stuff that doesn't apply to us
11 case "$type" in
12 befs) debug "$partition is a BeFS partition" ;;
13 *) debug "$partition is not a BeFS partition: exiting"; exit 1 ;;
14 esac
16 if head -c 512 "$partition" | grep -qs "system.haiku_loader"; then
17 debug "Stage 1 bootloader found"
18 else
19 debug "Stage 1 bootloader not found: exiting"
20 exit 1
21 fi
23 if system="$(item_in_dir "system" "$mpoint")" &&
24 item_in_dir -q "haiku_loader" "$mpoint/$system" &&
25 item_in_dir -q "kernel_x86" "$mpoint/$system"
26 then
27 debug "Stage 2 bootloader and kernel found"
28 label="$(count_next_label Haiku)"
29 result "$partition:Haiku:$label:chain"
30 exit 0
31 else
32 debug "Stage 2 bootloader and kernel not found: exiting"
33 exit 1
34 fi
