Загрузка с iso-образа через GRUB позволяет загрузить систему с образа диска в формате ISO, в частности, Live CD, таким же образом, как и с использованием физического дисковода и CD или DVD. Ну, не точно таким же, но очень похожим. И, соответственно, вы можете, к примеру, проверить файловую систему, побродить в Интернете, поработать с дисковыми разделами, и так далее. И самое приятное в том, что для этого не надо прилагать больших усилий, надо просто немного поменять конфигурацию GRUB’а. Вот как это сделать.
Размещение iso-образов
Образ диска в формате iso должен размещаться в том разделе, с которого загружается система. Для указания загрузчику раздела надо помнить, как обозначаются разделы в конфигурационных файлах GRUB’а. Первый раздел первого диска (sda1) будет обозначаться как «(hd0,1)», второй раздел (sda2) как «(hd0,2)» и так далее.
Добавление пунктов в меню загрузчика
Для добавления пунктов меню для загрузки с образов iso нужно добавить соответствующие записи в файл /etc/grub/40_custom. Формат записей будет выглядеть примерно так:
menuentry "<Название пункта меню>" {
set isofile="<Полный путь к файлу iso>"
loopback loop <Загрузочный раздел>$isofile
<Дополнительные параметры (kernel, initrd,...)>
}
Например, для GParted пункт меню будет выглядеть так:
menuentry "GParted Live CD i486" {
set isofile="/boot/iso/gparted-live-0.18.0-1-i486.iso"
loopback loop (hd0,1)$isofile
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=${isofile}
initrd (loop)/live/initrd.img
}
После загрузки этого пункта меню вы увидите работающую систему с запущенной программой GParted.
Для Tails пункт будет выглядеть следующим образом:
menuentry "Tails 1.5 i386" {
set isofile="/boot/iso/tails-i386-1.5.iso"
loopback loop (hd0,1)$isofile
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live config apparmor=1 security=apparmor nopersistent timezone=Etc/UTC block.events_dfl_poll_msecs=1000 noautologin module=Tails findiso=$isofile
initrd (loop)/live/initrd.img
}
Загруженная система будет выглядеть так:
А для Kali Linux чуть попроще:
menuentry "Kali Linux 2.0 i386" {
set isofile="/boot/iso/kali-linux-2.0-i386.iso"
loopback loop (hd0,1)$isofile
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live username=root hostname=kali findiso=${isofile}
initrd (loop)/live/initrd.img
}
И она, соответственно, будет выглядеть так:
После изменения файла /etc/grub.d/40_custom не забывайте выполнять команду
update-grub



Наконец то нашёл то, что работает. На остальных сайтах написано, что в строке linux (loop)/live… нужно писать iso-scan/filename=$isofile root=(loop). Но с этими параметрами live-система не загружается. Загружается только с findiso=${isofile}. Огромное спасибо!