19 июля 2011 в 21:43

Создание мультизагрузочного USB HDD или флешки из песочницы



Загрузочный USB Flash или HDD накопитель удобен тем, что можно отказаться от использования CD/DVD для установки ОС и использования диагностических программ типа Memtest, MHDD, Acronis TI.

«Мультизагрузочная» флешка или HDD хороши тем, что можно не форматировать весь диск для каждой программы, а один раз установить туда все необходимые программы и при загрузке с него выбирать нужную через красивое меню. В случае с HDD удобно создать для этого отдельный небольшой раздел.

Существует множество решений для флешек (например, http://eee-pc.ru/wiki/софт:usb_multiboot), но, как правило, они не работают с USB HDD. На хабре я нашел только статью об установке Win7 с USB HDD, но год назад попытки воспроизвести это не увенчались успехом. Для установки Windows 7 с флешки существует MS Win7 DVD Tool, но он опять же не работает с HDD. Поэтому давайте создадим свой мультизагрузочный USB HDD с помощью GRUB4DOS.

Нам понадобится:
  • USB HDD (все описанное должно работать и для флешек).
  • ОС Windows (естественно можно аналогично сделать это и из ОС на базе Linux, но у меня сейчас нет возможности проверить работоспособность и наличие «подводных камней»).
  • Материнская плата (BIOS) с поддержкой загрузки с USB накопителей. Если загрузка с USB не поддерживается, можно использовать Plop, об этом ниже.


Начнем


  1. Скачиваем HP USBFW и форматируем наш накопитель. Обычно все, в том числе и я, пропускают этот шаг. Возможно, будет работать и без него, но лично я перепробовал все стандартные варианты форматирования из Windows 7, однако загрузка с моей 320ГБ Тошибы не работала (зависала сразу после выбора в Boot menu) до использования этой утилиты.
  2. Если воспользовались HP USBFW из прошлого пункта, то можно удалить созданный им на весь диск раздел и создать свой, поменьше (желательно FAT32, иначе могут возникнуть проблемы с некоторыми программами и ОС), а оставшееся место оставить для «файлопомойки».
  3. Устанавливаем загрузчик GRUB4DOS в MBR. Рекомендуется использовать первый вариант, чтобы не ошибиться с выбором диска или раздела.
    1. Можно воспользоваться GUI: для этого скачиваем grubinst-1.1-bin-w32-2008-01-01, запускаем grubinst_gui.exe, выбираем диск, жмем Refresh в Part list и выбираем нужный раздел. Остальные настройки можно не трогать.
    2. Либо в консоли командой:
      grubinst.exe hd(номер диска, номер раздела)
      Номер диска можно узнать в «Управлении дисками» (diskmgmt.msc).
  4. Копируем файлы grldr и Menu.lst из архива grub4dos-0.4.4.zip в корень раздела.

Можно перезагружаться и проверять работоспособность нашего мультизагрузочного накопителя.

Для проверки работоспособности многих программ необязательно каждый раз ребутать компьютер. Можно использовать виртуальные машины: MobaLiveCD или VirtualBox. Для VB выполняем в консоли:
"C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "C:\USBHDD.VDI" -rawdisk \\.\PhysicalDrive1
где число в PhysicalDrive — номер нашего загрузочного диска, и указываем полученный файл (C:\USBHDD.VDI) в качестве жесткого диска при создании машины. Однако некоторые ОС (например, Windows 7) могут не работать таким способом.

Примеры установки некоторых ОС и программ


Memters86+

Скачиваем ISO образ с офф. сайта memtest.org/download/4.20/memtest86+-4.20.iso.zip и кидаем его на наш загрузочный HDD (не забываем распаковать .zip архив).

Открываем Menu.lst текстовым редактором, добавляем туда следующее:
title Memtest 
find --set-root /mt420.iso 
map /mt420.iso (hd32) 
map --hook 
root (hd32) 
chainloader ()

И попробуем разобраться, что эти команды означают.
title Memtest — название пункта (Memtest), которое будет отображаться в меню.
map /mt420.iso (hd32) — загрузка ISO образа, находящегося в корне загрузочного диска (эмуляция CD-ROM).
root (hd32)— делает виртуальный CD-ROM корневым.
chainloader () — передает управление другому загрузчику (если в скобках ничего не указано, то используется корневой, в данном случае hd32).

Ubuntu 10.4


Также кидаем ISO образ с ubuntu.com на HDD и прописываем в Menu.lst (образ переименован в ubuntu1.iso):

title Ubuntu
map /ubuntu1.iso (hd32)
map --hook
root (hd32)
kernel /casper/vmlinuz iso-scan/filename=/ubuntu1.iso boot=casper quiet splash -- locale=ru_RU
initrd /casper/initrd.lz


Windows 7


А вот с Win 7 немного сложнее.

Способ 1:


Копируем все файлы с диска (образа) Windows 7 и добавляем в Menu.lst:
title Install Windows 7
find --set-root /bootmgr 
chainloader /bootmgr


В некоторых случаях работает, но могут возникнуть различные ошибки во время установки. К тому же таким способом будет работать только если на hdd находится одна Windows 7, иначе (например, если хотим поместить туда х86 и х64) запустится установка первой найденной.

Способ 2:


Небольшой скрипт автоматизирующий некоторые операции (в т.ч. добавление пункта в Menu.lst) по изменению образа. Источник — greenflash.su/forum/5-661-1, там же ссылки на подробное описание того, что он делает.

Способ 3:


Качаем imdisk, запускаем, копируем полученную папку imdisk на наш диск.
Создаем в этой папке файлы со следующим содержанием:

SetupImDisk.cmd
@ECHO ON
rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 .\imdisk.inf


SetupCDROM7.cmd
@ECHO ON
Set fullname=%srcdrv%\win7.iso
imdisk -a -f %srcdrv%\win7.iso -m #:


Setup.bat
@ECHO OFF
for %%x in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%x:\imdisk\SetupImDisk.cmd set srcdrv=%%x:
echo Find the USB in %srcdrv%\
echo.
cd\
%srcdrv%
cd imdisk
echo Begin with SetupImDisk.cmd
echo.
call %srcdrv%\imdisk\SetupImDisk.cmd
@ECHO OFF
echo.
echo Now going to SetupCDROM.cmd
echo.
pause
echo.
call %srcdrv%\imdisk\SetupCDROM7.cmd
@ECHO OFF
echo.
echo Done. Have Fun.....
echo.
pause
for %%y in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%y:\look.win set install=%%y:
cd\
%install%
cd sources
setup.exe
exit 

Либо берем здесь уже готовую папку.

Кидаем образ Windows 7 в корень диска (не забываем переименовать его в win7.iso или соответственно изменить имена во всех файлах) и в Menu.lst добавляем:

Title Install Win7
map /win7.iso (hd32)
map --hook
chainloader (hd32)


И во время установки Win 7, когда попросит драйвер CD-ROM, открываем консоль (SHIFT+F10) и запускаем setup.bat:
pushd E:\imdisk — вместо Е буква нашего раздела HDD 
setup.bat


Источник — chapaty.org/kasha/software/usb-hdd-install-iso-win-7-xp-ubuntu.html.

UPD: автоматизация этого способа: rghost.ru/20467691 либо greenflash.su/_fr/7/7487664.7z. Файлы из архива (кроме menu.lst и seven.iso) необходимо скопировать в корень раздела (либо соответственно изменить пути в Menu.lst).

Возможные проблемы и ошибки



Error 60: File for drive emulation must be in one contiguous disk area

Решение: нужно дефрагментировать образ. Например, с помощью программы Contig от Марка Руссиновича. Использование: contig.exe g:\ubuntu1.iso в консоли.

BIOS не поддерживает загрузку с USB, зависает, долго грузится и другие проблемы, связанные с загрузкой с USB HDD

Решение: Plop boot manager. Вариантов использования много и на их описание не хватит места, поэтому инструкцию на русском можно найти, например, тут.

Надеюсь, эта статья помогла вам разобраться в создании мультизагрузочного жесткого диска или флешки.

Более подробный мануал по GRUB4DOS есть здесь (перевод на русский язык, местами кривой) либо в README_GRUB4DOS из архива с GRUB4DOS.

UPD1: перезалит скрипт из 2 способа вин7: ошибся и выложил старую версию, в ней были проблемы с х64.
UPD1.1: добавлен автоматизированный 3 способ вин7.
+69
212358
433

комментарии (60)

0
NeOn4eG, #
iso не самый лучший вариант, ведь он выгружается в оперативную память, и её размер должен быть больше образа. Или я ошибаюсь?
Сам пробовал для каждой ос сделать свой раздел на флешке, и оттуда устанавливать. но у меня не заработало.
0
AlexP11223, #
Насколько я понял из ридми — чтобы грузилось в память надо использовать map --mem (по ссылке о Plop в последнем варианте это используется).

Сейчас попробовал запустить на VB с 256МБ установку Убунты (~700МБ образ) — работает.
+1
NeOn4eG, #
Спасибо, попробую…
+1
KaneUA, #
Всё читается с диска. Главное, чтобы весь файл лежал от начала до конца в упорядоченных секторах без перерывов. По крайней мере, так было раньше.
0
maximumkpi, #
Спасибо автору, очень полезная информация, хотя раньше использовал это но многое не устраивало, как и всегда в сборках. Поэтому буду пробовать)
+3
Richard_Ferlow, #
сейчас можно все сделать проще с помощью zalman zm-ve 200
0
FIZIK, #
С ним тоже не все гладко, сталкивался с тем, что не на всех материнских платах работает (хотя у них есть поддержка загрузки с usb cd-rom), в то же время загрузка с флешки или usb винта идет нормально. Еще есть проблема, если в линуксе что-нибудь записать на винт, бывает что образы перестают определятся пока их заново под виндой не перепишеш.
0
Richard_Ferlow, #
согласен, но думаю в том способе что автор предлагает подобные проблемы тоже будут
+2
AlexP11223, #
Зато он не требует дополнительных вложений :) usb hdd у многих есть.
0
jscar, #
у меня начинало работать в большинстве случаев, если поставить «cd-only» режим вместо dual
0
FIZIK, #
Всегда загружаюсь в cd-only, уже столкнулся с 4-мя такими случаями. В биосе определяется нормально но тупо не грузится ни с одного образа, хотя на этом же компе, если смотреть под виндой, сиди драйв работает нормально. Авообще, согласен, очень удобная штука. Но проблемы после работы в линуксе накаляют безмерно. Подозреваю косяк линуксового ntfs драйвера но доказать не могу.
+1
jscar, #
так кто мешает поставить на девайс extFat- прошивку?

а лично я бы вообще рекомендовал поставить оригинальную прошивку от iodd, и свежее и чаще обновляется
0
FIZIK, #
спасибо за наводку
0
Richard_Ferlow, #
А подскажите как это сделать? Пробовал в лоб — не вышло, только русские имена файлов сделать(не знаю зачем мне они))
0
jscar, #
сделать что именно? поставить exFat или i-odd-прошивку?
0
Richard_Ferlow, #
i-odd прошивку
0
jscar, #
всё просто :)
на сайте i-odd.com в разделе «support-download» есть всё необходимое.

для того, чтобы появилась возможность ставить оригинальные прошивки нужно сделать «Firmware Repair» (ссылка на мануал (Firmware Recovery) прямо под заголовком «Utility».

если с первого раза не пройдет (у меня выдало ошибку), нужно просто сразу повторить процесс, не закрывая программу

и стоит иметь в виду, что больше не будет возможности поставить zalman-прошивки, только iodd

0
Lobey, #
Использую VE-200 в работе, загружался с нескольких _десятков_ различных матерей и ноутбуков, ни одной несовместимости. Смутно подозреваю, что проблемы могут быть в руках пользователей… Хотя, конечно, не бывает одного решения на все случаи жизни.
0
Andrusha, #
На ноутбуках Acer (Aspire 5720 и какой-то Extensa). С флэшки кстати тоже отказались грузиться.
0
pietrovich, #
Ага, осталось только найти его в Украине в продаже :/
Раз в пару недель пытаюсь его отыскать и пока ни у кого не нашел.
–2
fozzy, #
может хватит?
+1
AlexP11223, #
Извините, вы о чем? Что хватит?
–1
fozzy, #
Кто еще не знает как создать загрузочную флешку? Даже с мульти-бутом…
+3
AlexP11223, #
Каюсь, не нашел эти топики когда искал перед написанием своего. Но судя по количеству добавлений в избранное и вопросов в аську знали все-таки не все. К тому мне кажется, что в этом топике предоставлена более полная информация по этой теме.
+1
jscar, #
Zalman ZM-VE200 — лучшее из решений :)
0
gionet, #
Только что хотел это написать, очень удобная штука в работе

