Поддержка > Руководства и инструкции

[How-To] Делаем мультизагрузочную флэшку из ISO-образов с помощью Grub2.

(1/5) > >>

FSnow:
    Задача: Сделать мультизагрузочную флэшку с дистрибутивами Runtu и memtest86+. Дистрибутивы должны грузиться из ISO-образов (кроме memtest86+).

    Примечание: Все действия должны проводиться в системе с уже установленным Grub2. Если в вашей системе не установлен Grub2, то воспользуйтесь LiveCD, в котором он установлен.

0. Форматируем флэшку в fat32;

1. Устанавливаем на флэшку Grub2:

--- Код: ---sudo grub-install --no-floppy --root-directory=/media/FLASH /dev/sdX
--- Конец кода ---

!!! ВАЖНО !!!:
       /media/FLASH — точка монтирования и
      /dev/sdX — имя устройства флэшки
      Обязательно замените эти значения на свои!

После выполнения команды, на флэшке появится директория boot;

2. Скачиваем необходимые образы:
    Runtu XFCE 14.04.2 - 20150309
    Runtu LITE 14.04.1 - 20140914
    Runtu GNOME 12.04.4 - 201402
    Runtu XFCE 12.04.4 - 201402
    Runtu LITE 12.04.4 - 201402
    Runtu LITE 10.04 - 201302
    Memtest86+

3. Создаем на флешке директорию iso и копируем в нее скачанные образы;

4. В директории boot/grub создаем и редактируем файл grub.cfg
Содержимое файла:

--- Код: ---menuentry "Runtu XFCE 14.04.2 (3.16)" {
    set isofile=/iso/runtu-xfce-14.04.2-3.16_20150309.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper maybe-ubiquity iso-scan/filename=$isofile locale=ru_RU keyboard-configuration/layoutcode?=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Runtu XFCE 14.04.2 (3.13)" {
    set isofile=/iso/runtu-xfce-14.04.2-3.13_20150309.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper maybe-ubiquity iso-scan/filename=$isofile locale=ru_RU keyboard-configuration/layoutcode?=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Runtu LITE 14.04.1" {
    set isofile=/iso/runtu-lite-14.04.1_20140914.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper maybe-ubiquity iso-scan/filename=$isofile locale=ru_RU keyboard-configuration/layoutcode?=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Runtu GNOME 12.04.4" {
    set isofile=/iso/runtu-gnome-12.04.4_201402.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper maybe-ubiquity iso-scan/filename=$isofile locale=ru_RU keyboard-configuration/layoutcode?=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Runtu XFCE 12.04.4" {
    set isofile=/iso/runtu-xfce-12.04.4_201402.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper maybe-ubiquity iso-scan/filename=$isofile locale=ru_RU keyboard-configuration/layoutcode?=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Runtu LITE 12.04.4" {
    set isofile=/iso/runtu-lite-12.04.4_201402.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper maybe-ubiquity iso-scan/filename=$isofile locale=ru_RU keyboard-configuration/layoutcode?=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Runtu LITE 10.04" {
    set isofile=/iso/runtu-lite-10.04_201302.iso
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile locale=ru_RU console-setup/layoutcode=ru noeject noprompt splash --
    initrd (loop)/casper/initrd.gz
}

menuentry "Memtest 86+ 5.01" {
    linux16 /iso/memtest86+-5.01.bin
}

menuentry "Shutdown the Computer" {
    halt
}

menuentry "Reboot the Computer" {
    reboot
}
--- Конец кода ---

5. Грузимся с флэшки — проверяем результат.

--- Код: ---sudo qemu-system-i386 -usb /dev/sdX
--- Конец кода ---
/dev/sdX - заменить на своё!

    В дальнейшем, чтобы добавить новый образ, просто копируете его в директорию iso, и добавляете запись в grub.cfg. Но учтите, что не все дистрибутивы поддерживают загрузку из iso-образа.

l_l_lblTHuK:
А для grub4dos параметры загрузки Рунту не подскажете? А то смутно помню, что там не совсем тривиально было...

kompilainenn:
нужно добавить, что далеко не все образы с линуксом позволяют себя грузить таким образом

vmf:
Я делал мультизагрузочную флешку несколько по другому - просто установил систему на флешку, отформатировав ее в ext2...
(это не важно, хотя в случае с ext2 не бывает проблем из-за фрагментирования iso-образов, что иногда выплывает на fat32)
Oбразы складываю в каталог boot, туда-же положил скриптик, запуск которого автоматически правит меню груба на флешке.
С небольшими доработками скриптик можно прикрутить к варианту FSnow
собственно скриптик: ПоказатьСкрыть
#!/bin/bash
cat<<EOF >40_custom
#!/bin/sh
exec tail -n +3 \$0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
#

EOF
for iso in $(ls -1 *.iso); do
 cat<<EOF >>40_custom
menuentry '$iso' {
   insmod ext2
   set root='(hd0,1)'
   search --no-floppy --fs-uuid --set b8d9da3a-788c-43d7-90bc-225c24d354db
   loopback loop /boot/$iso
   linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/$iso
   initrd (loop)/casper/initrd.lz
}

EOF
done
grep -B1000 "### BEGIN.*custom ###" ./grub/grub.cfg|sed '$d'|tee grub.cfg
echo "### BEGIN /etc/grub.d/40_custom ###"|tee -a grub.cfg
./40_custom|tee -a grub.cfg
echo "### END /etc/grub.d/40_custom ###"|tee -a grub.cfg
mv grub.cfg ./grub/grub.cfg

Для работы в моем варианте нужно создать символьную ссылку "40_custom" на файл "../etc/grub.d/40_custom"
Для варианта FSnow достаточно приписать пути к iso-шкам или переложить их boot, и подкорректировать параметры загрузки для формируемых пунктов меню.

FSnow:

--- Цитата: l_l_lblTHuK от Июль 14, 2011, 18:47:50 ---А для grub4dos параметры загрузки Рунту не подскажете? А то смутно помню, что там не совсем тривиально было...

--- Конец цитаты ---
Никогда не пользовался grub4dos. Попробуйте так:

--- Код: ---title Runtu Lite 10.04 Live
map /iso/runtu-lite_10.04-201107-i386.iso (hd32)
map --hook
root (hd32)
kernel /casper/vmlinuz boot=casper iso-scan/filename=/iso/runtu-lite_10.04-201107-i386.iso locale=ru_RU.UTF-8 console-setup/layoutcode=ru noeject noprompt splash --
initrd /casper/initrd.lz

--- Конец кода ---


--- Цитата: remderbauer от Июль 14, 2011, 19:44:47 ---нужно добавить, что далеко не все образы с линуксом позволяют себя грузить таким образом

--- Конец цитаты ---
К сожалению, это так. Добавил.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии