Несколько установщиков Windows на USB-накопителе


12

Недавно я взял в руки одну из этих палочек SanDisk Extreme 64 ГБ и начал с ней возиться. Во время этой истории, пожалуйста, имейте в виду, что это модель, в которой установлен removableбит 0(что означает, что Windows видит все свои разделы по умолчанию - каждый отображается в проводнике как один диск).

Цели:

  1. Иметь много разных загрузочных дистрибутивов на одной флешке
  2. Среди них должен быть установщик Windows 7 И установщик Windows 8
  3. Только один раздел должен быть автоматически смонтирован в Windows (и предпочтительно в других ОС) - первый (хранилище для файлов). Это сделано для предотвращения случайного изменения загрузочных разделов или файлов на них. Это должно быть типа NTFS.
  4. По желанию, я бы также хотел, чтобы на этой флешке был полностью загруженный полностью персистирующий linux (желательно Ubuntu).
  5. Все эти функции должны быть доступны в одном меню, отображаемом во время загрузки устройства с USB-накопителя.

Ramblings:

Теперь все это может быть достигнуто довольно легко с помощью комбинации SYSLINUX и GRUB (вы увидите ниже). Однако есть одна проблема: все загрузочные элементы на основе Linux (те, которые используют create ramdisk -> load kernel -> have funсхему: например, PartEd Magic, Ubuntu Installer и т. Д.), Похоже, не имеют проблем с запуском из собственной папки на одном загрузочном разделе. Они прекрасно ладят, когда просто помещают их в разные папки и указывают на них отдельные пункты меню SYSLINUX (что бы они ни использовали после этого, это может быть просто еще один SYSLINUX :)).

Проблема (как всегда: D) в установщиках Windows. Они (или я должен сказать bootmgr) отказываются распознавать относительные пути. Если вы поместите один установщик Windows в папку, скажем Win7так, чтобы она выглядела так /Win7/bootmgr, то проклятая штуковина ищет, \Boot\BCDкогда передается управление (а не \Win7\Boot\BCD- местоположение, в котором она фактически хранится). Узнав, что, естественно, вы не можете поместить более одного установщика Windows в один раздел (одну структуру каталогов). Это нарушает ЦЕЛЬ 2 .

Текущая схема:

Нужно 10 репутации для публикации изображений :(. Вот схема визуализированная.

Описание:

  1. Обычный NTFS раздел. Делайте с ней все что угодно - это не повлияет на эти чувствительные загрузочные ссылки :)
  2. Загрузочный раздел FAT32. Здесь управление передается из MBR. Этот должен быть основным, чтобы можно было передавать управление из MBR. Он содержит основной SYSLINUX - тот, который показывает меню ( ЦЕЛЬ 5 и ЦЕЛЬ 1 ). Все разделы ниже расширены, чтобы поднять max-4-primary-разделов на диск
  3. Установщик Windows 7. Этот раздел содержит загрузочный сектор, который указывает на GRUB, который указывает /bootmgr(не спрашивайте, почему так много загрузчиков - это тестовая установка :)). Работает нормально, за исключением проблемы ниже ( ЦЕЛЬ 2 ).
  4. Установщик Windows 8. Этот раздел содержит загрузочный сектор, который указывает на GRUB, который указывает на /bootmgr. Работает нормально, за исключением проблемы ниже ( ЦЕЛЬ 2 ).
  5. Постоянный раздел Linux, на который была установлена ​​обычная версия Ubuntu (с той же флешки). Он использует GRUB для управления своим загрузочным меню. Также имеет загрузочный сектор, конечно ( цель 4 ).
  6. Linux Swap. Используется Linux на предыдущем разделе обычно, но не имеет ограничений относительно того, кто может его использовать.

Теперь все это кажется правильным (и оно работает) .. кроме ЦЕЛИ 3 .

Проблемы:

  1. Я пытался использовать hiddenфлаг, чтобы скрыть эти разделы от глаз Windows, и это работало хорошо, даже слишком хорошо. Это также скрыло их от взгляда установщика Windows. Когда я попытался установить Windows из скрытого раздела, установщик в основном не нашел, откуда он загружался: O. Это КРИТИЧЕСКИЙ вопрос.
  2. Я использовал 2 дополнительных раздела для размещения установщиков Windows. Это не очень хорошая схема, так как каждый раз, когда я хочу что-то изменить, и это не подходит, я должен переразбить. Это НЕ КРИТИЧЕСКАЯ проблема - я могу жить с этим.

