Больше дистрибов хороших и разных... и шоб в одном месте

Неизвестный линуксоид

Продолжим тему "создания USB-флешки с несколькими загрузочными ISO-образами". Видимо, создать мультизагрузочную флешку хочется всем, но с возникающими проблемами справляются не все. На основе вопросов, возникших в комментариях и присланных в личку, и было решено написать данный пост.

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

Имеется флешка гигов эдак на 8. Надо:

  1. Флешку сделать мультизагрузочной средствами MultiSystem
  2. Установить на нее:
    1. Clonezilla
    2. Ubuntu 10.10 со своим набором пакетов (т.е. Remix)
    3. Windows 7 install DVD/CD
  3. При загрузке выбираем один из перечисленных вариантов, и он таки работает правильно.

Про Клонзилу поговорим коротенько, т.к. проблема там слишком фиговая, чтобы заострять на ней внимание. Для создания своего дистрибутива Ubuntu будем использовать Ubuntu Customization Kit. Про Вин7 постараюсь пояснить подробнее (или понятнее?), ибо Windows - это "де гемор факто".

Все это я опишу прямо в процессе создания своей загрузочной флешки, снабдив техническими справками и личным мнением (а куда ж без него?)...

Искренне надеюсь, что хотя бы установить MultiSystem вы смогли без проблем.

Подготовка мультизаргузочной флешки

Рекомендую обновиться - ибо мало ли что! И готовимся к установке.

Советы по использованию MultiSystem

  • В процессе установки MultiSystem подключает свой PPA-репозиторий, поэтому достаточно запустить "Менеджер обновлений" для полного апгрейда.
  • Перед запуском MultiSystem не забудьте вставить флешку в комп.
  • Для чистоты эксперимента лучше отформатировать флешку. Это можно сделать средствами MultiSystem (см. скриншот).

Теперь мы готовы? Нет? Ну, и сами виноваты...

Теперь у нас есть отличная чистая флешка. А... забыл сказать, что перед форматированием надо скинуть все ценное на ЖД. Если вы этого не сделали, то проделайте все шаги в обратном порядке, потом в прямом, потом опять в обратном... и так до полной и чистой ненависти ко мне :)

Теперь займемся разбивкой флешки. Зачем - спросите вы, а я отвечу - надо!

Запускаем GParted (Система - Администрирование), выбираем нашу флешку (у меня она назвалась /dev/sdb) и делаем 2 раздела, похожих на скриншот:

Т.е. первый раздел FAT32, а второй раздел NTFS. Размер первого не сильно важен, а размер второго - чуть больше образа Windows 7.

Применяем изменения, первытыкиваем флешку и запускаем MultiSystem, которая поставит нам на флешку GRUB2.

Вот теперь мы совсем готовы. Поехали....

Установка Clonezilla на мультизагрузочную флешку

О Clonezilla

Clonezilla - это программный комплекс (назвать Клонзилу операционной системой язык не поворачивается, хотя она таковой и является), предназначенный для клонирования дисков и отдельных разделов жёсткого диска, а также создания резервных копий и аварийного восстановления системы. Наиболее известные, но проприетарные (а то и платные) аналоги это - Norton Ghost и Acronis.

Заходим на официальный сайт Clonezilla и выбираем ISO-образ по душе. Именно от выбора образа и будет зависеть появление проблем в дальнейшем. Но они легко решаемы. Я взял для себя clonezilla-live-20110223-natty.iso (143.7 MB).

Перетаскиваем скачанный образ в MultiSystem. Должно получиться примерно так:

Если вы скачали эту же версию или debian-based версию, то на этом настройка и заканчивается. А если вы взяли версию clonezilla-live-20110113-maverick.iso, то вы получите такую ошибку:

Для "допила" открываем в MultiSystem "Menus - GRUB Settings - grub.cfg". Откроется редактор gedit с конфигурацией GRUB. В ней находим строки

menuentry "Clonezilla Live maverick" {
linux /debian1/vmlinuz1 ro root=UUID=6644-F545 live-media-path=/debian2 boot=live hostname=maverick live-config quiet noswap nolocales edd=on nomodeset ocs_live_run=ocs-live-general ocs_live_extra_param= ocs_live_keymap= ocs_live_batch=no ocs_lang= video=uvesafb:mode_option=800x600-16 ip=frommedia  nosplash
initrd /debian1/initrd1.img
}

и заменяем linux /debian1/vmlinuz1 на linux /debian1/vmlinuz и initrd /debian1/initrd1.img на initrd /debian1/initrd.img, т.е. просто убираем единички из пути к файлам (выделено цветом). Это явно ошибка клонзиловцев, которые собирали ISO под Maverick и неправильно указали путь к ядру. С Clonezilla закончили.

Создание и подключение Ubuntu Customized (Remix)

