Свершилось то, о чём так долго говорили большевики. С выходом Grub2 появилась возможность грузить iso-образа с флешки напрямую, минуя их распаковку. Плюсы такого способа очевидны - ликвидируется зоопарк различных initrd.gz, конфигов ядер и т.д. Недостатки, конечно, тоже есть (куда уж без них). Например, загрузка из iso немного дольше, чем из распакованного образа.
Преамбула такова: при создании новой флешки способ, описанный в первой части, не подходит, поскольку изменились параметры установки grub. Теперь загрузчик устанавливается не напрямую из командной строки grub, а через скрипт grub-install. Итак, всё по порядку.
Для начала создадим раздел на флешке, как описано в указанном выше посте. Затем смонтируем её и выполним команду
Для загрузки из iso-образа в grub.cfg указываем примерно следующую конструкцию:
Надеюсь, всё вышеуказанное достаточно понятно и без разъяснений.
Крайне пользительно в целях расширения кругозора ознакомиться с документом Linux Commands for GRUB2
Преамбула такова: при создании новой флешки способ, описанный в первой части, не подходит, поскольку изменились параметры установки grub. Теперь загрузчик устанавливается не напрямую из командной строки grub, а через скрипт grub-install. Итак, всё по порядку.
Для начала создадим раздел на флешке, как описано в указанном выше посте. Затем смонтируем её и выполним команду
sudo grub-install --root-directory=/media/disk /dev/sdb.Здесь /media/disk - это точка монтирования флешки (мы указываем скрипту куда записывать модули grub), а /dev/sdb - имя устройстка, в MBR которого будет записан загрузчик. Затем создадим конфигурацию загрузчика командой
sudo grub-mkconfig -o /media/disk/boot/grub/grub.cfg.Скрипт прочтёт содержимое файлов /etc/grub.d/ и сгенерирует конфигурационный файл. Мы можем заранее добавить свои опции в файл /etc/grub.d/40_custom или отредактировать уже готовый файл. Структура его очень проста и во многом схожа со старым menu.lst.
Для загрузки из iso-образа в grub.cfg указываем примерно следующую конструкцию:
menuentry "Clonezilla live" {
loopback loop /clonezilla-live-20091230-karmic.iso
linux (loop)/live/vmlinuz boot=live union=aufs ocs_live_keymap="NONE" ocs_lang="en_US.UTF-8" nolocales noprompt vga=773 ip=frommedia toram=filesystem.squashfs findiso=/clonezilla-live-20091230-karmic.iso
initrd (loop)/live/initrd.img
}
Надеюсь, всё вышеуказанное достаточно понятно и без разъяснений.
Крайне пользительно в целях расширения кругозора ознакомиться с документом Linux Commands for GRUB2
Спасибо. Отличная статья.
ОтветитьУдалитьЕсли мне не изменяет память, то если ОЗУ не хватит для размещения в нем образа, то он не загрузится. Или я не прав?
ОтветитьУдалитьВполне возможно, не проверял. Но кто мешает завести на флешке swap-раздел и активировать его при загрузке.
ОтветитьУдалитьКакой своп? Для груба нет этого понятия же... На сколько помню, он образ перекидывает в ОЗУ и передает ему управление.
ОтветитьУдалитьэто уже зависит от собранного образа системы. Ubuntu, например, умеет активировать найденные свопы на этапе загрузки: "Tmpfs can fall back on swap (Ubuntu LiveCD scripts will mount any swap it finds), which is excellent for a bit of overflow, but if you regularly need to fall back on swap, performance will naturally suffer." Цитата взята отсюда: https://wiki.ubuntu.com/BootToRAM
ОтветитьУдалитьСпасибо за наводку. Надо будет покопаться, не имел счастья еще с этим :)
ОтветитьУдалить