Руководство по мультизагрузке дистрибутивов на базе Linux посредством BCDW

OSzone.net » Microsoft » Автоматическая установка » Автоматическая установка Windows XP » Руководство по мультизагрузке дистрибутивов на базе Linux посредством BCDW
Автор: Сергей Тренин
Иcточник: www.oszone.net
Опубликована: 26.02.2009

Представляю статью, которую написал Сергей Тренин, известный на конференции OSZone под ником greyzy.

Введение

В этой статье рассматривается создание мультизагрузочного диска с дистрибутивами Linux и другими программными продуктами. В качестве общего загрузчика используется Bootable CD Wizard (BCDW). Предполагается, что читатель знаком с работой загрузчика BCDW. Если нет, необходимо изучить статью Создание мультизагрузочного CD на основе Bootable CD Wizard. Под папкой проекта в процессе сборки подразумевается папка XPCD (для удобства применения CDImage).

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

Состав диска

В состав диска включены следующие программные продукты и дистрибутивы Linux:

BCDW Linux

Краткая теория

Материал для данного раздела почерпнут из этой замечательной статьи.

Формат запуска загрузчика какого-либо дистрибутива на базе Linux такой:

/isolinux/isolinux.bin /isolinux/vmlinuz*** initrd=/isolinux/initrd.gz*** init=**** moreoptions*****

Каким образом формируются строки запуска для наших дистрибутивов? Распаковав ISO-образ нашего дистрибутива, мы ищем файл isolinux.cfg, находящийся либо в корне ISO-образа, либо в папке isolinux, либо в папке boot, либо boot\isolinux. Также, вы можете увидеть файл syslinux.cfg, почти такого же содержания. Различие загрузчиков, как гласит руководство к пакету syslinux, следующее:

  1. SYSLINUX - MS-DOS/Windows FAT filesystem
  2. ISOLINUX - ISO9660 CD-ROM

То есть isolinux - для компакт-дисков, а syslinux для FAT, в том числе и для съемных USB носителей («флэшек»).

В файле isolinux.cfg описываются параметры запуска, цвета фона, расположение строк и подобные параметры. Нас же интересуют непосредственно параметры запуска дистрибутива. Находим примерно такие строки:

label GParted Live
MENU DEFAULT
MENU LABEL GParted Live (Default settings)
kernel /live/vmlinuz1
append initrd=/live/initrd1.img boot=live union=aufs noswap noprompt vga=791 ip=frommedia nolocales
TEXT HELP
ENDTEXT

Таким образом, приглядевшись, мы видим, что ядро (kernel) - это файл vmlinuz1, RAM-диск - это файл initrd1.img, а остальное - это опции запуска.

Для init= пишем то, что указано в разделе init= конкретного конфигурационного файла

Добавление собственных дистрибутивов

Вообще, файл isolinux.bin есть во всех рассмотренных дистрибутивах, но для удобства мы будем использовать один такой файл для всего нашего проекта.

  1. Создаем в папке проекта папку isolinux
  2. Загружаем пакет syslinux (у меня это была версия 3.72, страница загрузки находится здесь)
  3. Находим в архиве папку core и извлекаем оттуда файл isolinux.bin в папку isolinux. Таким образом, мы не плодим файлы isolinux.bin на диске и запускаем его последнюю и, хочется верить, самую стабильную и многофункциональную версию.

1. offline NT and registry editor

Создаем в папке проекта папку offline и копируем туда содержимое ISO-образа. Также добавляем в эту папку драйверы для дисков (с этого же сайта)

BCDW Linux

В bcdw.ini пишем

/isolinux/isolinux.bin /offline/vmlinuz initrd=/offline/initrd.cgz,/offline/scsi.cgz rw vga=1 init=/linuxrc ; Offline

2. Gnome Partition Editor 0.3.9

Создаем в папке проекта папку live и копируем туда содержимое папки live ISO-образа. Если вы создадите папку с другим именем, загрузка не произойдет - дистрибутив будет упрямо искать папку live. Возможно, эта проблема будет исправлена в следующих релизах.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /live/vmlinuz1 initrd=/live/initrd1.img boot=live union=aufs noswap vga=791 init=/linuxrc;GParted 0.3.9 Graphic mode;
/isolinux/isolinux.bin /live/vmlinuz1 initrd=/live/initrd1.img boot=live union=aufs noswap vga=791 toram init=/linuxrc; GParted 0.3.9 copy to ram;

3. Parted Magic 3.2

