Создаем загрузочную флешку с Windows и Linux на борту
Перепечатка статьи из журнала "Хакер" №1/2007
Любопытное изобретение - все эти Live-CD-дистрибутивы. Многие из нас когда-то записывали образ свежего Knoppix'а на диск и строили грандиозные планы о том, как он не раз выручит нас в будущем. Вдруг понадобится восстановить удаленные файлы, реанимировать систему или сбросить в ней пароль администратора? Только вот таскать с собой такую бандуру ты не станешь, и, будь уверен, через некоторое время она просто потеряется у тебя на полке. Намного круче было бы разместить Live-CD на флешке, добавить к экзотическому Линуксу обычную Винду и всегда носить это хозяйство с собой. А почему, собственно, говоря, нет?
Да-да, мы действительно создадим флешку с загрузочными Linux и Windows, благодаря существующим инструментам это не только возможно, но еще и легко реализуемо. Вот перечень того, что там понадобится:
1. В первую очередь, конечно же флешка или любой другой USB-носитель. Тут главное выполнить 2 условия. Во-первых, флешку должен корректно распознавать BIOS материнки, позволяя загружаться с нее во время запуска компьютера. А, во-вторых, она должна иметь подходящий размер, чтобы разместить 2 ОС. В нашем случае потребуется девайс объемом 1 ГБ и выше.
2. Подходящий Live-CD дистрибутив на базе SLAX. Вообще большинство пингвинов давно можно запустить не только с CD, но и с флешки, однако я все-таки рекомендовал бы тебе один из дистрибутивов, построенных на базе Slackware. А это сам SLAX, Slast, а также известный хакерский чемоданчик BackTrack2, который я и буду использовать в этой статье.
3. Утилита, которая поможет создать свой собственный билд дистрибутива и записать его на флешку - MySLAX Creator. Фишка операционных систем, построенных на базе SLAX в том, что их буквально можно собрать по кирпичикам (модули имеют расширение mo), включив в состав диска нужные приложения. Так что установить в пингвине нужную программу будет сущим пустяком.
4. Дистрибутив Windows XP Service Pack2 или Windows 2003 Server для создания загрузочной версии винды. Понадобится лишь часть файлов, но проще будет найти диск с виндой, чем перечислить их перечень.
5. Программа Bart PE Builder, которая будет главным инструментом, собирающим загрузочную версию Windows. Умелец-автор разобрался с механизмом работы WinPE (официального Live-CD-дистрибутива от Microsoft) и разработал утилиту для создания своего собственного билда, функционального и легко расширяемого.
6. Утилита Make Bootable для размещения загрузочного сектора Windows на флешке.
7. Загрузчик Syslinux, с помощью которого будет осуществляться выбор ОС во время загрузки с USB.
"Первый пошел!", или начнем с Linux
Создание нашей убойной флешки мы начнем с копирования на USB-драйв файлов Linux BackTrack'а, в чем нам поможет MySLAX Creator. Сразу после быстрой установки воткни в компьютер флешку и запускай программу.
1. MySLAX Creator тут же спросит - откуда ей брать файлы. В качестве исходных материалов будет использоваться образ BackTrack'а, поэтому параметр Source Type нужно выставить в ISO-Default, а потом в текстовом поле указать путь до образа. Теперь необходимо промонтировать ISO в системе, нажав кнопку "Mount".
2. Программа предложит создать загрузочный диск (Burn this ISO), либо же загрузочныю флешку (USB Stick). Само собой, выбираем второе.
3. Внимание: следующая операция требует форматирования флешки, что влечет за собой потерю всех данных, поэтому, если необходимо, сначала сделай бэкап и лишь потом выбирай нужный flash-драйв и нажимай "Create USB Stick".
4. Теперь очень важный момент. В окне форматирования флешки в качестве файловой системы обязательно нужно выбрать FAT. По умолчанию там выставлен FAT32, и если ты оставишь все как есть, то на одном из следующих шагов получишь ошибку, и все придется начинать заново. Будь внимателен!
5. Как только форматирование будет завершено, MySLAX Creator скопирует на флешку все необходимые файлы и предложит перезагрузиться. Ради эксперимента можешь отправить машину в ребут, выставить в биосе загрузку с USB или вызвав окно выбора носителя для загрузки при запуске компьютера и посмотреть, что получится. Процесс загрузки ОС BackTrack не заставит себя долго ждать и уже через пару минут ты сможешь воспользоваться Linux'ом, который до отвала напичкан самыми разнообразными x-toolz'ами.
Дрессировка винды
Впрочем, линуксом, который работает без установки (пускай, даже с флешки), уже давно никого не удивишь. Да и все-таки хочется при себе иметь любимую винду с привычными программами, а пингвина использовать в более изощренных целях. Поэтому сейчас нужно вооружиться утилитой Bart’s PE Builder и действовать!
1. Работать с этой программой проще простого хотя бы потому, что интерфейс полностью переведен на русский язык и запутаться здесь довольно сложно. Просто читаем, что от нас требуется, и выполняем. Начнем с указания пути к установочным файлам Windows. Внимание: требуется дистрибутив Windows XP SP2 или 2003. И никак иначе: любой другой, включая w2k, не подойдет. Более того, ты должен прописать вручную или выбрать путь именно к установочным файлам (если вставил диск с виндой, то просто выбери здесь свой привод), а не к образу с дистрибутивов (который, возможно, закачаешь из Сети). Если дистриб упакован в ISO или другом формате-образе, то его нужно предварительно оттуда извлечь. В этом случае поможет программа WinISO или WinRAR.
2. При желании ты вправе указать папку с файлами, которые будут дополнительно включены в окончательную сборку Windows, но этот шаг опциональный. Главное сейчас — выбрать каталог назначения, куда PE Builder положит готовый билд системы. Необходимо в обязательном порядке указать здесь «BartPE», тем самым ты заведомо исключишь проблемы во время переноса файлов на флешку. Замечу, что в обычном режиме мы бы сразу зажгли полученный билд на CD или, по крайней мере, создали его ISO-образ. Но для дальнейшего переноса файлов на USB придется отказаться от всякой записи на носитель.
3. Включить в сборку дополнительные программы или, наоборот, убрать что-то лишнее можно через окно «Модули» (рекомендую заглянуть туда после прочтения дополнительных сведений), но сейчас оставим все по дефолту и просто нажмем «Создание сборки».
4. Сам процесс создания загрузочной системы не займет много времени. После завершения процесса все сгенерированные файлы будут помещены в папку BartPE (у меня — c:/pebuilder3110a/BartPE), однако просто взять и скопировать их на флешку нельзя. Пришлось бы долго возиться вручную, чтобы все заработало, но разработчик позаботился о нас и включил в состав проги специальный скрипт — pe2usb.cmd.
5. Синтаксис для запуска скрипта очень простой: «pe2usb.cmd
Предвижу, что заморачиваться с поиском и распаковкой файлов тебе лень, поэтому специально выложил их здесь — они весят чуть больше 300 Кб в распакованном виде. Скопируй их — и скрипт выполнится без сучка и задоринки.
Замуты с загрузчиком
Если после этого ты попробовал загрузиться с флешки и по-прежнему увидел Backtrack, сильно не удивляйся. Мало разместить на флешке файлы для винды, необходимо еще настроить загрузчик, чтобы тот знал, какую ОС и когда запускать. Как это делается?
1. Из папки BartPE Builder нужно взять файл с загрузочным сектором винды — pe2usb.bin, переименовать его в pe2usb.bss и кинуть в корень флеш-накопителя. Изменить имя файла нужно в обязательном порядке, так как именно расширение bss указывает загрузчику Syslinux (который мы и будем использовать), что тот имеет дело с boot-сектором.
2. Далее в ход идет небольшая утилита MKBT. Просто скопируй ее исполняемый файл (mkbt.exe) на флешку и выполни оттуда команду «mkbt -x pe2usb.bss
3. Теперь дело за малым — надо настроить сам загрузчик, то есть Syslinux. Для этого быстренько распаковываем архив syslinux-3.31.zip и копируем файлы \win32\syslinux.exe и \com32\modules\vesamenu.c32 в корень флешки. Далее требуется немного поправить конфигурационный файл syslinux.cfg, установленный еще вместе с Backtrack’ом. Особо не заморачивайся и просто замени его содержание следующим:
1. prompt 0
2. timeout 0
3. F1 splash.txt
4. F2 splash.cfg
5. SAY Type "bartpe" for Bart's Pe, or
6. type "slax" for Slax.
7. DISPLAY syslogo.lss
8. MENU TITLE ][akep's Boot UFD
9. MENU BACKGROUND xakep.png
10. label slax
11. menu label Slax
12. kernel vmlinuz
13. append max_loop=255 initrd=initrd.
14. gz vga=0x317 maxcpus=1 init=linuxrc
15. load_ramdisk=1 prompt_ramdisk=0
16. ramdisk_size=4444 root=/dev/ram0 rw
17. label bartpe
18. menu label Bart's PE
19. kernel pe2usb.bss
20. init=linuxrc load_ramdisk=1 prompt_
21. ramdisk=0 ramdisk_size=4444 root=/
22. dev/ram0 rw
23. load_ramdisk=1 prompt_ramdisk=0
24. ramdisk_size=4444 root=/dev/ram0 rw
4. Для красоты можно кинуть на флешку фоновую картинку для загрузчика xakep.png, которая должна иметь размер 640x480. Но это не обязательно.
5. Самый последний шаг. Остается только вернуть загрузочный сектор Syslinux’а на место (мы его снесли, когда инсталлировали загрузочный сектор винды). И после этого можно отправлять машину в ребут. Переходи на флешку и выполняй команду «syslinux
Не останавливайся
Две рабочие ОС, которые без установки запускаются с флеш-носителя, — это уже здорово. Но не лишним будет подстроить их под себя: установить привычные программы, добавить необходимые драйверы и просто сменить обои на рабочем столе. Все это возможно, причем для этого вовсе не нужно обладать семью пядями во лбу. Достаточно прочитать материал в дополнительных сведениях.
Самый полезный плагин для BartPE
Ты, наверное, заметил, что внешний вид полученной с помощью PE Builder’а системы существенно упрощен, по сравнению с обычной виндой. По правде сказать, это не только не привычно, но и ужасно неудобно: ни человеческого «Пуска», ни Сетевого окружения, ни просто эсплорера и консоли MMC. Чтобы все вернуть на свои места, необходимо во время сборки подключить плагин XPE. Он снимет все ограничения и приведет загрузочную ОС к обычному виду винды. Что не менее важно, плагин позволяет подключить драйверы к Bart PE, входящие в дистрибутив Windows, поэтому после загрузки с флешки будут найдены все распространенные устройства. Но для этого в папку с плагином (у меня — c:\pebuilder3110a\plugin\xpe-1.0.6) тебе придется добавить 3 директории (DRIVERS,
SYSTEM, INF) и расположить там названные ниже файлы.
• В папку DRIVERS — все sys-файлы из drivers.cab и sp*.cab (ищи их в дистрибутиве Windows);
• в папку SYSTEM — все dll и exe из drivers.cab и sp*.cab;
• в папку INF — все inf, а также запакованные *.in_.
Чтобы распаковать их всех разом, воспользуйся хитрой командой: expand -r "[xp\i386 path\]*.in_" ["XPE plugin\inf sub folder path"] После этого удали файлы *.inc и *.ins, оставив только файлики *.inf. Готово.
Добавление драйверов в винде
Прикрутить дополнительный драйвер к BartPE — это очень простая задача, но, к сожалению, это касается только дров для устройств хранения данных и сетевых девайсов. Для каждого устройства необходимо создать папку с драйвером и скопировать в папку, соответствующую его принадлежности: драйверы устройств хранения данных — drivers\ SCSIAdapter; драйверы сетевых устройств — drivers\Net. Предположим, что ты добавляешь дрова для сетевого устройства NetXtreme BCM57xx. Драйвер поставляется в виде zip-архива с именем win_xp_2k3_32-7.86.zip. Делаем все согласно инструкции: в drivers\Net создаем новую папку (скажем, b57xp32) и извлекаем туда все файлы из скачанного с сайта производителя устройства архива. Вот, собственно, и все.
Дополнительные программы в BartPE
Лучший способ расширить функциональность системы — установить в нее полезные программы. В случае BartPE делать это нужно еще во время компиляции системы, то есть до того, как ее файлы попадут на USB-драйв. Однако просто взять и подключить обычные дистрибутивы программ нельзя и приходится прибегать к специальному механизму плагинов. Когда ты собирал свой дистрибутив, ты, наверное, заметил кнопку «Модули» в нижней части окна PE Builder’а. Попробуй ее нажать, и ты увидишь внушительный список знакомых тебе программ: GFI LANguard Network Security Scanner, IrfanView, Nero Burning Rom, PuTTY, Total Commander и т.д. Подключить модуль можно одним щелчком мыши, однако тулза потребует предоставить ей необходимые для запуска программ файлы. Придется распотрошить их рабочие директории и выбрать оттуда все необходимое (обычно это exe‘шник и несколько dll-файлов). Установить в live-винду любую другую программу, не включенную в состав BartPE, помогут коллекции плагинов: http://www.nu2.nu/pebuilder/plugins, http://www.reatogo.de, http://ubcd4win.com, http://www.bootcd.us/BartPE_Plugins_Complete.php. Среди тысяч модулей можно найти абсолютно все. Впрочем, кто сказал, что нельзя создать модуль самому? Инструкцию ты найдешь на http://oszone.net/display.php?id=3203.
Установить программу в linux?! Легко!
Главная особенность всех LiveCD-дистрибутивов, построенных на SLAX, — это возможность включить в состав ОС любые программы, причем с минимальными усилиями. Дополнительный софт распространяется в виде специальных модулей — файлов с расширением mo. Грамотно собранная коллекция «дополнялок», рассортированных по категориями программ (графика, офис, безопасность, система, сеть, разработка, мультимедиа и другие), расположена на официальном сайте SLAX’а: . Там ты обязательно найдешь все необходимое. Но что делать дальше? Как их установить в систему? Оказывается, проще простого. Запускаем уже знакомый нам MySLAX Creator, выбираем ISO-образ дистрибутива, но вместо копирования файлов на флешку (кнопка USB Stick), нажимаем «Далее». В программе откроется вкладка «Add modules», где ты выберешь и в два счета подключишь все скачанные mo-файлы, после чего получишь обновленный дистрибутив с индивидуальным тюнингом.
Info
Если материнская плата не поддерживает загрузку с USB, попробуй обновить биос. Ну а если и это не поможет, придется раскошелиться на апгрейд. Вообще говоря, давно пора — загрузку с USB-носителя поддерживают практически все материнки уже несколько лет.