Eu tentei criar um wiki da comunidade sobre esses tópicos, apenas copiei minha resposta de aqui abaixo. Espero que isso ajude!
Por isso, criei um arquivo simples 39_iso
dentro de /etc/grub.d/
para carregar meus ISOs. Eu tenho uma cópia do Ubuntu 10.10, Clonezilla e SystemRescueCD. Minhas entradas garantem que o arquivo ISO esteja disponível dentro de /iso/
antes de adicionar a entrada do menu. Por exemplo, o Clonezilla irá carregar na memória, para que eu possa clonar meu disco rígido sempre que eu quiser!
Ubuntu 10.10:
if test -e /iso/ubuntu-10.10-desktop-amd64.iso ; then
isofile="/iso/ubuntu-10.10-desktop-amd64.iso"
echo "Found Ubuntu 10.10 (x64) ISO: ${isofile}" >&2
cat << EOF
menuentry "Ubuntu 10.10 (x64) ISO"
{
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile
initrd (loop)/casper/initrd.lz
}
EOF
fi
Clonezilla:
if test -e /iso/clonezilla-live-1.2.6-24-amd64.iso ; then
isofile="/iso/clonezilla-live-1.2.6-24-amd64.iso"
echo "Found Clonezilla Live ISO: ${isofile}" >&2
cat << EOF
menuentry "Clonezilla Live 1.2.6-24-amd64 ISO"
{
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live live-config union=aufs nolocales noprompt ocs_lang="en_US.UTF-8" ocs_live_keymap="NONE" vga=791 ip=frommedia toram=filesystem.squashfs findiso=$isofile
initrd (loop)/live/initrd.img
}
EOF
fi
SystemRescueCD
if test -e /iso/systemrescuecd-x86-1.6.2.iso ; then
isofile="/iso/systemrescuecd-x86-1.6.2.iso"
echo "Found SystemRescueCD ISO: ${isofile}" >&2
cat << EOF
menuentry "SystemRescueCD 1.6.2 (x64) ISO"
{
loopback loop $isofile
linux (loop)/isolinux/rescue64 setkmap=us docache isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
EOF
fi
Também fixei como o GRUB nomeia o Windows 7 como Windows 7 (loader)
para algo mais interessante como Windows 7 Professional (x64)
:
if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then
LONGNAME="Windows 7 Professional (x64)"
elif [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Substituiu uma seção como a seguinte:
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Dentro de 30_os-proper
do GRUB