Создаем в папке проекта папку PMAGIC и копируем туда из ISO-образа папку PMODULES со всем содержимым, а также файлы BZIMAGE и INITRD.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /pmagic/bzImage noapic initrd=/pmagic/initrd keymap=us livecd vga=791 sleep=0 quiet tmpfs_size=180M ramdisk_size=25000 init=/linuxrc ;Pmagic 3.2 copy to ram ;
/isolinux/isolinux.bin /pmagic/bzImage noapic initrd=/pmagic/initrd keymap=us livecd vga=791 sleep=0 quiet tmpfs_size=180M ramdisk_size=25000 noeject noreplace-paravirt init=/linuxrc ;Pmagic 3.2 noeject disk ;
/pmagic/isolinux.bin /pmagic/bzImage noapic initrd=/pmagic/initrd keymap=us livecd vga=normal sleep=0 quiet tmpfs_size=180M ramdisk_size=25000 init=/linuxrc ; Pmagic 3.2 normal vga

4. Back Track 3

Создаем в папке проекта папку BT3 (обязательно заглавными буквами, поскольку дистрибутив не может найти путь, если используются строчные) и копируем туда содержимое папки BT3 ISO-образа, а также файлы vmlinuz и initrd.gz из папки boot ISO-образа.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /BT3/vmlinuz initrd=/BT3/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf,kdm vga=0x317 init=/linuxrc ;Back Track 3 Graphics mode (KDE)
/isolinux/isolinux.bin /BT3/vmlinuz initrd=/BT3/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=kdm vga=0x317 init=/linuxrc ;Back Track 3 Graphics mode (VESA KDE)
/isolinux/isolinux.bin /BT3/vmlinuz initrd=/BT3/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw nohd vga=0x317 init=/linuxrc ;Back Track 3 no Hard Disk
/isolinux/isolinux.bin /BT3/vmlinuz initrd=/BT3/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw copy2ram autoexec=xconf,kdm vga=0x317 init=/linuxrc ;Back Track 3 Graphics mode, Copy To RAM

5. Ophcrack xp 2.0.1

Создаем в папке проекта папку ophcrack и копируем в нее содержимое папки ophcrack ISO-образа, а также файлы vmlinuz и initrd.gz из папки boot ISO-образа.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /ophcrack/vmlinuz initrd=/ophcrack/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf,startx init=/linuxrc ;Ophcrack xp 2.0.1 Graphic mode
/isolinux/isolinux.bin /ophcrack/vmlinuz initrd=/ophcrack/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=startx init=/linuxrc ;Ophcrack xp 2.0.1 VESA mode

6. GEEXBOX Open Media

Внимание! Официальная версия, совсем недавно обновленная до версии 1.2, является англоязычной. Ее проблема в том, что она абсолютно не видит русские имена файлов и папок. Вы можете использовать эту версию, однако здесь будет рассмотрена русифицированная ATF’ом (Raptor) версия GEEXBOX 1.1, взятая с сайта http://greenflash.su.

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

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /GEEXBOX/vmlinuz initrd=/GEEXBOX/initrd.gz root=/dev/ram0 noapic nolapic acpi=off rw boot=cdrom lang=ru splash=silent vga=789 keymap=qwerty remote=LG receiver=leadtek video=vesafb:ywrap,mtrr init=/linuxrc; GEEXBOX Open Media Center

7. SLAX 6.0

Создаем в папке проекта папку slax, копируем туда содержимое папки slax ISO-образа и файлы vmlinuz и initrd.gz из папки boot ISO-образа.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /slax/vmlinuz initrd=/slax/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf,telinit~4 init=/linuxrc; Slax Graphics mode (KDE);
/isolinux/isolinux.bin / slax /vmlinuz initrd=/ slax /initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=telinit~4 init=/linuxrc; Slax Graphics VESA mode;
/isolinux/isolinux.bin / slax /vmlinuz initrd=/ slax /initrd.gz ramdisk_size=6666 root=/dev/ram0 rw copy2ram autoexec=xconf,telinit~4 init=/linuxrc; Slax Copy To RAM;

8. SAM Linux 2007

Создаем в папке проекта папку SAM, в нее копируем файлы vmlinuz и initrd.gz из папки isolinux ISO-образа, а в корень папки SAM копируем файл livecd.sqfs из корня ISO-образа.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /SAM/vmlinuz livecd=livecd initrd=/SAM/initrd.gz root=/dev/rd/3 acpi=on vga=788 keyb=us splash=silent fstab=rw,noauto init=/linuxrc; SAM LINUX 2007 LiveCD;
/isolinux/isolinux.bin /SAM/vmlinuz livecd=livecd initrd=/SAM/initrd.gz root=/dev/rd/3 acpi=on vga=788 keyb=us splash=silent fstab=rw,noauto vesa init=/linuxrc; SAM LINUX 2007 VideoSafeMode;
/isolinux/isolinux.bin /SAM/vmlinuz livecd=livecd initrd=/SAM/initrd.gz root=/dev/rd/3 acpi=off vga=normal keyb=us noapic nolapic noscsi nopcmcia init=/linuxrc; SAM LINUX 2007 Safeboot;
/isolinux/isolinux.bin /SAM/vmlinuz livecd=livecd copy2ram initrd=/SAM/initrd.gz root=/dev/rd/3 acpi=on vga=788 keyb=us splash=silent fstab=rw,noauto splash=verbose init=/linuxrc; SAM LINUX 2007 copy to ram;