Жду, когда кто-нить догадается usb флешку сделать с той же функцией
0
Richard_Ferlow, #
По идее относительно схожий функционал можно получить на некоторых чипсетах флэшек, там можно часть пространства сделать в виде cd-rom с данными образа. На Alcor чипах вроде есть такое
+1
Colobock, #
Второй месяц не могу застать его в продаже. Или третий уже…
По теме — дистрибутив Win7 перекладывается на внешний винт или флешку весьма легко с помощью UltraISO: открывается ISO образ дистрибутива, подключается винт, в меню «самозагрузка» выбирается пункт «записать образ жесткого диска», выбираем носитель, форматируем и через несколько минут получаем готовый загрузочный винчестер с дистрибутивом.
Недостатков у этого метода два — UltraISO стоит $29.95, как Total Commander и положить два дистрибутива разных ОС не получится таким методом. Зато можно использовать один единственный ISO Win7 для установки любой версии Win7, просто удалив файл ei.cfg из папки sources\
0
AusTiN, #
>Зато можно использовать один единственный ISO Win7 для установки любой версии Win7, просто удалив файл ei.cfg из папки sources\
Это как? У меня есть образ W7 Professional, я удаляю ei.cfg и могу из этого же самого диска установить хоть Home Basic хоть Ultimate?
+2
Colobock, #
Да, при установке появится меню выбора редакции.
0
AusTiN, #
А откуда в образе Professional возьмутся недостающие файлы от Ultimate, например?
0
Colobock, #
Сравните размер образов. Они идентичны.
Разумеется, x86 отличается от x86-64
imageshack.us/photo/my-images/688/24296497.png/
imageshack.us/photo/my-images/839/24800865.png/
+1
AusTiN, #
Честно, вы открыли мне глаза. Не знал…
0
Colobock, #
Вот такая менюшка:
imageshack.us/photo/my-images/98/windows7install9.jpg/
0
jscar, #
я сам отслеживал поставки по всей России и не только, появлялся исключительно за Уралом в продаже, пропадая уже через пару дней. а с ebay заказывать душила жаба — цена в 2 раза выше (80-90 уе против 40). в итоге девайс был куплен и отправлен по почте знакомым из Новосибирска :)
0
Colobock, #
В питерском отделении Ulmart он появлялся дважды по десятку штук белых и черных. Появлялся со статусом «зарезервировано» и в свободную продажу не поступал.
0
jscar, #
я сам за ним с марта по начало июня «гонялся» в надежде перехватить его в Спб или Мск. за Уралом его поймать оказалось проще :)
0
Colobock, #
Я в Питере нашел, но мне стало лень за ним переться — Outpost Юлмарта гораздо ближе и забрать в ста метрах от дома мне проще. Да и конторка показалась странной.
Не горит, настроил автоматическое уведомление по SMS при поступлении в продажу. Жду…
0
dice, #
В «Икс-ком СПб» есть в наличии(уж не сочтите за рекламу), сегодня как раз звонил, уточнял.
–3
Kindman, #
В вопросе с мультизагрузкой (с выбором операционной системы при старте компа) как-то совершенно незаслуженно забыт Windows 98. Речь идет не о графической среде, а режиме командной строки, и файлах CONFIG.SYS и AUTOEXEC.BAT, в которых можно прописать запуск кучи утилит, и организовать меню.
0
Xarakternik, #
Совершенно заслуженно забыт.
А вот про груб, через который можно в реалтайме в консоли примонтировать и загрузится разве что с чайника — вот это забыли.
0
Kindman, #
Я из-под «доса» (командной строки Win98 до запуска GUI) запускаю программу PQBOOT.EXE для выбора одного из трех загрузочных разделов диска. Очень удобно, когда несколько разных загрузчиков конфликтуют между собой.
0
skobkin, #
Сначала искал мануал типа этого. Не нашел, но наткнулся на это:
www.pendrivelinux.com/yumi-multiboot-usb-creator/
0
diamant, #
А загрузочный диск Lion туда впихнуть можно?
Ну, чтобы два раза не вставать.
0
peregon, #
Вопрос!
Как сделать мультизагрузочную флешку (usb hdd) из нескольких дистрибутивов (не live) win7.iso?
вопрос не праздный, с несколькими хр проблем нет.

