Пользователь
14,0
карма
0,0
рейтинг
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.
@AlexP11223
карма 14,0
рейтинг 0,0
Реклама

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

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

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

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

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

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

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

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

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

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

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

            Всё, мои знания исчерпаны, я просто не знаю, чего ему не хватает.
            • skobkin
              0
              Попробуй утилитку от pendrivelinux. В комментах чуть выше написал ссыль.
              Сделай на флешке отдин раздел и отдай утилите ее на форматирование на ее усмотрение.
  • lightman
    0
    Можно использовать виртуальные машины: MobaLiveCD или VirtualBox.
    MobaLiveCD (компактная виртуальная машинам на деле оказался очень удобным: кидаешь .exe в корень флешки, запускаешь, он сам видит загрузчик и грузит его, показывая результат в своём окошке.
    Вопрос: нет ли чего подобного для Linux; для удобного тестирования меню загрузчика?
  • zebraxxl
    0
    Для проверки работоспособности многих программ необязательно каждый раз ребутать компьютер. Можно использовать виртуальные машины: 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 запустить от имени администратора. По крайней мере у меня так работает.
  • q0p
    0
    А не могли бы вы написать отдельную статью (или же дополнить эту) о том как на флешку запихнуть ещё и установщик/лайв-сиди хакинтоша?
    И сразу же вопрос связанный с хакинтошем — я у себя на харде для тестов выделил один логический диск, куда и хотел бы установить хакинтош. Не сотрёт ли он mbr на харде? не будет ли потом проблем с разделами из-под винды и из-под хакинтоша?
  • LeeSoft
    0
    У меня HP USBFW v2.0.6 вместо флешки записал таблицу разделов на 3Tb GPT диск. Будьте осторожны, софтина, похоже, экстримально устарела.
    • LeeSoft
      0
      А вот HP USB Disk Storage Format Tool v2.2.3 отработал на ура

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

Интересные публикации

Вакансии