Что такое Ubuntu Customization Kit (UCK) знают многие, но не все умеют пользоваться. UCK - это инструент для создания собственной версии Ubuntu на базе имеющегося образа ISO. Вы можете самостоятельно добавить или удалить пакеты (и вообще сделать любые настройки) и собрать полноценный iso-образ загрузочного Ubuntu LiveCD. Лично я именно им и пользуюсь, но об этом ниже.

Устанавливается UCK из Центра приложений Ubuntu, где известен под названием "Набор для пользовательской настройки Ubuntu". Запускать пока не стоит - скорее всего у вас не получится что-то собрать...

О нюансах использования и выбора пакетов рассказывать не хочу, т.к. и без меня каждый ubuntu-сайт считает своим долгом рассказать о UCK. Я же расскажу об особенностях сбоки iso-образа и подводных камнях этого нелегкого дела. Часто люди, проделав огромную работу по ремиксу дистрибутива под себя, вдруг получают такую ошибку :

make: *** [bootdir] Ошибка 127 Failed to build gfxboot theme

Это связано с тем, что deb-пакет UCK из репозиториев собирают всегда по сильной пьяни и "кладут" на все зависимости. Для корректной сборки, которая осуществляется автоматически и не потребует от вас дополнительных танцев и песен, надо установить (или убедиться в факте установки) такие пакеты:

  • gfxboot
  • gfxboot-dev
  • gfxboot-theme-ubuntu
  • squashfs-tools

К сожалению, я не помню точно, какие из них есть по-умолчанию, а какие надо установить, поэтому привожу все четыре.

Теперь со спокойной совестью запускаем "Приложения - Системные утилиты - Ubuntu Customization Kit". Вам будет предложено выбрать языки, среду, название сборки, предложат удалить или оставить wubi.exe и т.д. После всего этого вы увидите такое окно:

  • Первый пункт запускает утилиту настройки вашего LiveCD, которая, как брат-близнец, похожа на Synaptic.
  • Второй откроет терминал для ну очень тонкой настройки.
  • А третья начнет сборку "продукта".

Готовый образ будет лежать в

~/tmp/remaster-new-files/livecd.iso

Его и перетаскиваем в MultiSystem.

Я люблю сохранять настройки и пользовательские файлы на той же LiveUSB, поэтому выбираю "Menus - Add Persistent Mode" и выставляю его в 2ГиБ  (максимум - 4 ГиБ). Но это - дело вкуса. Если вы добавите Persistent Mode, то MultiSystem примет такой вид:

Теперь в меню загрузчика у вас будет две версии Ubuntu.

ВАЖНО! Не удаляйте ни одну из них, т.к. они обе используют один и тот же ISO-образ. Удаление одной из записей приведет к неработоспособности другой.

Вот мы уже и получили неплохую админ-флешку. Но пошли дальше к самому неприятному - к Windows.

Установка Windows 7 на мультизагрузочную флешку

Для начала рекомендую ознакомиться с постом Загрузочная флешка Win7 из под Ubuntu 10.10. Как из него следует нам потребуется программа Furius ISO Mount (ставится из Центра приложений). В ней монтируем наш образ Windows 7 с флагом loop (см. снимок экрана)

Я использовал версию Windows 7 Ultimate  IDimm Edition ver. 07.10 для x86-x64, но не вижу проблем с использованием любых других версий.

Теперь копируем все содержимое примонтированной папки на NTFS-раздел флешки (если помните, мы в самом начале его создавали).

Открываем в MultiSystem "Menus - GRUB Settings - grub.cfg" и где-нибудь перед строкой menuentry "______________Grub4Dos______________" вставляем такой код:

#Windows 7 W7U_IDimm Edition_07.10_x86-x64
menuentry "Windows 7 Install" {
insmod chain
insmod ntfs
set root=(hd0,2)
chainloader +1
}

Говоря коротко, мы переходим на раздел с Windows 7 и запускает там любой имеющийся загрузчик, который по странному стечению обстоятельств является Windows Boot Manager'ом.

Разжую самую сложную для понимания строку - set root=(hd0,2). Сложность здесь в том, чтобы правильно выставить значения в скобках:

  • hd0 - номер жесткого диска. При загрузке с флешки hd0 и есть флешка, но при нескольких флешках или CD/DVD в приводе, или при передаче управления флешке другим загрузчиком ситуация может измениться. Что важно - отсчет идет от нуля, т.е. первый диск имеет номер 0.
  • 2 - номер раздела на флешке. Здесь нумерация начинается с единицы (это нововведение GRUB2, в GRUB1 нумерация нанается с нуля). Мы создавали лишь 2 раздела, поэтому номер Windows-раздела - 2.

В большинстве случаев эти значения будут работать, но если все плохо, то ничего не мешает вам нажать "e" в меню GRUB и поправить ручками на другие цифры прямо при загрузке.

