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 , хотя это довольно смелое предположение :)

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

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

1 ответ1

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 ПРИМЕЧАНИЕ. Если у вас есть только один установщик, он будет загружен сразу после того, как вы нажмете на элемент меню, который вы добавили в 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, их назначении и способах их редактирования в этом оригинальном вопросе. Вот где началось путешествие.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .