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

Каждый раз, когда читаешь рекомендации по созданию загрузочных флэх (в частности для 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
  • 35,2k
  • 6
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 6
  • +2
    Спасибо за статью! Было бы интересно увидеть ее версию с загрузкой Windows. А еще лучше — весь ваш конфиг Grub4DOS
    • 0
      Что касается винды:
      title Bart PE
      chainloader /minint/setupldr.bin

      title Recovery Console of Windows NT/2K/XP
      chainloader /cmdcons/setupldr.bin
      write 0x7C03 0x63646D63
      write 0x7C07 0x00736E6F

      title Windows XP SP3 setup
      map --unmap=0:0xff
      map --unhook
      savedefault
      find --set-root --ignore-cd /usbdrive.tag
      configfile /winsetup.lst

      (да, setup! дистирбутив подготавливается при пом. WinSetupFromUSB, прямая установка из оригинальной компоновки с носителей, отличных от CD/DVD, невозможна)
    • 0
      В такую статью желательно прикладывать образ вашей флешки. :)
      • 0
        Только образы Windows и другого проприетарного софта не забыть вычистить. После чего образ, боюсь станет менее полезным.
        • 0
          Нет, для этого есть рутрекер. А статья про другое. И она архи-полезна!
        • 0
          Только вот совет не работает. Вообще, когда я собирал загрузочную флэшку в прошлый раз, удалось сделать ее только с 5 CentOS'ом. С 6 не вышло. По этим советам тоже не выходит. То есть флэшка-то получается, но вот в середине загрузки появляется kernel panic. В тот раз выкрутился тем, что заменил ISOшник на 5.8 NetInstall, а в процессе установки указал путь к репозиторию 6-ки. Поставилось. Есть мнение, что дело в EFI, но я пока в этом не уверен. Так или иначе, но 6-ка с флэшки у мну не ставится даже NetInstall'ом. Что печально, потому что в 5-ке ядро не поддерживает сетевухи Atheros, популярные во всяких тонких и не очень клиентах.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.