Посредством данного метода можно запустить с флешки не только CentOS LiveCD, в качестве примера я так же добавлю возможность запуска утилиты проверки оперативной памяти Memtest.
Необходимые компоненты:
- BootICE
- Grub4Dos
- Любой эмулятор ОС с поддержкой USB (VirtualPC, VirtualBox, QEMU, VMware и т.п.) я буду пользоваться ModalLiveCD
- Флешка
- ISO образы CentOS и MemTest
Изменение MBR
При помощи BootICE произведем манипуляцию с загрузочной областью флешки, выбрав в выпадающем меню Destination Disk нашу флешку:
В открывшемся окне необходимо выбрать опцию GRUB4DOS:
И нажать кнопку Install / Config
Добавление образов в Grub
Далее необходимо из архива Grub4Dos извлечь в корень флешки файл grldr, так же в корне создать файл menu.lst, каталоги centos и memtest. Каталог memtest будет содержать образ тестировщика mt420.iso, каталог centos - isolinux, LiveOS, в каталоге isolinux необходимо переименовать файл isolinux.cfg в centos.lst, удалить первые строки до #label linux0, переименовать все menu label в title, изменить путь к initrd, до редактирования:
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=CentOS-6.3-i386-LiveCD rootfstype=auto ro liveimg quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0
после:
kernel /centos/isolinux/vmlinuz0 root=live:LABEL=CENTOS 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 изменить kernel memtest на kernel /CentOS/isolinux/memtest, в краце, у меня получилось следующее:
title Boot
kernel /centos/isolinux/vmlinuz0 root=live:LABEL=CENTOS 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
теперь необходимо изменить файл menu.lst, добавив в него MemTest и centos.lst:
map (hd0,0)/memtest/mt420.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot
title CentOS 6 LIVE
find --set-root --ignore-cd /usbdrive.tag
configfile /centos/isolinux/centos.lst
И в самом конце - в корне диска необходимо создать пустой файл usbdrive.tag и задать label флешке CENTOS.
Пока писал статью, подумал что не плохо бы было добавить возможность выключения компьютера и возможность запуска CentOS-Netinstall, ниже приведу только строки, которые добавил в menu.lst, думаю из контекста и так будет понятно, что к чему:
map /centos/CentOS-6.3-i386-netinstall.iso (hd32)
map --hook
chainloader (hd32)
boot
title Shutdown PC
halt
Тестирование
- Запускаем ModalLiveCD
- Нажимаем кнопку Run the LiveUSB
- В открывшемся окне выбираем диск (флешку) с которого будет производиться загрузка
- Создаем и сохраняем файл вирутальной машины в удобном для себя месте
- После запуска, смотрим результат