3 # Purpose: grub-mkconfig helper script for Grml rescue systems
4 # Authors: grml-team (grml.org), (c) Andreas Gredler <jimmy@grml.org>, Michael Prokop <mika@grml.org>
5 # Bug-Reports: see http://grml.org/bugs/
6 # License: This file is licensed under the GPL v2+.
7 ################################################################################
13 bindir=${exec_prefix}/bin
14 libdir=${exec_prefix}/lib
15 . ${libdir}/grub/grub-mkconfig_lib
17 # default unless configured otherwise:
18 ISO_LOCATION="/boot/grml"
20 if [ -r /etc/default/grml-rescueboot ] ; then
21 . /etc/default/grml-rescueboot
27 for block in /sys/block /sys/class/block ; do
28 [ ! -d ${block}/${base}/dm ] && continue
29 retval="/dev/mapper/$(cat ${block}/${base}/dm/name)"
35 retval="/dev/mapper/$(dmsetup info -C --noheadings -o name -j 253 -m $minor)"
44 if [ -z ${device} ] ; then
47 device=$(readlink -f ${device})
50 device="/dev/dm-$(dmsetup info -C --noheadings -o minor "$device")"
56 additional_dependencies=""
57 for block in /sys/block /sys/class/block ; do
58 [ ! -d ${block}/${base}/slaves ] && continue
59 for file in ${block}/${base}/slaves/* ; do
60 dep_name="/dev/${file##*/}"
61 dep_name=$(resolve_dm_name ${dep_name})
63 # resolve recursively all dependencies
64 additional_dependencies=$(get_dependencies ${dep_name})
66 dependencies="$dependencies $additional_dependencies $dep_name"
77 for file in "${ISO_LOCATION}"/*.iso ; do
78 if grub_file_is_not_garbage "$file" ; then
79 iso_list="$iso_list $file "
83 for grmliso in $iso_list ; do
84 rel_dirname="$(make_system_path_relative_to_its_root $(dirname $grmliso))"
85 grml="$(basename $grmliso)"
86 device="$(${grub_probe} -t device ${grmliso})"
91 /dev/mapper*|/dev/md*)
92 dependencies=$(get_dependencies ${device})
94 for dep in $dependencies $device ; do
95 dep_string="$dep_string,$dep"
97 dep_string=${dep_string#,}
98 additional_param="live-media=$dep_string"
102 echo "Found Grml ISO image: $grmliso" >&2
103 title="Grml Rescue System ($grml)"
106 menuentry "${title}" {
107 $(prepare_grub_to_access_device "$device" | sed -e "s/^/ /")
108 iso_path="${rel_dirname}/${grml}"
110 kernelopts=" $CUSTOM_BOOTOPTIONS $additional_param "
112 loopback loop "${rel_dirname}/$grml"
114 configfile /boot/grub/loopback.cfg
119 ## END OF FILE #################################################################