0
peregon, #
дополню — редактировать файл install.win и экспортировать нужные редакции в него — это костыль, но работает. однако хотелось бы иметь возможность менять нужные win7.iso заливая на готовую флешку подредактировав при этом например menu.list
с win7 — не прокатывает.
был бы безумно раз совету.
0
Andrusha, #
Про семёрку. Пользуюсь только первым пунктом, проблем не возникало, а для нескольких вариантов Windows 7/ Vista/Server 2008 можно насоздавать пропатченных bootmgr (bootmg1, bootmg2...), которые будут указывать на разные папки. Дистрибутивы одной винды (Windows 7, например) можно объединить в 1 или сразу скачать какой-нибудь 18in1.
НЛО прилетело и опубликовало эту надпись здесь
0
lightman, #
Я некоторое время назад пытался сделать свою флешку (Transend Ultra-Speed 8 gb) мультизагрузочной. Перепробовал несколько методов (предлагаемых в компактном Linux-дистрибутиве PuppyRus, там есть собственная менюшка для записи дистра на флешку/диск), но так и не смог сделать флешку загрузочной. Проверял на виртуальных машинах (VMware, Virtual Box) и нескольких компьютерах и ни один из них загрузиться с флешки так и не смог, каждый пишет «вставьте загрузочное устройство».