В заключение

Если вы все делали по этой статье, то должны получить примерно такой grub.cfg (см. в спойлере)

grub.cfg для MultiSystem с Clonezilla, Ubuntu 10.10 и Windows 7 »

#insmod gpt
#insmod pc
#insmod gfxmenu
#
#insmod videotest
insmod tga
insmod png
insmod gfxterm
insmod lspci
insmod vbeinfo
insmod vbe
insmod ntfs
insmod chain
insmod biosdisk
insmod font
#http://grub.enbug.org/ThemeFormat
#http://grub.gibibit.com/Theme_format#colors
#http://code.google.com/p/burg/wiki/InstallUbuntu
#http://code.google.com/p/burg/downloads/list
#http://ubuntuforums.org/showthread.php?t=1195275
#pour acces a grub2 du bootloader principal modifier dans fichier: /etc/default/grub
#GRUB_HIDDEN_TIMEOUT=10 #0 par defaut
#GRUB_HIDDEN_TIMEOUT_QUIET=false #true d'origine
#sudo update-grub
#echo -n "Press ESC to see the menu... "
#if sleep --verbose --interruptible 5 ; then
#set timeout=0
#fi
set default=0
set timeout=30
set fallback=1
search --no-floppy --fs-uuid --set 6644-F545
set root=${root}
#http://grub.enbug.org/gfxterm
if loadfont /boot/polices/unicode.pf2 ; then
set gfxmode=640x480
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
#set locale_dir=/boot/grub/locale
#set lang=en
#insmod gettext
if background_image /boot/splash/splash.png ; then
#text no sel/fond ecran
set color_normal=white/black #1
#text sel/fond ecran sel
set color_highlight=green/white #1
else
set menu_color_normal=white/black #2
set menu_color_highlight=green/white #2
set color_normal=white/magenta #2
set color_highlight=green/white #2
fi
#set gfxpayload="1280x1024,1024x768,800x600,640x480"
#set gfxpayload=keep
#Ne supprimez pas ce marqueur! / Do not remove this marker!
#MULTISYSTEM_START
#MULTISYSTEM_MENU_DEBUT|28-02-2011-20:37:48-919794280|debian1|multisystem-clonezilla|137Mio|
menuentry "Clonezilla Live" {
linux /debian1/vmlinuz ro root=UUID=6644-F545 live-media-path=/debian1 boot=live hostname=natty config quiet noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=800x600-16 ip=frommedia  nosplash
initrd /debian1/initrd.img
}
#MULTISYSTEM_MENU_FIN|28-02-2011-20:37:48-919794280|debian1|multisystem-clonezilla|137Mio|
#MULTISYSTEM_MENU_DEBUT|28-02-2011-21:26:19-498596683|livecd.iso|multisystem-ubuntu|682Mio|
menuentry "Ubuntu 10.10" {
search --set -f "/livecd.iso"
loopback loop "/livecd.iso"
linux (loop)/casper/vmlinuz root=UUID=6644-F545 debian-installer/locale=ru_RU.UTF-8 debian-installer/language=ru kbd-chooser/method=ru console-setup/layoutcode=us console-setup/variantcode= console-setup/modelcode= iso-scan/filename=/livecd.iso boot=casper file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
initrd (loop)/casper/initrd.lz
}
#MULTISYSTEM_MENU_FIN|28-02-2011-21:26:19-498596683|livecd.iso|multisystem-ubuntu|682Mio|
#MULTISYSTEM_MENU_DEBUT|28-02-2011-21:28:22-128277043|livecd.iso|multisystem-ubuntu|682Mio|persistent 1016Mio
menuentry "Ubuntu 10.10 Mode persistent" {
search --set -f "/livecd.iso"
loopback loop "/livecd.iso"
linux (loop)/casper/vmlinuz root=UUID=6644-F545 debian-installer/locale=ru_RU.UTF-8 debian-installer/language=ru kbd-chooser/method=ru console-setup/layoutcode=us console-setup/variantcode= console-setup/modelcode= iso-scan/filename=/livecd.iso boot=casper showmounts persistent file=/cdrom/preseed/ubuntu.seed noprompt quiet splash --
initrd (loop)/casper/initrd.lz
}
####### Windows 7 W7U_IDimm Edition_07.10_x86-x64
menuentry "Windows 7 Install" {
insmod chain
insmod ntfs
set root=(hd0,2)
chainloader +1
}
#MULTISYSTEM_MENU_FIN|28-02-2011-21:28:22-128277043|livecd.iso|multisystem-ubuntu|682Mio|persistent 1016Mio
#MULTISYSTEM_STOP
#Ne supprimez pas ce marqueur! / Do not remove this marker!
menuentry "______________Grub4Dos______________" {
echo
}
#http://grub4dos.sourceforge.net/
#http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial
menuentry "Grub4Dos" {
linux /boot/grub.exe --config-file=/boot/grub/menu.lst
}
menuentry "______________Syslinux______________" {
echo
}
#http://syslinux.zytor.com
menuentry "Syslinux" {
search --set -f /boot/syslinux/redir.img
linux16 /boot/syslinux/memdisk
initrd16 /boot/syslinux/redir.img
}
#menuentry "Syslinux" {
#search --set -f "/boot/syslinux/ldlinux.sys"
#drivemap -s (hd0) $root
#chainloader +1
#}
#Autre solution pour chainer Syslinux via une copie du mbr
#dd if=/dev/sd?1 of=/media/multisystem/syslinux.mbr bs=512 count=1
#menuentry "Syslinux" {
#search --set -f "/syslinux.mbr"
#drivemap -s (hd0) $root
#chainloader /syslinux.mbr
#}
menuentry "______________UTIL______________" {
echo
}
## for debugging set debug=efi
#menuentry "0-testfakebios" {
#    hexdump -s 0xc0000 (mem)
#    fakebios
#    hexdump -s 0xc0000 (mem)
## deliberate error to get wait for key
#    xxx
#}
#How to test GRUB 2 on Macbook
#http://grub.enbug.org/TestingOnMacbook
#chainer un autre grub
#menuentry "grub.cfg auf /dev/sdb1" {
#    configfile (hd1,1)/boot/grub/grub.cfg
#}
#menuentry "Chain other configfile" {
#configfile /boot/grub/grub-xxx.cfg
#}
#menuentry "Return default menu" {
#chainloader /boot/grub/boot.img
#}
#chainer win ou autre OS
#menuentry "Chainer UUID de la partition" {
#insmod=ntfs
#set root=(hd0,1)
#search --no-floppy --fs-uuid --set xxx-xxx
#    drivemap -s (hd0) $root
#    chainloader +1
#}
#http://www.plop.at/en/bootmanagerdl.html
menuentry "PLoP Boot Manager" {
linux16 /boot/img/plpbt
}
#http://www.supergrubdisk.org/
#http://developer.berlios.de/project/showfiles.php?group_id=10921
#SG2D (Floppy, CD & USB in one)
#super_grub_disk_hybrid-1.98s1.iso
menuentry "Super Grub2 Disk" {
search --set -f /boot/img/sgdh.iso
linux16 /boot/syslinux/memdisk
initrd16 /boot/img/sgdh.iso
}
menuentry "Super Grub Disk" {
search --set -f /boot/img/sgdfr.img
linux16 /boot/syslinux/memdisk
initrd16 /boot/img/sgdfr.img
}
menuentry "Smart Boot Manager" {
search --set -f /boot/img/sbootmgr.dsk
linux16 /boot/syslinux/memdisk
initrd16 /boot/img/sbootmgr.dsk
}
#Site: http://boot.kernel.org/index.html
#Téléchargement: http://boot.kernel.org/gpxe_images/gpxe.lkrn
menuentry "BKO (boot.kernel.org)" {
search --set -f /boot/img/gpxe.lkrn
linux16 /boot/img/gpxe.lkrn
}
#http://www.memtest.org/#downiso
menuentry "memtest86+" {
linux16 /boot/img/memtest86+.bin
}
menuentry "vbeinfo" {
vbeinfo
read
}
menuentry "lspci" {
lspci
read
}
menuentry "gfxpayload 640x480" {
set gfxpayload=640x480
echo gfxpayload=${gfxpayload} press enter
read
}
menuentry "gfxpayload 800x600" {
set gfxpayload=800x600
echo gfxpayload=${gfxpayload} press enter
read
}
menuentry "gfxpayload 1024x768" {
set gfxpayload=1024x768
echo gfxpayload=${gfxpayload} press enter
read
}
menuentry "gfxpayload 1280x1024" {
set gfxpayload=1280x1024
echo gfxpayload=${gfxpayload} press enter
read
}
menuentry "Reboot" {
insmod reboot
reboot
}

Для тонком настройки загрузчика GRUB рекомендую ознакомиться с мануалом на сайте проекта GNU.

С полным списком официально поддерживаемых МультиСистемом ОС можно охнакомиться на официальном сайте.  Но этот список нельзя считать полным, т.к. все linux-based дистрибутивы подключатся без каких-то проблем, а с Windows-based проблемы можно решить.

Что же мы получили в итоге... Мы получили трижды загрузочную флешку с популярным инструментом админов - Clonezilla, с Ubuntu нашей собственной сборки и с Осью Зла версии 7 на борту. Если вы хорошо подобрали пакеты в Ubuntu, то этой флешки хватит в 99% случаев.

Популярность: нет оценки

Поделиться в соц. сетях

Опубликовать в Одноклассники
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Яндекс
Опубликовать в Google Buzz
Опубликовать в Google Plus