Мои мысли:

  1. Есть вещи вне там как ISOLINUX и GRUB4DOS (они приходят , когда вы будете искать относительно этого). Из того, что я понял, они могут помочь мне на самом деле установить загрузочный .iso установщика Windows . Это правда? Некоторые страницы содержат предупреждение о смонтированных образах, так как это будет доступно только на этапе загрузки BIOS - при запуске установщика Windows он не сможет увидеть смонтированный образ. Это правда? Можете ли вы указать мне правильное направление?
  2. Может быть, я мог бы использовать какой-нибудь пользовательский установщик для Windows (потому что, по сути, я сражаюсь bootmgrздесь 100% времени) или chrootкак- bootmgrто так, чтобы он стал нормальным? Можно ли это сделать? Я думаю, что это все еще оставляет меня с проблемой, что раздел все еще скрыт, и установщик, вероятно, не увидит его
  3. Может быть, я мог бы взломать путь bootmgr, хотя это довольно смелое предположение :)

Если есть какие-либо дополнительные советы по этому поводу, вы можете обсудить это здесь. Я открыт для любых предложений. Если есть что-то, что необходимо уточнить или предоставить дополнительную информацию - не стесняйтесь спрашивать.

Большое спасибо!


Установщики WRT Windows: зачем вам несколько загрузчиков? Должна ли быть возможность изменить его записи, чтобы можно было запускать оба установщика из одного и того же раздела, используя более новую версию (то есть версию Windows 8)?
Марио

Можете ли вы привести пример, как это сделать? Насколько я понял, вы имеете в виду установку, в которой я использую один bootmgr, но несколько инсталляторов? Что-нибудь, что я мог прочитать об этом?
Gear54rus

Сам никогда не пробовал, но в основном менеджер загрузки на установочном DVD ничем не отличается от обычной установки жесткого диска, поэтому вы должны иметь возможность использовать такие инструменты, как BCDEdit, для создания «двойной загрузки».
Марио

Хорошо, я думаю, что нашел частичное решение. Я опубликую все это здесь, когда я проверю это полностью. Я все еще остаюсь с другой проблемой: как заставить установщик Windows увидеть скрытое разрешение
Gear54rus,