Может ли быть такое, что флешка в принципе не поддерживает загрузку с себя?
0
skobkin, #
А раздел загрузочный на флешке был сделан загрузочным? Имеется в виду флаг загрузки.
0
lightman, #
Да, если я правильно понимаю что «загрузочный» или «активный» это одно и то же в терминологии различных программ для работы с разделами диска.
0
skobkin, #
Не видел ни разу «активных». Говорю за fdisk или, к примеру, за стандартный убунтовский менеджер дисков.
0
skobkin, #
Сделай:
fdisk -l /dev/твоя_флешка
или просто
fdisk -l
выведет список всех разделов для всех дисков, звездочкой пометит загрузочный ли раздел.
0
lightman, #
Да, насколько я помню, загрузочным он был, я этого перепроверял несколько раз.
Файловые системы пробовал fat32 и ext2. Загрузчик (grub4dos) прописывал как в MBR, так и на этот самый загрузочный раздел. Сам раздел был 200 мегабайт размером, вроде не слишком много и не слишком мало.

Всё, мои знания исчерпаны, я просто не знаю, чего ему не хватает.
0
skobkin, #
Попробуй утилитку от pendrivelinux. В комментах чуть выше написал ссыль.
Сделай на флешке отдин раздел и отдай утилите ее на форматирование на ее усмотрение.
0
lightman, #
Можно использовать виртуальные машины: MobaLiveCD или VirtualBox.
MobaLiveCD (компактная виртуальная машинам на деле оказался очень удобным: кидаешь .exe в корень флешки, запускаешь, он сам видит загрузчик и грузит его, показывая результат в своём окошке.
Вопрос: нет ли чего подобного для Linux; для удобного тестирования меню загрузчика?
0
zebraxxl, #
Для проверки работоспособности многих программ необязательно каждый раз ребутать компьютер. Можно использовать виртуальные машины: MobaLiveCD или VirtualBox. Для VB выполняем в консоли:
«C:\Program Files\Oracle\VirtualBox\VBoxManage» internalcommands createrawvmdk -filename «C:\USBHDD.VDI» -rawdisk \\.\PhysicalDrive1
где число в PhysicalDrive — номер нашего загрузочного диска, и указываем полученный файл (C:\USBHDD.VDI) в качестве жесткого диска при создании машины. Однако некоторые ОС (например, Windows 7) могут не работать таким способом

Для того что бы это заработало в Windows 7 необходимо VB запустить от имени администратора. По крайней мере у меня так работает.
0
q0p, #
А не могли бы вы написать отдельную статью (или же дополнить эту) о том как на флешку запихнуть ещё и установщик/лайв-сиди хакинтоша?
И сразу же вопрос связанный с хакинтошем — я у себя на харде для тестов выделил один логический диск, куда и хотел бы установить хакинтош. Не сотрёт ли он mbr на харде? не будет ли потом проблем с разделами из-под винды и из-под хакинтоша?
0
LeeSoft, #
У меня HP USBFW v2.0.6 вместо флешки записал таблицу разделов на 3Tb GPT диск. Будьте осторожны, софтина, похоже, экстримально устарела.
0
LeeSoft, #
А вот HP USB Disk Storage Format Tool v2.2.3 отработал на ура

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