Ещё одна статья про мультизагрузочную флешку

Итак, если у вас появилась навязчивая идея о мультизагрузочной флешке и много времени, сделайте dd if=xubuntu.iso of=/dev/sdX и не мучайтесь доставайте ваш бубен, сейчас мы эту идею будем реализовывать.

Подготовка

Для начала флешку нужно будет отформатировать. Если вы не знаете, что при этом все данные с неё будут удалены, то лучше закройте эту страницу от греха подальше. Если же вы вдруг забыли, как именуются диски в Linux, прочитайте вот эту инструкцию.

Отформатировать флешку можно разными способами, я это сделаю из консоли:

fdisk /dev/sdX

затем o для создания новой таблицы разделов, потом n для создания нового раздела (для простоты создадим один), затем, пока не надоест, enter, и в конце концов w для записи изменений.

После создания раздела запускаем само форматирование:

mkfs.vfat -n RESCUE /dev/sdX1

Всё, флешка готова. Только мультизагрузочности, да и вообще загрузочности не хватает...

Чтобы исправить сей досадный недостаток, открываем http://grub4dos.chenall.net/ и закрываем, потому что там одни иероглифы нажимаем на крупный заголовок типа grub4dos-0.4.6a-2015-08-07.7z. Затем на открывшейся странице ищем таблицу с зелёным заголовком и заветную строку File: grub4dos-0.4.6a-2015-08-07.7z 496K. Скачиваем, распаковываем, переходим в распакованный каталог в терминале и командуем:

./bootlace.com /dev/sdX

После этого флешку нужно переткнуть и подумать, какие именно инструменты должны на ней присутствовать.

Если вам нужен Hiren’s BootCD (полезная штука для тех, кто часто моет и вставляет окошки), скачайте его и распакуйте исошник в корень флешки (распаковать нужно именно образ диска, а не архив, в котором он находится).

Теперь скопируйте файл grldr из архива с grub4dos в корень флешки. Рядом с ним должен находиться конфигурационный файл menu.lst. Если вы добавляли Hiren’s BootCD, возмите его из каталога HBCD, если нет - создайте.

Йо-хо-хо и всё такое

Если вы не истинный красноглазик и всё ещё пинаете дохлую лошадь, положите в корень флешки её образ и файл firadisk.img из вот этого архива. После этого добавьте в menu.lst следующее:

title Install Windows XP (part 1)
map --mem /firadisk.img (fd0)
map --mem /winxp.iso (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (hd32)
chainloader (hd32)

title Install Windows XP (part 2)
map --mem /firadisk.img (fd0)
map --mem /winxp.iso (hd32)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (hd0)+1

Установка этой самой лошади состоит из двух этапов: предварительного (с какими-то матюгами про загрузку файлов на синем фоне) и окончательного (когда винда рассказывает, какая она мощная и красивая). На каждом этапе образ сначала распаковывается в оперативную память, потом начинается загрузка системы.

На первом этапе загрузка идёт непосредственно с образа, при этом нужно успеть нажать "any key for boot from CD" (надпись появляется сразу после распаковки образа в память, не пропустите).

На втором этапе загрузка должна идти с жёсткого диска, при этом ничего дополнительно нажимать не потребуется, образ должен подхватиться сам.

Ubuntu

С непарнокопытными закончили, переходим к парнокопытным и другой живности.

Для добавления Xubuntu 14.04 достаточно закинуть образы на флешку и добавить в menu.lst следующее (обратите внимание на номер релиза в названии образа):

title Xubuntu 14.04.3 live x32
find --set-root /xubuntu-14.04.3-desktop-i386.iso
map --mem /xubuntu-14.04.3-desktop-i386.iso (hd32)
map --hook
root (hd32)
kernel /casper/vmlinuz boot=casper iso-scan/filename=/xubuntu-14.04.3-desktop-i386.iso
initrd /casper/initrd.lz

title Xubuntu 14.04.3 live x64
find --set-root /xubuntu-14.04.3-desktop-amd64.iso
map --mem /xubuntu-14.04.3-desktop-amd64.3.iso (hd32)
map --hook
root (hd32)
kernel /casper/vmlinuz.efi boot=casper iso-scan/filename=/xubuntu-14.04.3-desktop-amd64.iso
initrd /casper/initrd.lz

Чтобы система загружалась с русской локалью, в конце строки kernel допишите locale=ru_RU.UTF-8.

Debian

Для добавления Debian нужно скопировать на флешку CD или netinst образ (для stable образ лежит на странице https://www.debian.org/distrib/netinst.en.html, для testing на https://www.debian.org/devel/debian-installer/index.en.html), а так же файлы initrd.gz и vmlinuz. Скачать их можно следующим образом: открываете страницу с которой брали ссылку на дистрибутив (файлы с других страниц работать не будут, т.к. они не соответствуют скачанному вами образу), там ищете раздел Tiny CDs, flexible USB sticks, etc. или other images (netboot, USB stick, etc.), или аналогичный, выбираете нужную архитектуру и попадаете на ftp-шник. Нужные файлы лежат в каталоге hd-media.

Меню на этот раз будет очень простым, т.к. образ будет находиться автоматически:

title Debian
kernel /vmlinuz
initrd /initrd.gz
boot

Если образ не находится, проверьте, соответствует ли он загрузочным файлам. Кроме того, образ не должен быть фрагментированным. Самый простой способ избежать фрагментации - записать его на флешку первым, сразу же после её форматирования и установки загрузчика. Другой вариант - загрузиться в винду из состава Hiren’s BootCD и воспользоваться одним из дефрагментаторов. Ещё один способ - создайте на диске небольшой раздел и положите образ туда. После установки этот раздел можно будет удалить или использовать как swap.

Centos 7

Достаточно просто скопировать образ на флешку и добавить в меню следующее (взято с https://www.rmprepusb.com/tutorials/126_Fedora и адаптировано для использования CentOS-7-x86_64-LiveGNOME-1611.iso):

title Boot CentOS 7 from ISO\n Direct boot CentOS 7 from ISO file
#ISO is full path to ISO - no spaces
set ISO=/CentOS-7-x86_64-LiveGNOME-1611.iso
#LBL=CD VOLUME LABEL OF THE ISO - spaces replaced by \\x20
set LBL=CentOS-7-x86_64-LiveGNOME-1611

map %ISO% (0xff) || echo -e $[0147]%ISO% IS NOT CONTIGUOUS! && map --mem %ISO% (0xff)
map --hook
root (0xff)

# CDLABEL must match ISO volume label (usually file name)
# NTFS is not supported! use FAT32 or ext2/3/4
# ISO must not have spaces

echo
echo -e $[1174]WARNING: THIS WILL NOT WORK ON NTFS DRIVES (use FAT32 or ext2/3/4).
echo

kernel /isolinux/vmlinuz0 root=live:CDLABEL=%LBL% iso-scan/filename=%ISO% rd.live.image vga=791
initrd /isolinux/initrd0.img
boot

Комментарии (RSS)

Спасибо за статью! Действительно хороший рабочий способ. Особенно пригодилось про ХР.

Ответить Отменить ответ

Если часто приходиться с этим возиться, то лучше присмотреть решение в виде ZM-VE400, либо аналоги.

Ответить Отменить ответ