# kboot-mkconfig helper script.
# Copyright (C) 2011 Antonio Ospite <ospite@studenti.unina.it>
#
-# Inspired by the 10_linux script from kboot
+# Inspired by the 10_linux script from grub
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib
-LINUX_ROOT_DEVICE="$(readlink -f $(mount | grep ' / ' | cut -d ' ' -f 1))"
+# TODO: remove this if the following find_linux_root_device()
+# is found to be reliable enough
+#LINUX_ROOT_DEVICE="$(readlink -f $(mount | grep ' / ' | cut -d ' ' -f 1))"
if $(which gettext >/dev/null 2>/dev/null) ; then
gettext="gettext"
echo "$a"
}
+linux_find_root_device() {
+ ROOT_DEVICE=$(mountpoint -d /)
+
+ for devnode in $(find /dev);
+ do
+ # Get major and minor in decimal
+ CURRENT_DEVICE=$(printf "%d:%d" $(stat --printf="0x%t 0x%T" "$devnode"))
+ if [ $CURRENT_DEVICE = $ROOT_DEVICE ];
+ then
+ ROOT_NODE="$devnode"
+ break
+ fi
+ done
+
+ echo "$ROOT_NODE"
+}
+
linux_entry ()
{
os="$1"
version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
alt_version=`echo $version | sed -e "s,\.old$,,g"`
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+ # TODO: remove this too
+ #linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+ linux_root_device_thisversion=`linux_find_root_device`
initrd=
for i in "initrd.img-${version}" "initrd-${version}.img" \