9. OPENSUSE 11.0 live

Создаем в папке проекта папку opensuse и копируем в нее файлы initrd и linux из папки boot\i386\loader ISO-образа, в корень папки opensuse копируем файлы openSUSE-11.0-read-only.i686-2.7.0 и config.isoclient из корня ISO-образа.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /opensuse/linux initrd=/opensuse/initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts init=/linuxrc; OpenSUSE-11.0 LiveCD;
/isolinux/isolinux.bin /opensuse/linux initrd=/opensuse/initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off init=/linuxrc; OpenSUSE-11.0 Failsafe;

10. Paragon Partition Manager 2009

К сожалению, этот продукт не загружается из ISO-образа с помощью BCDW, поэтому воспользуемся приведенным ниже принципом. Создаем в папке проекта папку paragon и копируем в нее содержимое ISO-образа.

BCDW Linux

в bcdw.ini пишем

/isolinux/isolinux.bin /paragon/vmlinuzp initrd=/paragon/initrd.gz splash=silent quiet root=/dev/ram0 ru_ver vga=0x314; Paragon Partition Manager 2009

11. Kaspersky Rescue CD

Создаем в папке проекта папку kav и копируем туда файлы rescue, rescue.igz и System.map-rescue из папки isolinux ISO-образа. В папку проекта копируем папку bases из корня ISO-образа (перед сборкой диска раздобудьте свежие базы и запишите в эту папку с заменой), а также в папку проекта копируем файлы image.squashfs и livecd из корня ISO-образа.

BCDW Linux

в bcdw.ini пишем

/kav/isolinux.bin /kav/rescue initrd=/kav/rescue.igz root=/dev/ram0 looptype=squashfs loop=/image.squashfs cdroot quiet trace init=/linuxrc ; Kaspersky rescue 2009
/kav/isolinux.bin /kav/rescue initrd=/kav/rescue.igz root=/dev/ram0 looptype=squashfs loop=/image.squashfs cdroot nox trace init=/linuxrc ; Kaspersky rescue 2009 safe
/kav/isolinux.bin /kav/rescue initrd=/kav/rescue.igz root=/dev/ram0 looptype=squashfs loop=/image.squashfs cdroot nox dolvm dodmraid init=/linuxrc ; Kaspersky rescue 2009 raid

12. DrWeb 4.44

Дистрибутив такой же вредный, как GParted, работает только из папки boot, поэтому если у вас уже есть папка boot (например, оттуда запускается WinPE), то копируем в нее файлы initrd, vmlinuz, DrWebLiveCD-4.44.0.0811190 и папку module вместе с содержимым из папки boot ISO-образа. Другими словами, создать отдельную папку не получается – загрузка не работает, автоматического обновления баз также не происходит (только, если организуете обновление баз после загрузки).

BCDW Linux

в bcdw.ini пишем

/Boot/isolinux.bin /Boot/vmlinuz initrd=/Boot/initrd init_opts=4 root=/dev/ram0 quiet dokeymap looptype=squashfs loop=/Boot/module/white.mo usbroot slowusb vga=791 splash=silent,theme:drweb CONSOLE=/dev/tty1 init=/linuxrc; Dr.Web 4.44 Graphic Mode;
/Boot/isolinux.bin /Boot/vmlinuz initrd=/Boot/initrd init_opts=3 root=/dev/ram0 quiet dokeymap looptype=squashfs loop=/Boot/module/white.mo usbroot slowusb init=/linuxrc ; Dr.Web 4.44 Text Mode

Пример файла bcdw.ini

Вы можете загрузить пример файла bcdw.ini по этой ссылке. Конечно, можно организовать в нем систему подменю.

Заключение

В заключение хочу отметить, что в зависимости от конфигурации компьютера, некоторые программы могут не работать в штатном режиме. Например, DrWeb в графическом режиме на слабой машине зависал и работал только в текстовом режиме. Также, описанный в статье метод не сработал для некоторых дистрибутивов и программных продуктов. Например, не удалось запустить, Mandriva 2009 rc1 и загрузочный диск антивируса Avira, а продукты фирмы EASEUS отказались работать по невыясненным причинам. Возможно, мне просто не хватило терпения, поэтому я желаю вам удачи в экспериментах!


Ссылка: http://www.oszone.net/8977/BCDW_Linux