better support for systems with no pxe
[automated-distro-installer] / fai / config / distro-install-common / libreboot_grub.cfg
1 #!/bin/sh
2 # shebang is for editor file mode detection only
3
4 function save_vars {
5 if [ -s $envfile ]; then
6 for var in $@; do
7 save_env --file $envfile $var
8 done
9 fi
10 }
11
12 function save_chosen {
13 last_boot=$CHOSEN
14 save_vars did_fai_check last_boot
15 }
16
17 # we don't set this to fai check so we can't get into
18 # an infinite reboot cycle. We depend on the os to
19 # create the initial grubenv file.
20 set default=/debianstable_bootstrap # could use 0 here.
21 set timeout=1
22
23 for part in (ahci*4) (ata*4); do
24 envfile=$part/grubenv
25 if [ -s $envfile ]; then
26 load_env --file $envfile
27 if [ x$did_fai_check != xtrue -a x$last_boot != x$default ]; then
28 set default=fai-check
29 elif [ ! -z $last_boot ]; then
30 set default=$last_boot
31 fi
32 break
33 fi
34 done
35
36 did_fai_check=false
37
38 bs_dir=/debianstable_bootstrap
39 menuentry $bs_dir --id=$bs_dir {
40 save_chosen
41 configfile $bs_dir/boot/grub/grub.cfg
42 }
43
44 for dir in /boot_*; do
45 if [ $dir == '/boot_*' ]; then
46 break
47 fi
48 menuentry $dir --id=$dir {
49 save_chosen
50 configfile $1/grub/grub.cfg
51 }
52 done
53
54 menuentry fai-check --id=fai-check {
55 did_fai_check=true
56 save_vars did_fai_check
57 configfile $bs_dir/boot/grub/grub.cfg
58 }