blob: 6de7a1d463c048ccb703c02fa94190cf9539dee5 (
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
34
35
|
#!/bin/sh
# Detects Haiku on BeFS partitions.
. /usr/share/os-prober/common.sh
partition="$1"
mpoint="$2"
type="$3"
# Weed out stuff that doesn't apply to us
case "$type" in
befs|befs_be) debug "$partition is a BeFS partition" ;;
*) debug "$partition is not a BeFS partition: exiting"; exit 1 ;;
esac
if head -c 512 "$partition" | grep -qs "system.haiku_loader"; then
debug "Stage 1 bootloader found"
else
debug "Stage 1 bootloader not found: exiting"
exit 1
fi
if system="$(item_in_dir "system" "$mpoint")" &&
item_in_dir -q "haiku_loader" "$mpoint/$system" &&
(item_in_dir -q "kernel_x86" "$mpoint/$system" ||
item_in_dir -q "kernel_x86_64" "$mpoint/$system")
then
debug "Stage 2 bootloader and kernel found"
label="$(count_next_label Haiku)"
result "$partition:Haiku:$label:chain"
exit 0
else
debug "Stage 2 bootloader and kernel not found: exiting"
exit 1
fi
|