J’ai tout ca dans :
[code]$ cat /etc/grub.d/30_os-prober
#! /bin/sh -e
grub-mkconfig helper script.
Copyright © 2006,2007,2008,2009 Free Software Foundation, Inc.
GRUB is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GRUB is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
. ${libdir}/grub/grub-mkconfig_lib
found_other_os=
adjust_timeout () {
if [ “x${found_other_os}” = “x” ] ; then
if [ “x${GRUB_HIDDEN_TIMEOUT}” != “x” ] ; then
if [ “x${GRUB_HIDDEN_TIMEOUT_QUIET}” = “xtrue” ] ; then
verbose=
else
verbose=" --verbose"
fi
if [ "x${GRUB_HIDDEN_TIMEOUT}" = "x0" ] ; then
cat <<EOF
if [ ${timeout} != -1 ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep$verbose --interruptible 3 ; then
set timeout=0
fi
fi
fi
EOF
else
cat << EOF
if [ ${timeout} != -1 ]; then
if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then
set timeout=0
fi
fi
EOF
fi
fi
fi
}
if [ “x${GRUB_DISABLE_OS_PROBER}” = “xtrue” ]; then
adjust_timeout
exit 0
fi
if [ -z “which os-prober 2> /dev/null
” -o -z “which linux-boot-prober 2> /dev/null
” ] ; then
missing os-prober and/or linux-boot-prober
adjust_timeout
exit 0
fi
OSPROBED="os-prober | tr ' ' '^' | paste -s -d ' '
"
if [ -z “${OSPROBED}” ] ; then
empty os-prober output, nothing doing
adjust_timeout
exit 0
fi
for OS in ${OSPROBED} ; do
DEVICE="echo ${OS} | cut -d ':' -f 1
“
LONGNAME=”echo ${OS} | cut -d ':' -f 2 | tr '^' ' '
“
LABEL=”echo ${OS} | cut -d ':' -f 3 | tr '^' ' '
“
BOOT=”echo ${OS} | cut -d ':' -f 4
"
if [ -z “${LONGNAME}” ] ; then
LONGNAME="${LABEL}"
fi
echo “Found ${LONGNAME} on ${DEVICE}” >&2
found_other_os=1
case ${BOOT} in
chain)
cat << EOF
menuentry “${LONGNAME} (on ${DEVICE})” {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e “s/^/\t/”
case ${LONGNAME} in
Windows\ Vista*|Windows\ 7*)
;;
*)
cat << EOF
drivemap -s (hd0) \${root}
EOF
;;
esac
cat <<EOF
chainloader +1
}
EOF
;;
linux)
LINUXPROBED="linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '
"
for LINUX in ${LINUXPROBED} ; do
LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"
if [ -z "${LLABEL}" ] ; then
LLABEL="${LONGNAME}"
fi
if [ "${LROOT}" != "${LBOOT}" ]; then
LKERNEL="${LKERNEL#/boot}"
LINITRD="${LINITRD#/boot}"
fi
cat << EOF
menuentry “${LLABEL} (on ${DEVICE})” {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${LBOOT} | sed -e "s/^/\t/“
cat << EOF
linux ${LKERNEL} ${LPARAMS}
EOF
if [ -n “${LINITRD}” ] ; then
cat << EOF
initrd ${LINITRD}
EOF
fi
cat << EOF
}
EOF
done
;;
macosx)
OSXUUID=”grub-probe --target=fs_uuid --device ${DEVICE} 2> /dev/null
"
cat << EOF
menuentry “${LONGNAME} (on ${DEVICE})” {
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/“
cat << EOF
insmod vbe
do_resume=0
if [ /var/vm/sleepimage -nt10 / ]; then
if xnu_resume /var/vm/sleepimage; then
do_resume=1
fi
fi
if [ $do_resume == 0 ]; then
xnu_uuid ${OSXUUID} uuid
if [ -f /Extra/DSDT.aml ]; then
acpi -e /Extra/DSDT.aml
fi
xnu_kernel /mach_kernel boot-uuid=${uuid} rd=uuid
if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
xnu_mkext /System/Library/Extensions.mkext
else
xnu_kextdir /System/Library/Extensions
fi
if [ -f /Extra/Extensions.mkext ]; then
xnu_mkext /Extra/Extensions.mkext
fi
if [ -d /Extra/Extensions ]; then
xnu_kextdir /Extra/Extensions
fi
if [ -f /Extra/devtree.txt ]; then
xnu_devtree /Extra/devtree.txt
fi
if [ -f /Extra/splash.jpg ]; then
insmod jpeg
xnu_splash /Extra/splash.jpg
fi
if [ -f /Extra/splash.png ]; then
insmod png
xnu_splash /Extra/splash.png
fi
if [ -f /Extra/splash.tga ]; then
insmod tga
xnu_splash /Extra/splash.tga
fi
fi
}
EOF
;;
hurd|)
echo " ${LONGNAME} is not yet supported by grub-mkconfig.” >&2
;;
esac
done
adjust_timeout
[/code]
J’en fais quoi ? lol