Загрузочная флэшка / 11 июня 2009 г.
Как-то так вышло, что в последнее время у меня скопилось много а) флэшек самых разных объёмов; б) своих и чужих вопросов, как бы так сделать, чтобы никогда больше не использовать теряющиеся и царапающиеся (не очень больно) компакт-диски для рутинных операций наподобие переустановки или восстановления системы. Количество, как водится, в какой-то момент всё-таки перешло в качество, я изучил greenflash.su и flashboot.ru, заполнил мусором гигабайт 20 на жёстком диске лаптопа, и в результате на свет появились вожделенный многофункциональный инструмент и руководство по его вдумчивому созданию. Руководство, конечно, на данный момент существует лишь в виде своего первого абзаца, но я верю в свои силы и вам рекомендую поступать так же :)
Вместо предисловия
В первую очередь неплохо бы убедиться, что мой вариант флэшки вам подойдёт.
Когда я перезагружаю компьютер с указанием USB Flash в качестве загрузочного устройства, появляется вот такое меню (без приведённых справа комментариев):
Windows XP Pro Setup >> // установка Windows XP
Back|Track 3 >> // USB-версия знаменитого
«хакерского» CD (взлом WEP и т. д.)
NervOS // Live CD английской Windows XP SP2
с кучей программ
Paragon Drive Backup 9.0 // программа бэкапа/восстановления
HDD и партиций
Hirens BootCD 9.8 // самая большая коллекция
инструментов для эникейщика
NT Password & Registry Editor // сброс пароля Windows 2000 и XP
SuperGrub // универсальный загрузчик
Start Windows XP/2000/2003/NT from HDD // запуск одной из этих ОС с HDD
Start Windows 7/Vista/Server 2008 from HDD // запуск одной из этих ОС с HDD
Boot from CD-ROM // загрузка с CD-ROMа
Command Line // командная строка GRUB4DOS
Reboot // перезагрузка компьютера
Shut Down the PC // выключение компьютера
Инструментов могло бы быть и больше, но, во-первых, отведённая мною под эксперимент флэшка вмещала всего 4 Гб, а во-вторых кое-что из желаемого я так и не смог заставить работать. Ubuntu Linux 9.04 Alternate CD и GPartEd с флэшки стартовать не захотели, но первый я всё ещё не теряю надежды приручить, а второй, вполне возможно, не хочет работать из-за каких-то особенностей нового жёсткого диска моего лаптопа.
Добавление инструментов будет описано последовательно, и вы сможете пропустить то, что вас не интересует. Двойные угловые скобки после какого-то пункта означают, что за ним скрывается подменю: например, установка Windows XP в USB-варианте разбивается на 2 этапа, а Back|Track может быть загружен с различными опциями.
Делаем флэшку загрузочной
Существует миллион и один способ сделать это, а мы воспользуемся клоном знаменитого GRUBа, загрузчиком GRUB for DOS. В отличие от родителя он может, например, разворачивать и загружать образы СD и флоппи-дисков, что нам очень даже пригодится.
Проделываем всё в два этапа.
1. Прописываем MBR
MBR Master Boot Record, начальная область памяти устройства хранения данных, основная функция которой предварительная загрузка, определение активного раздела и передача управления на его Boot Record. Эту область нам и предстоит сформировать.
Подключаем флэшку и безжалостно форматируем её (щелчок правой кнопкой на соответствующем устройстве в My Computer, пункт Format контекстного меню):
В качестве файловой системы выбираем FAT32, т. к. NTFS, при всех её замечательных качествах, не позволит загрузиться некоторым инструментам, основанным на Linux.
Теперь нам нужен инструмент, который сделает флэшку загрузочной. Идём, например, сюда, и качаем файл, который называется grubinst-1.1-bin-w32-2008-01-01.zip или его более новую версию. Извлекаем содержимое архива и запускаем исполняемый файл grubinst_gui.exe.
Вот тут очень важно не ошибиться и выбрать в Device Name именно то устройство, с которым мы работаем. Думаю, проще всего сориентироваться по размеру: жёсткие диски в 4 гб, слава богу, давно вышли из употребления.
Теперь нажимаем Install. Если всё прошло нормально, должно появиться следующее окно:
Его появление означает, что запись прошла успешно.
2. Кладём загрузчик и создаём меню
Теперь нужно скачать вот этот архив (129 Кб) и скопировать его содержимое в корневой каталог нашей флэшки. На этом подготовительный этап закончен, и теперь можно протестировать загрузку. Перезагрузите компьютер, указав флэшку в качестве загрузочного устройства. На экране должен появиться вполне симпатичный пингвин, а слева от него пункты меню, соответствующие строчкам с ключевым словом title из файла menu.lst. В структуре этого файла вообще неплохо бы разобраться, это сильно поможет при добавлении своих собственных инструментов. О командах GRUB for DOS можно почитать здесь.
Далее по порядку:
Добавляем NT Password & Registry Editor
Воспользуемся упомянутой выше способностью GRUB for DOS загружать образы CD. Скачаем один из таких образов отсюда (файл cd080802.zip или новее, 3 Мб), после чего переименуем его в ntpre.iso и положим в папку iso, которую создадим в корне флэшки. В файл menu.lst добавим следующие строки:
title NT Password & Registry Editor
find --set-root /iso/ntpre.iso
map /iso/ntpre.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
Теперь можно перезагрузить компьютер и проверить, запускается ли образ.
Добавляем Paragon Drive Backup
Эта процедура практически повторяет предыдущую, с тем отличием, что нужный нам образ раздобыть несколько сложнее. Вот здесь бесплатно дают Paragon Drive Backup 9.0 Personal Edition. Штука сама по себе очень полезная, поэтому качаем, получаем ключ и инсталлируем. После этого в папке C:\Program Files\Paragon Software\Drive Backup 9 Personal Special Edition\iso находим файл bootcd.iso, переименовываем его в paragon.iso и кладём в папку iso, которую мы на предыдущем этапе создали в корне флэшки. В menu.lst добавляем следующее:
title Paragon Drive Backup 9.0
find --set-root /iso/paragon.iso
map /iso/paragon.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
Перезагружаемся и проверяем работоспособность этого инструмента.
Добавляем Hirens Boot CD
Действуем по той же схеме: скачиваем образ диска (в данном случае 9.8, с другими я не проверял, весит он 157 Мб), переименовываем в hbcd98.iso, в menu.lst дописываем:
title Hiren's BootCD 9.8
find --set-root /iso/hbcd98.iso
map /iso/hbcd98.iso (0xff) || map --mem /iso/hbcd98.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
В XP Mini многие предынсталлированные программы не работают, но все Windows-партиции видны и данные при необходимости вытащить можно. Сам диск полностью работоспособен.
Добавляем Ubuntu 9.04 Live Desktop CD
Тут всё чуть сложнее или, напротив, проще, кому как покажется. Для начала придётся скачать сам диск Ubuntu 9.04 Desktop (700 Мб, но хочется верить, что он у вас уже есть). Затем с помощью любого инструмента для работы с образами извлечём его содержимое в корень флэшки, после чего допишем в menu.lst следующее:
title Ubuntu 9.04 Live Desktop
root (hd0,0)
kernel /casper/vmlinuz file=/preseed/ubuntu.seed boot=casper quiet splash -- locale=en_EN
initrd /casper/initrd.gz
boot
Может быть, можно переписать не в корень, а в отдельную папку, но у меня в этом случае Ubuntu почему-то не захотел грузиться.
Добавляем Back|Track 3.0
Качаем USB-версию Back|Track 3, разбираем образ, переписываем папку BT3 в корень флэшки. Забираем файл bt3.lst (внутреннее меню, содержащее опции загрузки), кладём туда же. В menu.lst добавляем строки:
title >> Back|Track 3 >>
configfile (hd0,0)/bt3.lst
Перезагружаемся, проверяем работоспособность.
Добавляем NervOS
Потребуется выкачать образ NervOS RC6 (700 Мб) и программу PeToUSB (300 Кб). Распаковываем образ во временную папку и запускаем программу, выбрав Destination Drive и указав Source Path:
После нажатия Start она копирует все необходимые файлы из распакованного образа на флэшку, что-то ещё при этом меняя, т. к. скопированный вручную образ у меня работать не захотел. Модифицируем menu.lst:
title NervOS (Live Windows XP SP2)
find --set-root /ntldr
chainloader /ntldr
На этом всё.
Добавляем инсталлятор Windows XP
Вот тут уже потребуется повозиться.
Мне так и не удалось разместить NervOS и инсталлятор Windows XP на одной партиции. Поэтому тем, кто решился идти дальше, предлагается три варианта: 1) отказаться от инсталлятора и тем самым завершить проект; 2) не инсталлировать NervOS и всё-таки заняться инсталлятором Windows XP; 3) пойти по длинному пути и добиться работоспособности того и другого.
Итак, если вы выбрали второй путь, нужно скачать программу WinSetupFromUSB, например отсюда. Запускаем её, распаковав предварительно образ инсталляционного диска Windows XP во временную папку. На всякий случай сохраните где-нибудь копию menu.lst, он может быть перезаписан.
Кстати, о дистрибутиве. Очень рекомендуется предварительно причесать его с помощью программы nLite, удалить ненужные компоненты, при необходимости добавить драйверы дисков SATA, интегрировать сервис-паки и последние обновления. Это существенно сэкономит время настройки системы после инсталляции, да и место тоже: флэшка-то не резиновая.
Итак, запускаем программу, выбираем нашу флэшку, указываем, где находятся файлы дистрибутива Windows XP и нажимаем GO. Программа переписывает файлы на флэшку. Делает она это довольно долго.
После того, как копирование файлов завершилось, находим в корне флэшки файл txtsetup.sif и вписываем в него (можно в начало) следующее:
[UserData]
ProductKey=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Ключ, разумеется, подставляем свой. В menu.lst добавляем строки
title >> Windows XP Pro Setup: 1st & 2nd parts >>
root (hd0,0)
configfile /winsetup.lst
savedefault
В корень флэшки кладём текстовый файл winsetup.lst со следующим содержимым:
timeout 10
default /windefault
title 1st part of Windows XP Pro Setup
root (hd0,0)
chainloader (hd0,0)/$WIN_NT$.~BT/SETUPLDR.BIN
savedefault 1
title 2nd part of Windows XP Prof Setup & "Start Windows for the first time"
root (hd0,0)
chainloader (hd0,0)/ntldr
savedefault
title << Return to the main menu <<
configfile (hd0,0)/menu.lst
Обратите внимание, что этот способ не слишком хорош. Во-первых, мы с вами остались без NervOS. Во-вторых, флэшка отформатирована в FAT32, а это значит, что первый этап установки Windows XP (копирование файлов) растянется минут на 40. В-третьих, никакую другую сборку на базе WinPE нам на флэшку запихнуть уже не удастся.
Поэтому поищем другой способ. Смелые могут читать дальше.
Самый естественный выход из описанной ситуации разбиение флэшки на разделы. Создаём ещё один раздел, форматируем его в NTFS, и убиты сразу практически все зайцы. Но не тут-то было! Windows вообще не понимает, что на removable drive могут быть разделы. Более того, если как-то всё-таки эти разделы создать (например, под Linux), Windows их не увидит. Остаётся одно: убедить Windows, что перед нами НЕ removable drive.
Это можно сделать с помощью программки BootIT. Ссылка, по которой я скачал нужную версию, уже почему-то не работает, поэтомы выложу программку у себя (350 Кб). Нужная нам функция называется Flip Removable Bit:
Процедура эта не слишком безопасная, т. к., с этого момента программы наподобие PE2USB перестают видеть флэшку, которая теперь отображается в системе как fixed drive. Кроме того, мне приходилось слышать, что флэшку таким образом удавалось и вовсе прибить. Так что пользуйтесь на свой страх и риск. Добавлю, что программа эта, к сожалению, работает не со всеми флэшками.
Да, пока помню: чтобы увидеть результаты работы программы, флэшку надо вытащить и снова воткнуть.
Теперь (предварительно сохранив с флэшки всю информацию) можно убить существующий раздел и создать два новых (сделать это можно стандартными средствами Windows, зайдя в Control Panel | Administrative Tools | Computer Management | Disk Management). На первый (бóльший, отформатированный в FAT32 и помеченный как активный) снова зальём всё, что было на флэшке раньше плюс NervOS, а на второй, отформатировав его в NTFS с помощью HP USB Disk Storage Format Tool (качаем отсюда), зальём инсталлятор Windows XP. Осталось изменить menu.lst
title >> Windows XP Pro Setup: 1st & 2nd parts >>
root (hd0,1)
configfile /winsetup.lst
savedefault
и winsetup.lst:
timeout 10
default /windefault
title 1st part of Windows XP Pro Setup
root (hd0,1)
chainloader (hd0,0)/$WIN_NT$.~BT/SETUPLDR.BIN
savedefault 1
title 2nd part of Windows XP Prof Setup & "Start Windows for the first time"
root (hd0,1)
chainloader (hd0,1)/ntldr
savedefault
title << Return to the main menu <<
configfile (hd0,0)/menu.lst
Обратите внимание: в ссылках на вторую партицию (нумерация начинается с нуля) всюду пишем(hd0,1), а не (hd0,0) (нумерация дисков и партиций начинается с нуля).
...
Несколько слов о том, как именно нужно инсталлировать Windows XP с флэшки.
Флэшку обязательно нужно поставить первой в списке загрузочных устройств. Вынуть её можно только после того, как вы первый раз вошли в установленную систему под своим именем.
Пункт Windows XP Pro Setup: 1st & 2nd parts >> обязательно нужно поставить первым в главном меню флэшки. Сейчас объясню почему.
Процедура проходит следующим образом: загрузившись с флэшки, вы выбираете этот пункт в главном меню и попадаете в подменю этапов установки, где по умолчанию выбран второй этап. Вручную переключившись на первый, вы запускаете инсталляцию, после чего, скорее всего, отвлекаетесь на какие-то другие дела, потому как сидеть перед экраном полчаса ничего не делая сомнительное удовольствие. Так вот, если вы всё-таки отвлечётесь и компьютер отправиться на первую перезагрузку без вашего участия (скорее всего так оно и будет), после перезагрузки он автоматически загрузится с флэшки, через 60 секунд (см. menu.lst) перейдёт к инсталляции Windows XP, а потом автоматически же перейдёт ко второму этапу инсталляции. Что нам и требовалось.
Нерешённые проблемы
Запуск линукса с HDD
Казалось бы:
title Ubuntu 9.04 from HDD
root (hd1,4)
kernel /boot/vmlinuz-2.6.28-11-generic root=/dev/sda5 ro quiet splash noapic locale=en_EN
initrd /boot/initrd.img-2.6.28-11-generic
quiet
Ан нет! Почему-то GRUB for DOS в упор не видит установленной Ubuntu. Более того, find /boot/grub/menu.lst не возвращает ни-че-го (кроме глубокомысленного File not found :) Вначале я грешил на SATA, но потом прочитал в интернете, что у других с дисками такого же типа всё работает. Возможно, HDD слишком новый надо будет на всякий случай обновить BIOS и попробовать ещё раз.
Запуск GPartEd
Делаю всё по инструкции, но на каком-то этапе загрузка зацикливается на выдаче следующей группы сообщений:
NTFS Volume version 3.1
NTFS Volume version 3.1
kjournal starting.Commit interval 5 seconds
EXT3-fs:
mounted filesystem with ordered data mode
FAT: utf8 is not a recommended IO charset for FAT filesystem,
filesystem will be case sensitive
Минут через 5 процесс останавливается.
Запуск Ubuntu Alternate CD
Тут всё плохо. Я практически всегда использую для инсталляций именно этот дистрибутив, и вот он-то меня и подвёл. Делалось всё по инструкции, но удалось добиться только того, что сообщение
Unable to find a medium containing a live file system
изменилось на уведомление о невозможности извлечь информацию из файла /preseed/ubuntu.seed, который физически в означенном месте, конечно же, присутствовал.
На этом этапе я пока сломался.
Заключение
Друзья мои! Описанный выше процесс своей многочасовой протяжённостью утомил меня невероятно :) Ясно, что при таком раскладе инструкция получилась не слишком внятной и может содержать ошибки. Пожалуйста, пишите мне о них.
С уважением,
А.
наверх
|