The Grml rescue system supports booting the Grml ISO from a hard disk. This provides a decent way to have a Grml ISO in /boot/grml/ on your hard disk and as long as the hard disk and its GRUB boot loader is working you can boot the Grml rescue system without having a rescue CD, USB pen or PXE environment available. To make this task as easy as possible we've created grml-rescueboot which integrates ISO -booting into GRUB. The grml-rescueboot package includes a script for update-grub which looks for Grml ISO images in /boot/grml and automatically adds an entry for each image.

Grml ISO

GRUB2 bootloader

grml-rescueboot is available via 'apt-get install' in Debian/wheezy and Debian/sid and Ubuntu precise/universe and Ubuntu quantal/universe: apt-get install grml-rescueboot If you're running Debian/squeeze you can just use the grml-rescueboot package from Debian wheezy/sid. If you're using a different system/distribution the following commands should set up grml-rescueboot for you: wget -O /etc/default/grml-rescueboot https://raw.github.com/grml/grml-rescueboot/master/etc/default/grml-rescueboot wget -O /etc/grub.d/42_grml https://raw.github.com/grml/grml-rescueboot/master/42_grml chmod 755 /etc/grub.d/42_grml Note: we'd love to see grml-rescueboot being available outside of Debian and Ubuntu as well, if you're interested in providing RPMs, ebuilds, arch packages,… please let us know!

Once you've install the grml-rescueboot package the setup is as simple as: cd /boot/grml wget http://download.grml.org/grml64-full_2012.05.iso wget http://download.grml.org/grml64-full_2012.05.iso.sha1 sha1sum -c grml64-full_2012.05.iso.sha1 update-grub

To be able to access the harddisk of the system you're booting from you need to load the ISO into RAM (using the toram bootoptions). You also might want to autostart the SSH server to be able to access the system remotely using ssh=somepassword. Enabling such bootoptions is as simple as running: echo 'CUSTOM_BOOTOPTIONS="ssh=secretpasswd toram"' >> /etc/default/grml-rescueboot update-grub

Are using your own hand-crafted GRUB configuration with a Grml ISO which used to work until and including Grml release 2011.05 but fails with 2011.12 and later ISOs? If so then very probably the live-media-path=... bootoption is missing in the linux GRUB command line of your Grml ISO boot entry. Please consider using grml-rescueboot instead. It does all the magic for you and uses the loopback mechanism with “loopback loop …” and “configfile /boot/grub/loopback.cfg”, allowing to use the bootoptions as required by the according Grml ISO and therefore not breaking backwards compatibility. If you really can't use grml-rescueboot for whatever reason (please talk to us then!) have a look at the following configuration examples.

Those grub.cfg configuration entries are meant for reference purposes only - please use grml-rescueboot instead of manually creating such boot entries. Also be aware that the “insmod”, “set root=…” and “search …” options are system specific:

menuentry "Grml Rescue System (grml64-full_2012.05.iso)" { insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set <snipped> iso_path="/boot/grml/grml64-full_2012.05.iso" export iso_path kernelopts=" ssh=password toram " export kernelopts loopback loop "/boot/grml/grml64-full_2012.05.iso" set root=(loop) configfile /boot/grub/loopback.cfg }

menuentry "grml64-small 2012.05 (amd64)" { insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set <snipped> echo 'Loading Grml kernel (amd64) ...' linux /boot/grml/vmlinuz boot=live noeject noprompt findiso=/boot/grml/grml64-small_2012.05.iso toram bootid=grml64small201205 ssh=secret live-media-path=/live/grml64-small/ echo 'Loading Grml initrd (amd64) ...' initrd /boot/grml/initrd.img }

menuentry "grml64-full 2012.05 (amd64)" { insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set <snipped> iso_path="/boot/grml/grml64-full_2012.05.iso" export iso_path kernelopts=" ssh=password toram " export kernelopts loopback loop "/boot/grml/grml64-full_2012.05.iso" set root=(loop) source /boot/grub/grml64-full_default.cfg }

title grml64-small 2012.05 (amd64) root (hd0,1) kernel /boot/grml/vmlinuz boot=live noeject noprompt findiso=/boot/grml/grml64-small_2012.05.iso toram bootid=grml64small201205 ssh=secret live-media-path=/live/grml64-small/ initrd /boot/grml/initrd.img