Я отредактировал файл BCD. Я распаковал установщик Windows 7 .iso в папку / Win7 в разделе SYSLINUX. Затем я вытащил bootmgrи bootиз Win7 в корневую папку и отредактированный /boot/BCDфайл, чтобы отразить те, что изменились в deviceи osdeviceузлах. После этого установщик нормально загружается из SYSLINUX через, chain.c32 fs ntldr=/bootmgrно после этого появляется страшное A required CD/DVD drive device driver is missingсообщение. Повторная вставка в другой порт USB не помогает. Когда я нажимаю, Browseя вижу, что ramdisk был смонтирован нормально и имеет все необходимые папки. Я снова потерян :(
Gear54rus

Ответы:


6

После долгого и в конечном итоге успешного путешествия я смог достичь всего этого.

Я создал учебник о том, как это сделать . Проверьте это.

По запросу я также публикую все это ниже:

Програмное обеспечение:

Прежде всего: вам нужен ПК с Windows 7/8 и административный доступ к нему (Vista может работать, не уверен). Это где учебник будет выполнен.

Чтобы выполнить все, что нам понадобится, этот программный пакет также зеркалируется на GitHub (нажмите Download ZIP ). [0] (отныне ссылки будут помечены [] ). Чтобы скачать его, вам может понадобиться зарегистрироваться там (не знаю почему).

Пакет программного обеспечения включает в себя:

  • Юми от pendrivelinux.com . [1]
  • altmbr.bin из пакета SYSLINUX , который позволяет загружать разделы по номеру. [2]
  • Несколько скриптов и один исполняемый файл (включая программу vmount - 32- и 64-битные версии от erwan.l и спящий 32/64 бит из этого потока, чтобы все это работало вместе [3] .

Кроме того, вам необходимо скачать следующее:

  • WinSetupFromUSB (позже WSFUSB). Это очень важно для этой схемы для работы. Используйте версию .exe, если у вас не установлен 7zip . Этот учебник написан в то время, когда версия 1.4 была последней. [4]

Опционально (программное обеспечение, которое я рекомендую, которое сделает процесс более простым и гибким, но не обязательным):

  • Gparted live .iso для разделения и установки флагов разделов (аналогами являются Parted Magic, который недавно решил заплатить, или Partition Wizard меньшего размера, но имейте в виду, что это не Gparted, и вам нужно иметь некоторый опыт для его работы). [5]
  • Notepad ++ - превосходный текстовый редактор для Windows с множеством плагинов. [6]

И, конечно, несколько установщиков Windows, .isoа также несколько загрузочных дистрибутивов Linux. Это может быть что угодно, что поддерживают YUMI и SYSLINUX (вы сможете проверить это позже в этом руководстве).

Когда вы загрузите все это, вы готовы к следующим шагам.

Концепция:

Здесь схема работы будет кратко обсуждена.

Схема, обсуждаемая здесь, - то, что я использую для своей установки. Это, конечно, не единственный способ достижения той же цели. Я сделаю все возможное, чтобы попытаться объяснить это, чтобы вы могли настроить установку под свои нужды.

Этот процесс лучше всего описан на рисунке. (извините за Paint, графический дизайн на самом деле не моя сильная сторона):

концепция

Вот и все. Я действительно не знаю, как объяснить это лучше. Я буду следить за этой веткой, не стесняйтесь задавать вопросы в ответах.

Действия:

  1. [Настройка программного обеспечения]

    1. Распакуйте пакет программного обеспечения [0] в какую-то папку ( все необходимое программное обеспечение указано выше, посмотрите, если вы этого еще не сделали ).
    2. Извлеките WinSetupFromUSB в ту же папку (чтобы он был рядом YUMI.exeи все остальное). Дважды щелкните по нему и распакуйте в ту же папку.
    3. Теперь возьмите папку с WinSetupFromUSB и перетащите ее на drag_here.cmdфайл. Примерно так (структура папок тоже должна быть такой): просьба не беспокоить Если вы все сделали правильно, появится окно с сообщением о завершении процесса:
      WinSetupFromUSB was set up successfully, you can delete that folder.
      Now it's time to run 'start_admin.cmd'.
      Press any key to continue...
    4. Как сказано, нажмите любую клавишу, чтобы закрыть окно. Еще не запускайте start_admin.cmd. Перейдите к следующему шагу, чтобы определить структуру разделов.
  2. [Разделение]

    1. Определите структуру разделов: у вас должен быть хотя бы один раздел хранения и хотя бы один загрузочный раздел . Загрузочный раздел должен быть типа FAT32 ( FAT32 имеет ограничение для самого большого файла - 4 ГБ и самого большого тома - 32 ГБ, который составляет 32768 МБ . Если вы планируете использовать большие файлы или тома, вы не можете использовать NTFS, но вы можете попробовать exFAT как эксперимент - я не пробовал) и хранилище может быть чем угодно, но я рекомендую NTFS. Мой выглядит следующим образом: раздел Структура хранилища - 32 ГБ NTFS, а раздел загрузки - 15 ГБ FAT32 (у него нет буквы, как у G: поскольку у него уже установлен скрытый флаг, об этом вы узнаете позже).Если вы используете большой диск, возможно, стоит поставить загрузочный раздел на первое место, поскольку некоторые BIOS имеют проблемы с чтением за определенными пределами .
    2. Здесь описан способ управления дисками, но вы можете использовать любое другое программное обеспечение, которое вам нравится, для применения структуры разделов (например, Gparted [5], упомянутый ранее, или Bootice, который можно запустить из WinSetupFromUSB ). Откройте Управление дисками в Windows. Это можно сделать с помощью поиска в меню «Пуск» (введите « Управление дисками» ) или в командной строке Windows: diskmgmt .
    3. Примените желаемую структуру разделов. Щелкните правой кнопкой мыши на любом разделе, чтобы управлять им. Щелкните правой кнопкой мыши нераспределенное пространство, оставшееся после удаления раздела, чтобы создать новый раздел. Всегда выбирайте назначение буквы диска, и вы можете свободно форматировать ее прямо в том же мастере: Создание раздела
    4. Перед выходом из управления дисками запишите номер вашего загрузочного раздела и номер вашего диска в системе. Вот как они выглядят в управлении дисками: индексы здесь номер диска равен 2, а номер загрузочного раздела равен 1 .
    5. Когда вы закончили применять схему разделов, пришло время сделать этот диск действительно загрузочным .
  3. [Добавление базовой среды загрузки (YUMI)]

    1. Перейдите в папку с шага 1 . Старт YUMI.exe.
    2. Установите флажок Показать все диски и выберите свой загрузочный раздел из выпадающего списка. При желании вы также можете отформатировать его.
    3. Теперь пришло время добавить несколько дистрибутивов на основе Linux. В качестве примера я выбрал Partition Wizard (вы можете выбрать любой другой дистрибутив, а также добавить более одного, ссылка на Partition Wizard приведена в разделе ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ). На этом этапе рекомендуется добавить все дистрибутивы на основе Linux, потому что это будет сложнее сделать позже после финализации диска .
    4. Выберите Обзор и выберите свое .isoизображение. Экран будет выглядеть так: YUMI
    5. Нажмите « Создать» и следуйте инструкциям на экране. Когда он спросит, хотите ли вы добавить больше, вы можете выбрать «да» и повторить процедуру ( очевидно, не выбирайте вариант форматирования при повторении процедуры ), чтобы добавить другой дистрибутив.
    6. На данный момент диск загрузочный. Отключите диск и подключите его снова (это необходимо для Windows, чтобы правильно определить раздел как активный).
    7. Перейдите в папку с шага 1 и запустите start_admin.cmd от имени администратора . Это важно для его работы, щелкните его правой кнопкой мыши и выберите « Запуск от имени администратора» : Запуск от имени администратора
    8. Он попросит вас указать номер диска и загрузочный раздел (шаг 2.4 ). Снова откройте Управление дисками и найдите те числа, которые вы сделали в шаге 2.4 . Укажите соответствующие цифры и нажмите Enter .

    [ВНИМАНИЕ] Опять же, я не несу ответственности за то, что происходит с вашими дисками (включая те, которые не упомянуты в этом руководстве), если вы не указали правильные номера дисков и разделов на этом шаге или в любом другом месте.


    1. В конце, он спросит вас, хотите ли вы сжать исполняемые файлы перед тем, как положить их на USB-накопитель. Размер редко является проблемой в наше время, поэтому я рекомендую вводить nздесь (неожиданные побочные эффекты могут появиться позже, если вы нажмете y, делайте это, только если вы знаете, что делаете).
  4. [Добавление установщиков для Windows (WinSetupFromUSB)]

    1. Вернитесь в ту же папку, перейдите в папку WSFUSB ( не в папку WinSetupFromUSB ) и запустите WinSetupFromUSB.exe, соответствующий архитектуре вашей системы.
    2. Выберите раздел в верхнем выпадающем меню. Обязательно сделайте это осторожно.
    3. Установите флажок рядом с установщиком Windows 7/8 и нажмите кнопку справа, чтобы выбрать установщик Windows .iso .
    4. Выберите поле Дополнительные параметры . Убедитесь, что Не проверяете и не устанавливаете MBR grub4dos и не запускайте Q-Dir перед установкой .
    5. Дважды проверьте настройки и убедитесь, что они выглядят почти на 100% идентично (кроме диска и .isoпути) этому примеру: WSFUSB
    6. При желании вы можете выбрать Пользовательские имена меню для Vista / 7/8 / Server Source, чтобы вы могли видеть пользовательские имена при выборе дистрибутивов Windows во время загрузки.
    7. Когда вы будете готовы, нажмите кнопку GO . Если вы выбрали коробку на шаге 4.7 , она спросит имена. После этого дождитесь завершения операции .
    8. Повторите шаги для каждого дистрибутива Windows, который вы хотите добавить.
  5. [Завершение]

    1. На данный момент у нас есть 2 загрузочных структуры : одна для Linux ( начинается с MBR ) и одна для Windows (начинается с bootmgr в вашем загрузочном разделе). Нам нужно связать их. Откройте загрузочный раздел в проводнике Windows .
    2. Открыть файл <drive root>\multiboot\syslinux.cfg. Он содержит информацию о меню, которое отображается при загрузке с вашего диска. Более подробную информацию об этом можно найти здесь: menu.c32 - синтаксис syslinux.cfg , команда chain.c32 chainloader . Сейчас нам нужно сделать пункт меню, который позволит нам загружать наши установщики Windows. Добавьте следующие строки внизу (или между другими пунктами меню), чтобы создать новый пункт меню:
      MENU LABEL Windows Installers/Recoveries >>>
      MENU INDENT 1 
      KERNEL chain.c32
      APPEND fs ntldr=/bootmgr
      Желательно добавить пустой символ новой строки до и после этого кода . Настройте метку входа в меню, если хотите. Сохраните и закройте файл.
    3. [ДОПОЛНИТЕЛЬНО ОТ ЗДЕСЬ] Снова откройте WinSetupFromUSB . Мы удалим устаревший пункт меню Back to Main Menu (Grub4dos) из меню установщиков Windows. Выберите инструмент Bootice .
    4. Перейти к BCD Edit . Выберите другой файл BCD и найдите <drive root>\boot\bcdфайл в загрузочном разделе: BOOTICE
    5. Нажмите Easy mode, чтобы отредактировать файл BCD (данные конфигурации загрузки): BCD ПРИМЕЧАНИЕ. Если у вас есть только 1 установщик, он будет загружен сразу после нажатия на добавленный syslinux.cfg пункт меню, без отображения какого-либо меню вообще . Кроме того, вы можете нажать Установить по умолчанию для любого пункта меню, который вы хотите сделать по умолчанию . Нажмите Закрыть и выйдите из Bootice tool. Также выйдите из WinSetupFromUSB .
  6. [Очистка (ДОПОЛНИТЕЛЬНО)]

    1. Теперь нам нужно удалить устаревшие файлы. Вы можете пропустить этот раздел, если вам нет дела до такого рода вещей. Откройте загрузочный раздел в проводнике Windows. Также откройте первый раздел на вашем диске ( они могут быть одним и тем же ).
    2. Для работы этого диска необходимы следующие файлы и папки ( если папка указана в списке, все ее содержимое необходимо сохранить ):
      \boot
      \efi
      \multiboot
      \WINSETUP
      \bootmgr
      
    3. Следующие файлы и папки могут быть безопасно удалены:
      .disk
      \default
      \grldr
      \menu.lst
      \plpbt.bin
      \shifthd.bat
      \usbdrive.tag
      
      Удалите их по желанию . Кроме того, Windows может создать свою глупую информацию о томе системы - вы также можете удалить ее, если вам повезет. Кроме того, в этот момент вы можете переименовать свой загрузочный раздел из MULTIBOOT в любое другое имя (я предпочитаю просто Boot ). Вы можете сделать это так же, как с любой папкой через проводник Windows.
  7. [Скрытие загрузочного раздела (опционально)]

    1. Теперь вы можете захотеть скрыть свой загрузочный раздел, чтобы предотвратить случайное изменение любых файлов на нем. Это означает, что он не будет виден в большинстве систем по умолчанию при вставке диска, но вы все равно сможете загрузиться с него. Снова откройте WinSetupFromUSB .
    2. Откройте инструмент Bootice и выберите вкладку Physical Disk, если она еще не выбрана. Выберите свой диск (тщательно) в раскрывающемся меню.
    3. Нажмите кнопку « Управление деталями» . Список разделов будет показан.
    4. Найдите свой раздел в списке и нажмите кнопку « Скрыть» . Появится окно, подтверждающее успех . Все это будет выглядеть так: Скрыть это вот и все . Ваш раздел больше не монтируется автоматически (не будет иметь буквы диска) на большинстве систем, и файлы, необходимые для загрузки диска, не будут изменены случайно .

Кроме того, я предпочитаю, чтобы программа vmount ( [3] в разделе ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ) могла быстро монтировать скрытый раздел под Windows, если это необходимо.

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

Кредиты:

Wonko , erwan.l , ilko , Steve - участники сообщества reboot.pro, которые мне очень помогли в этой теме . На этом путешествие закончилось :)

Боб, который первоначально намекнул на водителя ImDisk в этой комнате .

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

Рики, который исправил ошибку в отступе.


Было бы здорово, если бы вы тоже могли скопировать свое решение здесь.
Кристиан Чиупиту

Красиво сделано. Удивительное подробное руководство.
Девиан,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.