Configuring Linux
System administration
23 July 2012

Загрузка CentOS 6 с флэшки: прямые руки

From Sandbox
Каждый раз, когда читаешь рекомендации по созданию загрузочных флэх (в частности для Linux live USB flash), автор предлагает начисто отформатировать съемное устройство, а при наличии извращенной фантазии — отформатировать под ext2/3/4, а при особо извращенной — он создает 2 раздела, а то и вовсе лезет в прошивку контроллера флэшки, дабы создать там эмуляцию cdrom. Или в рекомендации используется софт, который делает то же самое — но автоматически.

Извольте, но у меня уже есть загрузочная, боевая флэшка, с которой загружается с помощью Grub4dos и пары прямых рук целый арсенал софта — от windows XP PE до установки гипервизора VMWare ESXi… Итак, я захотел портировать туда еще и Live CD для новой Cent OS 6.

Что мне понадобится:
1) собственно, флэшка c ФС FAT16/32 с установленным и работающим загрузчиком grub4dos (при желании его можно установить, ничего не форматируя), размером как минимум 1 Гб
2) скачанный iso с CentOS 6 Live

Задача, которую мы себе ставим: получить совместимый с grub4dos способ загрузки, сохранив при этом меню вариантов загрузки, доступное на оригинальном Live CD.

Итак, поехали.

1. Создаем папку CentOS в корне флэшки. Копируем туда из ISO папки LiveOS и isolinux (в последней нужны только initrd0.img, memtest, vmlinuz0)

2. Проверяем, чтобы у флэшки как диска был лейбл, если его еще нет — называем, пусть для примера лейбл будет ZVER.

3. Вытаскиваем isolinux.cfg из isolinux уровнем выше в CentOS. Переименовываем его в centos.lst. Теперь потребуется переделать его из формата isolinux в формат grub4dos. Начинаем его править.
С начала и до строки label linux0 всё — удаляется. Все строки, начинающиеся с label комментируются знаком #. Словосочетание Menu label — превратить в title. Теперь самое сложное — параметры kernel и initrd для grub4dos. Смотрите сами и «найдите 10 отличий»:

было:
label linux0
menu label Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=CentOS-6.2-i386-LiveCD rootfstype=auto ro liveimg quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0

стало:
#label linux0
title Boot
kernel /CentOS/isolinux/vmlinuz0 root=live:LABEL=ZVER live_dir=/CentOS/LiveOS rootfstype=auto ro liveimg quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0
initrd /CentOS/isolinux/initrd0.img

а в конце файла должно быть так:
#label memtest
title Memory Test
kernel /CentOS/isolinux/memtest

Вот что в итоге должно содержаться в файле centos.lst
timeout 100

#label linux0
title Boot
kernel /CentOS/isolinux/vmlinuz0 root=live:LABEL=NARYA live_dir=/CentOS/LiveOS rootfstype=auto ro liveimg quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0
initrd /CentOS/isolinux/initrd0.img
#title default
#label linuxtext0
title Boot (Text Mode)
kernel /CentOS/isolinux/vmlinuz0 root=live:LABEL=NARYA live_dir=/CentOS/LiveOS rootfstype=auto ro liveimg 3 quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0
initrd /CentOS/isolinux/initrd0.img
#label linux0
title Boot (Basic Video)
kernel /CentOS/isolinux/vmlinuz0 root=live:LABEL=NARYA live_dir=/CentOS/LiveOS rootfstype=auto ro liveimg quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0 xdriver=vesa nomodeset
initrd=/CentOS/isolinux/initrd0.img
#label install0
title Install
kernel /CentOS/isolinux/vmlinuz0 root=live:LABEL=NARYA live_dir=/CentOS/LiveOS rootfstype=auto ro liveimg liveinst noswap nolvmmount rd.luks=0 rd.md=0 rd.dm=0
initrd=/CentOS/isolinux/initrd0.img
#label textinstall0
title Install (Text Mode)
kernel /CentOS/isolinux/vmlinuz0 root=live:LABEL=NARYA live_dir=/CentOS/LiveOS rootfstype=auto ro liveimg textinst noswap nolvmmount rd.luks=0 rd.md=0 rd.dm=0
initrd /CentOS/isolinux/initrd0.img
#label memtest
title Memory Test
kernel /CentOS/isolinux/memtest

title Back to main menu
configfile /menu.lst


4. В корневом menu.lst добавляем 2 строчки:
title CentOS 6 LIVE
configfile /CentOS/centos.lst

Всё, можно опробовать нашу флэшку на загружаемость! Но прежде чем перезагружаться — советую посмотреть в сторону решений на основе эмулятора QEMU, например, такого — здорово экономит время при отладке.

Загруженный с флэшки CentOS Live прекрасно ставится на жесткий диск штатным способом. Таким образом, имеем 2 в 1 — еще и установочный дистрибутив.

+5
38.7k 101
Comments 6