Также я сделаю упор на то, чтобы как можно меньше
Кому интересно — прошу под кат.
Предыстория
Последние пару лет я устанавливал ОС линейки Windows NT 6.0+ исключительно с USB носителя. Иногда это была флешка, чаще — USB-HDD. (Далее для простоты буду называть установочный USB носитель просто — флешка).
Но в установочных носителей Windows есть неприятная особенность — жёстко прописаны пути к установочным файлам. Т.е. как минимум в корне флешки должны быть:
[boot]
[sources]
bootmgr
Если нужна загрузка по UEFI (например, для установки системы на диск с GPT-стилем разделов), то — плюс ещё
[efi]
.Без хакинга эти имена не поменять. Для чего это может понадобиться? Да для того, чтобы иметь несколько дистрибутивов Windows на одной флешке! Ведь кто-то не переваривает Win8, ему Win7 ставь, а кто-то хочет систему поновее и пошустрее…
Раньше я особо не заморачивался и просто скопировал эти файлы и папки с одного установочного ISO-шника (скажем, Win 8.1 x64). Переименовал
[sources]
в [sources_w8x64]
. Потом покопировал с остальных ISO-шников только [sources]
, попутно переименовывая их. И всё. Больше никаких телодвижений кроме записи загрузочного сектора и активации раздела флешки я не делал. В результате у меня была приблизительно такая структура файлов на флешке:[boot]
[sources]
[sources_w7x86]
[sources_w8x64]
[sources_w8x86]
bootmgr
Когда надо было установить какую-то из систем, я просто переименовывал соответствующие папки так, чтобы файлы требуемой Windows были в папке
[sources]
.Так продолжалось пару лет. Хорошо, что делать это приходилось не часто. Но настал день, когда нужно было погонять ноутбук одногрупницы на предмет неисправностей диска. Среди всего прочего было проведено и стирание информации без разбору — последовательное перезаписывание секторов по LBA, не взирая на такие мелочи как MBR, разделы и т.п. Естественно, после всех истязаний надо бы подготовить компьютер к использованию: разметить диск, поставить систему, приложения и т.п. Но надо ставить не что иное, как Windows 10! А то ведь точно забракует! Оно-то и не удивительно: если уже пользовалась 10-кой, то на старую винду возвращаться не будет. Скачал Media Creation Tool и принялся с его помощью качать образы 10-ки. Скачал. Поставил ей систему, драйверы и некоторые самые необходимые приложения. Visual Studio и остальное сама поставит. Но бардак на флешке совсем не радовал:
[boot]
[sources]
[sources_w7x64]
[sources_w7x86]
[sources_w8x64]
[sources_w8x86]
[sources_w10x86]
bootmgr
Эти обстоятельства послужили тригером к решению:
Хватит это терпеть!
После прочтения нескольких статей в интернете о том, как это можно организовать, некоторые решения мне показались уж слишком извращенскими.
Например: с помощью Grub4Dos копировать файл ответов, записывать в файл путь к нужному ISO, монтировать этот ISO, загрузиться в WinPE, после этого снова монтировать этот же ISO (т.к. предыдущий теряется из-за перехода из реального режима в защищённый), потом искать букву диска с файлами установки… Ах, да! Если установочный носитель — это USB-HDD, а не флешка, то нужно перед этим ещё и подключать флешку, в корне которой лежит файл ответов… Словом — ужас.
Конечно, в этом можно найти определённую логику: такой подход позволяет не распаковывать ISO-шки, а положить их в отдельную папку на флешке… Но надо поддерживать кучу других файлов…
Короче, это не наш путь.
Творим
План
Мы не будем играться с монтированием ISO, а просто разместим файлы для загрузки на установочном носителе. Но не просто перенесём эти файлы с установочных ISO (как было до этого), а немного переделаем их структуру так, чтобы можно было просто выбирать версию Windows для установки, не делая больше никаких рутинных действий (см. предысторию).
Также мы не будем здесь рассматривать создание дистрибутива Windows AiO (когда в одном
sources\install.wim
располагается множество разных версий системы), поскольку такой способ имеет много недостатков, среди которых:- один файл огромного размера
- нельзя использовать FAT32, а следовательно и UEFI
- невозможно впоследствии использовать флешку меньшего объёма пропустив копирование ненужных дистрибутивов
- трудности с обновлением конкретного дистрибутива (надо удалить из образа старый, и добавить новый)
- не факт, что вообще можно поселить в одном образе, например, Win7 и Win10 (не проверял)
Делать мы всё будем руками и, как было обещано, без стороннего ПО. А то есть куча разных прог для создания супер мега крутых мультизагрузочных дисков, но толком не ясно что они делают и как. А у нас план — без стороннего софта и с минимальным вмешательством!
Подготовка флешки
Определитесь с файловой системой
Выбор-то и не большой:
- FAT32
- exFAT
- NTFS
FAT32: это ваш выбор, если вам нужна загрузка по UEFI. Но помните: в этой ФС максимальный размер файла — 4 ГиБ.
exFAT: здесь нет столь ощутимого ограничения на размер файла, но загрузка по UEFI невозможна. Кроме того, некоторые загрузчики
NTFS: тут всё хорошо, за исключением того, что не все компьютеры поддерживают загрузку по UEFI с этой ФС.
Вот и получается:
обязательно нужен UEFI — FAT32, не обязательно или не нужен вовсе — NTFS.
Отформатируйте флешку в выбранную вами ФС.
Примечание: если ваша флешка уже имеет нужную ФС, то форматировать её необязательно. Но я бы всё-таки отформатировал ;)
Сделайте раздел активным
Это нужно для того, чтобы компьютер мог загрузиться с него (ну, или хотя бы попытаться...).
Тут есть различие между USB-HDD и флешками.
Для USB-HDD это можно сделать так:
Откройте оснастку Управление дисками (diskmgmt.msc). Щёлкните правой кнопкой мыши по нужному разделу своего USB-HDD и выберите "Сделать раздел активным". Если этот пункт контекстного меню неактивен — значит раздел уже активен.
Для флешки этот вариант не пройдёт. Тут пункт контекстного меню "Сделать раздел активным" будет всегда неактивен. Поэтому нужно использовать универсальный способ:
Откройте Командную строку (cmd.exe). Выполните такие команды:
DiskPart
list disk
select disk <номер вашей флешки (можно идентифицировать по размеру из предыдущей команды)>
list part
select part <номер раздела, который требуется сделать активным (обычно 1)>
active
exit
Теперь ваша флешка является загрузочной. Но она пока пуста. Самое время наполнить её
Наполнение дистрибутивами
Файлы диспетчера загрузки Windows
Нам нужен набор файлов менеджера загрузки. Это:
[boot]
[efi] - только если нужна загрузка по UEFI (ФС флешки должна быть FAT32! (на некоторых компьютерах работает и с NTFS))
bootmgr
bootmgr.efi - только если нужна загрузка по UEFI (ФС флешки должна быть FAT32! (на некоторых компьютерах работает и с NTFS))
Я скопировал эти файлы из самого свежего дистрибутива — Windows 10 x64 (Threshold 2).
После этого уже можно протестировать как грузится флешка.
Если всё сделано правильно — вы увидите экран Windows Boot Manager c сообщением об ошибке. Ошибка — из-за того, что мы ещё не скопировали
[sources]
. Но нам просто важен факт, что bootmgr
получает управление.Если вы не увидите экран Windows Boot Manager, то возможно дело в том, что при форматировании система не записала загрузочный сектор совместимый с BOOTMGR. Чтобы сделать это вручную, выполните команду
bootsect /nt60 <буква_диска>:
, где <буква_диска> — ваша флешка.Дистрибутивы
Файлы дистрибутива находятся в
[sources]
. Значит надо создать структуру папок, содержащую [sources]
из разных версий Windows под разными именами. Эту структуру можно делать как захочется. Но важно потом соблюдать соответствие путей. Я сделал так:[WinDists]
|- [Win_7_ia32]
|- [Win_7_x64]
|- [Win_8.1_ia32]
|- [Win_8.1_x64]
|- [Win_10_ia32]
|- [Win_10_x64]
Теперь в каждую из этих папок надо скопировать содержимое
[sources]
из соответствующих ISO-шников. До сих пор на флешке было занято лишь несколько десятков МиБ. А теперь — несколько ГиБ.Настройка
Меню
Мы хотим, чтобы можно было выбирать любую из этих систем просто из меню. Без переименовывая папок и т.п. рутины. Значит, надо добавить пункт меню для каждой из Windows.
Помните, раньше мы копировали файлы диспетчера загрузки? Теперь нужно отредактировать файлы данных конфигурации загрузки. Это:
[boot]
|- bcd
[efi]
|- [microsoft]
|- [boot]
|- bcd - только если нужна загрузка по UEFI (ФС флешки должна быть FAT32! (на некоторых компьютерах работает и с NTFS))
Редактируем BCD
Сначала включим отображение меню. И уберём таймаут, чтобы оно отображалось столь угодно долго до совершения выбора пользователем (мы ведь не просто загружаемся, а систему устанавливаем! Выбор должен быть осознанным ???).
Чтобы сделать это выполните команды:
bcdedit /store <буква_диска>:\boot\bcd /set {bootmgr} DisplayBootMenu True
bcdedit /store <буква_диска>:\boot\bcd /deletevalue {bootmgr} Timeout
где <буква_диска> здесь и далее — ваша флешка.
Дальше будем добавлять пункты установки для каждой из систем. Сначала выполним команду
bcdedit /store <буква_диска>:\boot\bcd /enum {default}
чтобы узнать значение
device
и osdevice
пункта по-умолчанию. Они будут приблизительно такими:device ramdisk=[boot]\sources\boot.wim,{<GUID параметров ramdisk>}
osdevice ramdisk=[boot]\sources\boot.wim,{<GUID параметров ramdisk>}
Как правило, значения этих параметров в одном пункте загрузки одинаковые.
Мы будем для каждого дистрибутива Windows изменять путь к образу c WinPE (
boot.wim
), при этом оставляя таким же <GUID параметров ramdisk>. Это будут единственные различия между пунктами загрузки разных дистрибутивов.device
определяет устройство, на котором лежит \windows\system32\boot\winload.exe
(это значение указано в параметре path
).Параметр
osdevice
определяет устройство, на котором лежит \windows
(это значение указано в параметре systemroot
).В нашем случае значения
device
и osdevice
состоят из пути к WIM-образу системы (в данном случае WinPE), который загружается в оперативную память (ramdisk). После запятой указан GUID записи, которая определяет параметры устройства, с которого будет загружаться WinPE (в нашем случае — ramdisk). На неё можно взглянуть подробнее:bcdedit /store <буква_диска>:\boot\bcd /enum {<GUID параметров ramdisk>}
Параметры устройств
-------------------
идентификатор {<GUID параметров ramdisk>}
ramdisksdidevice boot
ramdisksdipath \boot\boot.sdi
Ничего особенного. Будем использовать эти же параметры устройства для других пунктов загрузки.
boot.sdi
— Это по-сути образ пустого NTFS-тома. А в этот том уже монтируется образ из boot.wim
.Поскольку пункт по-умолчанию уже полностью настроен (кроме значений
device
и osdevice
), то мы просто будем его копировать и изменять.Добавление пунктов
- Скопировать пункт по-умолчанию:
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "<название нового пункта>"
Будет выдано сообщение с GUID нового пункта. Приблизительно такое:
Запись успешно скопирована в
{<GUID новосозданного пункта>}
- Изменить в нём вышеупомянутые параметры:
bcdedit /store <буква_диска>:\boot\bcd /set {<GUID новосозданного пункта>}
device
ramdisk=[boot]\<путь к дистрибутиву>\boot.wim,{<GUID параметров ramdisk>}
bcdedit /store <буква_диска>:\boot\bcd /set {<GUID новосозданного пункта>}
osdevice
ramdisk=[boot]\<путь к дистрибутиву>\boot.wim,{<GUID параметров ramdisk>}
Эти две команды отличаются только одним словом (выделено).
Не копируйте тупо команды отсюда! У вас будут другие GUID-ы. Эти примеры только чтобы понять что к чему.
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Windows 7 (32-bit) Setup"
Запись успешно скопирована в {90fff3ef-3b91-11e6-839b-d850e607fea0}.
bcdedit /store <буква_диска>:\boot\bcd /set {90fff3ef-3b91-11e6-839b-d850e607fea0} device ramdisk=[boot]\WinDists\Win_7_ia32\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /set {90fff3ef-3b91-11e6-839b-d850e607fea0} osdevice ramdisk=[boot]\WinDists\Win_7_ia32\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Windows 7 (64-bit) Setup"
Запись успешно скопирована в {e5f9b9b7-3bb1-11e6-839b-d850e607fea0}.
bcdedit /store <буква_диска>:\boot\bcd /set {e5f9b9b7-3bb1-11e6-839b-d850e607fea0} device ramdisk=[boot]\WinDists\Win_7_x64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /set {e5f9b9b7-3bb1-11e6-839b-d850e607fea0} osdevice ramdisk=[boot]\WinDists\Win_7_x64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Windows 8.1 (32-bit) Setup"
Запись успешно скопирована в {cda5bc88-3bb4-11e6-839b-d850e607fea0}.
bcdedit /store <буква_диска>:\boot\bcd /set {cda5bc88-3bb4-11e6-839b-d850e607fea0} device ramdisk=[boot]\WinDists\Win_8.1_ia32\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /set {cda5bc88-3bb4-11e6-839b-d850e607fea0} osdevice ramdisk=[boot]\WinDists\Win_8.1_ia32\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Windows 8.1 (64-bit) Setup"
Запись успешно скопирована в {330e8636-3bb5-11e6-839b-d850e607fea0}.
bcdedit /store <буква_диска>:\boot\bcd /set {330e8636-3bb5-11e6-839b-d850e607fea0} device ramdisk=[boot]\WinDists\Win_8.1_x64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /set {330e8636-3bb5-11e6-839b-d850e607fea0} osdevice ramdisk=[boot]\WinDists\Win_8.1_x64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Windows 10 (32-bit) Setup"
Запись успешно скопирована в {87c0826c-3bb5-11e6-839b-d850e607fea0}.
bcdedit /store <буква_диска>:\boot\bcd /set {87c0826c-3bb5-11e6-839b-d850e607fea0} device ramdisk=[boot]\WinDists\Win_10_ia32\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /set {87c0826c-3bb5-11e6-839b-d850e607fea0} osdevice ramdisk=[boot]\WinDists\Win_10_ia32\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Windows 10 (64-bit) Setup"
Запись успешно скопирована в {dd7288b2-3bb8-11e6-839b-d850e607fea0}.
bcdedit /store <буква_диска>:\boot\bcd /set {dd7288b2-3bb8-11e6-839b-d850e607fea0} device ramdisk=[boot]\WinDists\Win_10_x64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /set {dd7288b2-3bb8-11e6-839b-d850e607fea0} osdevice ramdisk=[boot]\WinDists\Win_10_x64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store <буква_диска>:\boot\bcd /copy {Default} /d "Other Windows Setup (from \sources)"
The entry was successfully copied to {c9ff9b3a-3c53-11e6-839c-d850e607fea0}.
Завершение редактирования BCD
После того, как все пункты добавлены удаляем пункт по-умолчанию:
bcdedit /store <буква_диска>:\boot\bcd /delete {default}
Редактируем BCD для UEFI
Если вам нужна загрузка по UEFI, то вам нужно также отредактировать другое хранилище конфигурации загрузки (то, которым руководствуется
BootMgr.efi
).Тут всё точно так же как и там, за исключением пути к файлу
BCD
.Т.е. вместо
bcdedit /store <буква_диска>:\boot\bcd
следует использовать
bcdedit /store <буква_диска>:\efi\microsoft\boot\bcd
.Примечание. Вы не можете просто так взять и скопировать
\boot\bcd
в \efi\microsoft\boot\bcd
! Они должны различаться как минимум параметрами path
во всех пунктах, включая {memdiag}
.\windows\system32\boot\winload.exe
vs\windows\system32\boot\winload.efi
\boot\memtest.exe
vs\efi\microsoft\boot\memtest.efi
Windows PE
Итак, у нас при загрузке с флешки уже есть рабочее меню, где мы можем выбирать нужную версию Windows. Загрузитесь и убедитесь, что при выборе определённого пункта меню загружается соответствующая Windows PE.
Проблема
Мы ещё не всё сделали. Ведь, если попытаться установить какую-то из систем, то получим неприятный сюрприз:
Почему это произошло? Дело в том, что программа установки ищет образ
install.
wim
или сжатый install.
esd
в папке sources
на всех доступных томах. Windows 10 в случае неудачи ещё пытается искать в папках x64\sources
или x86\sources
в зависимости от разрядности. В нашем случае — не находит нигде.Она думает, что, наверное, нет драйвера от установочного носителя и предлагает его загрузить.
Варианты решения
Вы уже можете установить Windows из своей флешки, вручную правильно запустив программу установки. Есть несколько вариантов.
- Файл ответов
С помощью файла ответов можно указать множество параметров установки. В том числе образ, откуда устанавливать систему.
Путь к образу указывается в элементеMicrosoft-Windows-Setup | ImageInstall | OSImage | InstallFrom | Path
.
Заставить программу установки использовать файл ответов можно либо явно:
setup.exe /unattend:<путь к файлу ответов>
Либо поместив его по одному из заранее определённых путей.
Но в этом способе есть проблема. В файле ответов должен быть абсолютный путь. Удобно, когда надо устанавливать из сети. Но не практично для нашего случая. Компьютеры разные — буква флешки будет меняться. Не наш вариант. А ещё и явно указывать путь к файлу ответов — ну вообще не вариант.
- Запуск программы установки с параметром
Можно найти образ с помощью сценарияcmd.exe
. А потом запустить установщик, явно указав ему куда смотреть:
X:\sources\setup.exe /installFrom:<путь к install.wim или install.esd>
Этот вариант подходит. Вы сможете установить систему как с обычного установочного ISO.
Но есть вариант ещё лучше.
- Запуск программы установки с флешки
Можно запустить установку не сX:
(монтированный образboot.wim
), а прямо с флешки! Таким образом не придётся явно указывать путь кinstall.wim
илиinstall.esd
. Программа установки сама найдёт этот файл рядом с собой (в папке запуска)!
Так, например, для установки Win 10 x64 нужно выполнить:
<буква флешки>:\WinDists\Win_10_x64\setup.exe
У этого способа много преимуществ. Ведь мы фактически полностью отказываемся от использования чего-либо изX:\sources
, в пользу соответствующей папки на флешке. А это значит, что мы впоследствии можем модифицировать её без внесения изменений в образboot.wim
. Удобно же! Например, можно положить сюда индивидуальный (для этого конкретного дистрибутива) файл ответов (рядом сsetup.exe
) и он будет подхвачен согласно 6-му пункту отсюда.
Решение
Это всё хорошо, но мы же не хотим вручную запускать установку, правда? Хотим чтобы оно само. Значит надо сделать так, чтобы оно само запускало установку откуда надо.
Варианты автоматизации
Рассмотрим запуск Windows PE, чтобы понять, как с минимальным вмешательством заставить её выполнять то, что нам нужно.
В параметре реестра
HKLM\SYSTEM\Setup\CmdLine
указано первое приложение, которое выполняется после запуска WinPE. Это winpeshl.exe
. Оно делает всякие полезные вещи, как то:- Включает фоновую картинку (запуск
WallpaperHost.exe
) - Проверяет, есть ли рядом файл
winpeshl.ini
. Если есть — выполняет из него команды. - Инициализирует PNP
- Если файла
winpeshl.ini
не было — пытается запустить одно из приложений (в порядке приоритета):
- X:\$Windows.~BT\sources\setup.exe
- X:\setup.exe
- X:\windows\system32\cmd.exe /k startnet.cmd
Нам нужно выполнить свой сценарий, который найдёт на флешке нужный файл и запустит его. Как видите, у нас не один вариант:
- добавить файл сценария и
winpeshl.ini
с командой на запускcmd.exe
для выполнения нашего сценария - удалить/переименовать
X:\setup.exe
и отредактироватьstartnet.cmd
Я продемонстрирую вариант только с добавлением файлов (минимальное вмешательство, да).
Модифицируем boot.wim
На примере дистрибутива Windows 10 x64.
Итак, нам нужно редактировать содержимое тома
X:
, которое монтируется из boot.wim
. Сначала узнаем индекс образа для монтирования:dism /get-wimInfo /wimFile:<буква_флешки>:\WinDists\Win_10_x64\boot.wim
Cистема DISM
Версия: 6.3.9600.17031
Сведения об образе : <буква_флешки>:\WinDists\Win_10_x64\boot.wim
Индекс: 1
Имя : Microsoft Windows PE (x64)
Описание : Microsoft Windows PE (x64)
Размер (байт): 1 357 917 901
Индекс: 2
Имя : Microsoft Windows Setup (x64)
Описание : Microsoft Windows Setup (x64)
Размер (байт): 1 540 370 231
Операция успешно завершена.
Нам нужен не чистый Windows PE, а установочный — Windows Setup. Т.е. индекс — 2.
Ещё нам нужно создать папку, куда будем монтировать образ. Я создал
C:\mnt
.dism /mount-wim /wimFile:<буква_флешки>:\WinDists\Win_10_x64\boot.wim /index:2 /mountDir:C:\mnt
Cистема DISM
Версия: 6.3.9600.17031
Подключение образа
[==========================100.0%==========================]
Операция успешно завершена.
Теперь, как и запланировали, копируем в
C:\mnt\Windows\System32\
файлы winpeshl.ini
и свой файл сценария (я назвал его runsetup.cmd
).[LaunchApps]
cmd.exe, "/k runsetup.cmd"
@echo off
Title TishSerg Windows Setup Bootstrapper v1.0
color 9f
ver
echo.
echo [%time%] Initializing Windows PE...
Wpeinit
echo.
Wpeutil UpdateBootInfo > nul
for /f "tokens=3" %%a in (
'reg query "HKLM\System\CurrentControlSet\Control" /v PEBootRamdiskSourceDrive'
) do set RamdiskSourceDrive=%%a
echo [%time%] Detected setup media: %RamdiskSourceDrive%
echo.
:: Windows dist path Affix
set WinDistAfx=WinDists\Win
:: Find Windows arch Affix
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
set WinArchAfx=ia32
) else (
set WinArchAfx=x64
)
:: Find Windows version Affix
for /f "tokens=3" %%b in (
'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber'
) do set /a CurrentBuildNumber=%%b
if %CurrentBuildNumber% lss 6100 (
:: Build < 6100 is Vista
set WinVerAfx=Vista
echo [%time%] Determined version of Windows: Vista (build %CurrentBuildNumber%^) %PROCESSOR_ARCHITECTURE%
) else if %CurrentBuildNumber% lss 7700 (
:: Build < 7700 is 7
set WinVerAfx=7
echo [%time%] Determined version of Windows: 7 (build %CurrentBuildNumber%^) %PROCESSOR_ARCHITECTURE%
) else if %CurrentBuildNumber% lss 9300 (
:: Build < 9300 is 8
set WinVerAfx=8
echo [%time%] Determined version of Windows: 8 (build %CurrentBuildNumber%^) %PROCESSOR_ARCHITECTURE%
) else if %CurrentBuildNumber% lss 9700 (
:: Build < 9700 is 8.1
set WinVerAfx=8.1
echo [%time%] Determined version of Windows: 8.1 (build %CurrentBuildNumber%^) %PROCESSOR_ARCHITECTURE%
) else (
:: Build > 9700 is 10
set WinVerAfx=10
echo [%time%] Determined version of Windows: 10 (build %CurrentBuildNumber%^) %PROCESSOR_ARCHITECTURE%
)
echo.
echo [%time%] Launching Windows Setup (%RamdiskSourceDrive%\%WinDistAfx%_%WinVerAfx%_%WinArchAfx%\setup.exe^)
%RamdiskSourceDrive%\%WinDistAfx%_%WinVerAfx%_%WinArchAfx%\setup.exe
:: When closed Windows Setup
color 2e
echo.
echo [%time%] Windows Setup closed
echo WScript.Quit MsgBox("You have closed Windows Setup."+vbCrlf+"Run 'System restore' instead? Or reboot?"+vbCrlf+vbCrlf+"Yes - Run 'System restore'"+vbCrlf+"No - Reboot"+vbCrlf+"Cancel - 'Just give me a Command line!'", vbQuestion+vbYesNoCancel, "Setup cancelled") > msgdlg.vbs
cscript msgdlg.vbs > nul
if %errorLevel% == 6 (
echo [%time%] Here is Task Manager for you :^)
start taskmgr
echo [%time%] Run 'System restore' (%SystemDrive%\Sources\recovery\RecEnv.exe^)
%SystemDrive%\Sources\recovery\RecEnv.exe
) else if %errorLevel% == 7 (
echo [%time%] Will reboot now...
Wpeutil Reboot
)
winpeshl.ini
и runsetup.cmd
были универсальны для всех дистрибутивов Windows NT 6.0+. Т.е. их не нужно отдельно модифицировать под установку Win7, Win8 и т.п. Путь к папке дистрибутива определяется автоматически.Также добавлен простой способ запуска Восстановления системы, т.к. из-за прямого запуска
\sources\setup.exe
вместо X:\setup.exe
мы теряем страницу:Разница только в том, что в нашем случае мы язык выбираем уже после запуска установки Windows или Восстановления системы. В оригинальных ISO образах
X:\setup.exe
сообщает языковые настройки запускаемым через него приложениям.Внимание! В предоставленном мной
runsetup.cmd
путь к программе установки определяется по шаблону <буква_флешки>:\\<путь_и_префикс_к_папкам_дистрибутивов>_<версия>_<архитектура>\setup.exe
(строка
%RamdiskSourceDrive%\%WinDistAfx%_%WinVerAfx%_%WinArchAfx%\setup.exe
). Т.е. в моём случае сценарий будет формировать пути (в зависимости от того, из какого дистрибутива был запущен) наподобие:- D:\WinDists\Win_7_ia32\setup.exe
- D:\WinDists\Win_10_x64\setup.exe
Если вы создавали на флешке другую структуру папок и их названий — сделайте соответствующие изменения.
Осталось отмонтировать образ с сохранением изменений:
dism /unmount-wim /mountDir:C:\mnt /commit
Cистема DISM
Версия: 6.3.9600.17031
Файл образа: <буква_флешки>:\WinDists\Win_10_x64\boot.wim
Индекс образа: 2
Сохранение образа
[==========================100.0%==========================]
Отключение образа
[==========================100.0%==========================]
Операция успешно завершена.
Готово! Теперь нужно повторить эти действия для остальных
boot.wim
. После этого у вас на флешке будут все желаемые дистрибутивы, которые вы сможете просто выбирать из меню и продолжать установку как будто на флешке только одна версия Windows!Чего бы улучшить?
Тут ещё несколько советов по улучшению вашей установочной флешки.
Пропуск ввода ключа продукта и выбор любой редакции Windows
Для этого нужно поместить файлик
ei.cfg
рядом с программой установкиRetail
Помещать нужно в папку откуда запускается
setup.exe
. Постольку у нас он запускается с флешки, а не с ramdisk-а (boot.wim
), то и кладём ei.cfg
в папки дистрибутивов на флешке. (+1 преимущество от запуска установки прямо с флешки, вместо запуска с ramdisk-а с параметром /installFrom
).Запуск приложения реального режима из меню Диспетчера загрузки Windows
bcdedit /store <буква_флешки>:\boot\bcd /create /d "Grub4Dos Menu" /application BootSector
Запись {b3923807-3ebb-11e6-83a0-d850e607fea0} успешно создана.
bcdedit /store <буква_флешки>:\boot\bcd /set {b3923807-3ebb-11e6-83a0-d850e607fea0} device boot
bcdedit /store <буква_флешки>:\boot\bcd /set {b3923807-3ebb-11e6-83a0-d850e607fea0} path \grldr
bcdedit /store <буква_флешки>:\boot\bcd /DisplayOrder {b3923807-3ebb-11e6-83a0-d850e607fea0} /AddFirst
Таким образом можно сделать возможность циклического перехода из одного меню в другое без перезагрузки компьютера. И уже не важно какой из загрузчиков был запущен первым:
BOOTMGR
или GRLDR
.Прогрессбар при загрузке boot.wim
на ramdisk
В новейших
BootMgr
сделали загрузку образа boot.wim
на ramdisk без анимации. Т.е. просто выводится статический логотип Windows и всё, ждите. Можно вернуть прогрессбар, как было раньше. Он хоть будет давать информацию о степени загрузки WinPE в оперативную память.bcdedit /store <буква_флешки>:\boot\bcd /set {<GUID пункта установки Windows>} BootMenuPolicy Legacy
Правда, вместе с этим вы отключите новый стиль меню дополнительных параметров и сообщений об ошибках (на голубом фоне, с управлением функциональными клавишами), но то такое (^?^)
Подробный вывод загружаемых файлов
Это в дополнение к предыдущему украшательству. Работает по Windows 7 включительно. В Windows 8+ майки это выпилили почему-то (не даёт эффекта).
bcdedit /store <буква_флешки>:\boot\bcd /set {<GUID пункта установки Windows>} Sos True
Применив предыдущие два украшательства прикольнее всего грузится Windows 7. Но это всё — баловство.
Итог
Итак, что мы сделали:
- Отформатировали установочный носитель и сделали его загрузочным
- Скопировали на него файлы Диспетчера загрузки Windows (взятые из одного из ISO-образов)
- Создали структуру папок с файлами дистрибутивов Windows (содержимое
[sources]
каждого из ISO-образов) - Настроили меню Диспетчера загрузки Windows
- Добавили в
boot.wim
каждого дистрибутива по два своих файла
На этом всё. Вопросы, замечания и пожелания приветствуются (???)
Комментарии (108)
rockin
01.07.2016 21:54+7Неужели кто-то ещё парится с перепаковкой/распаковкой/настройкой образов винды?
Я уже года так два пользую вот это
http://www.easy2boot.com/
Подготовил флешку (при помощи http://www.rmprepusb.com/ )
— отформатировал как хдд
— залил груб
— скопировал файлы e2b
ВСЁ. Кидай образы в формате .iso (как есть) и они будут загрузочными. Кидай не только винду, но и всякие антивирусные/реанимационные наборы.
Все мои флешки уже подготовлены как загрузочные — мало ли что придётся.
p.s. два года назад я очень хотел купить небезызвестный залман, но случайно наткнулся на e2b и залман мне стал совсем не нужен. тем более, что залман — один-два ты купишь, а флешек хоть два десятка и все будут загрузочнымиeGor007
01.07.2016 22:10+3Бывают случаи, когда будет невозможно (ну или очень трудно и проблемно) использовать сторонний софт.
И такие тренировки могут помочь потом в таких ситуациях в дальнейшем.rockin
01.07.2016 22:12+1Можно пример такого случая? Честно говоря, ничего на ум не приходит.
Да и о каком стороннем софте в данном случае идёт речь? Флешка уже подготовлена, образ просто закидывается и идёт загрузка. Софт используется, другими словами, где-то давно, а случай — ну скопировал образ и всё.eGor007
02.07.2016 00:15-2Выполнение заказа для оборонки. Заказчик заранее определил ряд софта и добавлять ничего нельзяю Оборудование уже на объекте.
Идёт сдача, но заказчик вдруг начинает хотеть что-то проделать новое, для которого требуется новый софт. А ставить этот софт нельзя (он в списке запрещённого). Приёмка зарубит сдачу, когда его увидит, что нужная заказчику операция делается запрещённым софтом (в худшем случае можно попасть под статью о проносе на режимный объект с уровнем секретности ненадлежащего ПО).rockin
02.07.2016 01:25+2В таком случае, я бы тупо зашил все образы, что нужны (и что разрешены) на компакт-бобины, ой, на цеде и деведе.
И не парился бы ни с e2b, ни с предметом данной статьи, да вообще бы ни с чем не парился.
Лет десять назад у меня было портмоне для дисков, где чего только не было. Всё самое актуальнейшее на тот момент.profesor08
02.07.2016 02:30+1И добавить пару бонусных битых файликов, которые проявятся не сразу, чтоб обеспечить себе регулярные заказы. Ничего личного, только бизнес.
rockin
02.07.2016 18:57Вы фантазируете.
Компакт-бобина не сбоит года так два при довольно активном использовании.
Пользовались же!!! Когда флешки были по 128 мегабайт.vadimpl
04.07.2016 18:04Да как сказать. Был опыт пару месяцев назад. Именно в подобной конторе, где нельзя флешки, только сд-двд.
Было весело когда какой-то >10GB образ, закинутый в офисе на 3 двд, так и не поставили — в конце 2-го диска несколько последних 10-ков кБ не прочитались. А из нескольких двд-рв парочка отдала богу душу в первый же день, буквально после нескольких использований. И это только то, что сам увидел; статистику не собирал.
Давно не брал в руки [s]шашку[/s] диски, а после такого опыта — только под страхом денег.
Lindon_cano
02.07.2016 16:49+1> попасть под статью о проносе на режимный объект с уровнем секретности ненадлежащего ПО
Просмотрел УК и КоАП РФ не нашел такой статьи. В каких кодексах и фантазиях ее искать?lostpassword
02.07.2016 22:53Как вариант — это может быть статья из внутренних ЛНД организации. :-)
Lindon_cano
02.07.2016 22:58И что эта внутренняя статья сделает? Штрафы в РФ запрещены. Максимум могут пальцем погрозить.
lostpassword
02.07.2016 23:04Как минимум — вынос мозга под названием «внеплановый инструктаж» в службе безопасности.)
vadimpl
04.07.2016 18:15+1Товарищ просто неверно выразился. Найдут недоверенный софт на определённом железе — далее всё зависит от стечения обстоятельств, от грозного окрика до уголовки (не преувеличиваю). В УК есть нюансы — мы говорим про режимные конторы, и все эти случаи очень хорошо ложатся на всякие статьи про гос. безопасность.
Mako_357
01.07.2016 22:14На счёт Zalman не соглашусь. Уже 4 года не пользуюсь загрузочными флешками и очень рад этому.
п.с. статью все равно в избранное.rockin
01.07.2016 23:22И сколько у вас залманов? Используете ли их в работе? Что, если с собой нет в наличии?
Совсем недавно «сделать загрузочную флешку» означало «перепаковать образ(ы) дистрибутива и записать как образ на флешку»
Но E2B — это совсем не то. Это как залман. Закинул туда образов, они и грузятся себе. Плюс залмана в сравнении с такой флешкой (по словам окружающих) разве в том, что он выступает как odd в системе. И только.
Поясняю первые вопросы. У меня флешек десятка два. Рассованы по всем сумкам, в машине музычку содержит, на ключах болтается и так далее. И все они загрузочные(!). У меня вообще нереален случай, когда с собой не окажется загрузочного носителя. Образ-то скачать с современными интернетами недолго, а вот загрузиться…Mako_357
01.07.2016 23:454 года назад купил VE-200. Он отработал 3 года, потом крыша поехала. Потом приобрел VE-350.
У меня там много всяких образов. И Linux все, и Windows все (одних только ХР десятка 2 дистрибутивов) и куча maintenance-образов. Короче, чего там только нет. Плюс блокировка от записи — защита от вирусов и защита от потери данных. Диск использую только для образов.
Если с собой нет в наличии, значит я не работаю, Иначе он всегда есть в наличии.
Флешки я либо теряю, либо они умирают в неподходящий момент, либо у них умирает файловая система. Хотя чаще я их теряю) по этому отказался от них вообще. Разве что биос записать для перепрошивки.rockin
02.07.2016 00:01+3Короче. Фломастеры у каждого свои.
Тут хорош и залман, и e2b. Спорить можно бесконечно.
У каждого своя специфика работы, да и жизни в целом.
Я вообще-то не против залмана. Я против того, что в статье. Не понимаю, зачем это может понадобиться, честно говоря.
Flash_CSM
02.07.2016 07:37Защита от записи нужная фича, но ведь можно найти в продаже флешки с подобным переключателем.
istui
02.07.2016 08:51Давно не видел в наших магазинах флешки с переключателем. Разве что заказать с амазона…
technont64
02.07.2016 12:34+1Есть такие на али, ищите Netac U235 и U335.
Переключатель работает как надо
MyFearGear
02.07.2016 13:24В немалом числе контроллеров для флешек выведена нога для конфигурации RO, правда на плате не разведена. Так что можно наколхозить себе переключалку, если очень надо
Flash_CSM
02.07.2016 19:43Вот кстати да, пришлось заказывать с али, раньше была PQI Cooldrive, но к сожалению ушла с концами.
FaCkeR
02.07.2016 12:35+1Какая у Вас версия прошивки стоит на VE-350? Так как бесит уже, то образы не видит, то подпапки. VE-300 по сравнению с ним был идеалом
iSavik
03.07.2016 23:23+1Добавлю свои пять копеек по поводу iodd2541 (залман 400)
1. Разработчики, до которых можно достучаться (к залману это не относится)
2. Благодаря п.1, в новых прошивках «защита от записи» реализована так как надо.
3. Работа с виртуальными дисками и дискетами. Сейчас, например, пишу с хакинтоша, который загружен с vhd образа.
4. Шифрование. Как бы его не ругали, но от обычных любопытных глаз спасает на ура. Максимальная длина пароля 16 цифр.
5. В последних прошивках улучшена совместимость со старыми МП (iodd)
В одно время помогал iodd: переводил интерфейс на русский язык. С тех пор с ними в нормальных отношениях. Реализовали некоторые мои «хотелки». Надеюсь и жду еще одну фичу: что-то типа быстрого набора на обычном телефоне. Только вместо контактов — образы.
dartraiden
02.07.2016 00:16+1выступает как odd
Порой, после «загрузить» нужно «вытащить данные», тут-то и пригождаются оставшиеся сотни гигабайт места на переносном жёстком диске.
А ещё он выступает, как FDD. И целые образы жёстких дисков может подмонтировать.rockin
02.07.2016 00:47честно говоря, не представляю, как это «вытащить данные» нужно после «загрузиться».
обычно бывает наоборот. снимаем бекап, а потом грузим что-то.
и тут, конечно, сотни гигабайт пригодятся, но куда прикольнее заранее притащить пару-другую терабайт и воткнуть через сата.
я это к чему. с тем же успехом на залмане можно хранить фильмы.Goodkat
02.07.2016 11:25В некоторые лэптопы не залезешь, чтобы снять бэкап до загрузки.
TishSerg
02.07.2016 12:40А зачем куда-то лезть? В среде того же WinPE можно спокойно копировать нужные файлы. Кому не нравится WinPE — можно загрузиться с какого-нибудь Live ISO.
rockin
02.07.2016 19:04У меня такой «лэптоп».
Но и оттуда даже можно выдрать mini-sata-ssd и куда-нить приколхозить. Хотя, нафига, когда можно действительно 1000 и 1 способом слить все нужные данные через тот же загрузочный образ линукса.
Довольно далеко те времена, когда линукс некорректно читал данные с нтфс.
Я вообще имел в виду то, что практически на любой дивайс, накопитель которого читается, можно слить данные акронисом и всё. Читать файлы даже не обязательно, тупо образ слить.Goodkat
02.07.2016 20:11Довольно долгое время я делал бэкапы как-то так:
dd if=/dev/hda | gzip --best >hda-Image.gz
Но это было во времена Windows XP на HDD.
Не знаю, как это будет работать на SSD.
Мне как раз принесли лэптоп с Win8.1, который нужно апгрейднуть на Win10, пока ещё можно сделать это бесплатно, и на случай, если что-нибудь сломается или Win10 не понравится, нужно иметь возможность откатить всё как было. Не покупать же акронис ради одной инсталляции :)rockin
02.07.2016 20:23Хахаха
Вы серьёзно?
Покупать акронис?
Ну скачайте себе с торрента, чесслово.Lindon_cano
02.07.2016 22:03+1А колбасу своровать в магазине?
Призывая воровать ПО вы лишаете денег разработчиков. Либо используйте свободные аналоги, либо покупайте, будьте честным человеком, а не таким как сейчас.
Goodkat
03.07.2016 00:34+2С тех пор, как я стал работать (программистом), я стараюсь ПО не воровать. Всё необходимое ПО я могу себе позволить купить, не самое нужное заменил бесплатными аналогами.
У меня и музыка почти вся куплена, кроме старых записей типа Янки :)
Но понимаю, когда ты нищий, школьник или студент, тут уж не до жиру — сам был таким :)
hokum13
04.07.2016 11:21ИМХО, призывы скачать, а не купить, такое же зло, как и призывы все заблокировать и засудить.
batja84
05.07.2016 22:01Не могу заставить работать e2b на своей 64 Гб флешке от Самсунг. На 8 Гб флешке работает. Не подскажете в чём может быть проблема?
SkyRE
06.07.2016 11:32Вы бы хоть описали, что именно и как не работает.
А то так — пальцем в небо.batja84
06.07.2016 17:27Я не знал ответите ли вы, поэтому не вдавался в подробности.
Итак. Делаю всё по видеоинструкции https://www.youtube.com/watch?v=qlP4eC6wDWE с сайта http://www.easy2boot.com/. С флешки на 64 гига загрузиться после проделанных манипуляций не представляется возможным, с 8-гиговой проблем нет, она загружается (на подгрузку iso не проверял, но прежде нужно заставить 64 гига работать).batja84
06.07.2016 17:39Да, забыл сказать. На эту флешку без пробелм устанавливаются любые загрузочные образы (винда, rescue USB), с которых потом без проблем можно загрузиться.
SkyRE
07.07.2016 12:02Скорее всего дело в вашей 64ГБ флешке. Что за модель?
Что подразумеваете под понятием «не грузиться»: вывод БИОС-в, grub4dos,…
Сколько партиций (разделов) на флешке получилось, тип файловой системы на них?
Попробуйте использовать Rufus для создания самой загрузочной флешки, а необходимые файлы Easy2Boot (то что у вас на флешке сейчас находиться) перекиньте вручную, постараясь не перетирать те что появяться после Rufus-а (*.lst можно перетирать).
SkyRE
07.07.2016 12:09Ну и железо бы написать на котором бутаетесь.
batja84
07.07.2016 17:05Флешка Samsung USB 3.0 Flash Drive DUO MUF-64CB http://goo.gl/fTwkcl
Ноутбук просто пропускает её при загрузке (с других рабочих вариантов, естественно, всё грузится). Тестовая виртуальная машина виснет при попытке с неё подгрузиться. Раздел всегда один, пробовал форматировать средствами e2b в FAT32 и NTFS, разницы никакой. Также пробовал форматировать с помощью RMPrepUSB (рекомендуемую на сайте e2b, тоже ничего не получилось. Варианты установить grub4dos или syslinux не рискнул использовать, испугало сообщение о перезаписи MBR, я подумал, что будет перезаписана MBR системного диска. Такое «счастье» мне не нужно). С какими параметрами посоветуете форматировать в Rufus?SkyRE
09.07.2016 11:23Т.е. у вас загрузчик — виндовый, а не grub4dos.
Rufus с дефолтными настройками достаточно использовать, в ИНете валом инструкций.
MBR есть у всех дисков, и если вы умышленно не выберете (хотя в этих тулзах все заточено на removable) свой системный диск, то и с ним ничего не произойдёт.
А 8GB флешка у вас случайно не SANDisk?batja84
10.07.2016 18:51Перепробовал, кажется, всё: Rufus, RMPrepUSB. Grub4Dos с MBR, PBR. Толку никакого. Задолбало.
На 8 гиг флешка от Adata. Она тоже «веселится», в виртуалке запускается, в реальной загрузке просто не видит. Возможно причина в UEFI. Можно конечно попереключать на UEFI with CMS или Legacy и с большой долей вероятности это сработает. Но мы в 2016-м году и все новые устройства на UEFI и если загрузка не срабатывает, то это минус. Буду дальше по-старинке по необходимости просто записывать нужный образ на флешку. 5-10 минут потраченного времени погоды не сыграют. Не так часто это нужно.
Спасибо вам за помощь.
GennPen
01.07.2016 23:30+1Одно время возился с мультизагрузочными образами, но однажды раскошелился на Zalman VE300, залил в него все .ISO образы и с тех пор проблем не знаю.
Meklon
02.07.2016 10:34Только некоторые образы не открываются из-за фрагментации.(( У меня так образ DrWeb отказался монтироваться.
Digriz
02.07.2016 13:20Из-за фрагментации обычно не загружаются ISO только на флэшках. Спасает (win)contig.
VE-300 эмулирует оптический накопитель, подставляя в него iso с HDD/SSD, который в этой коробочке и стоит.
Всё работает прозрачно — накидал iso, выбрал и грузись с любого, и пофиг, какая там фрагментация.
Пользую уже года 3 дома и на работе — очень удобно.
Приятным плюсом идёт то, что виртуальный привод можно загрузить как в режиме uefi, так и в режиме legacy.
Сейчас 300-я модель снята с продажи, вместо неё — 350-я, имхо — те же яйца, вид сбоку.
400-е не рекомендую — их, например, старые Пролианты плохо распознают как загрузочные.
Вообще, 300-я модель — это как Nokia 3310, железобетонный и мощный хит.Meklon
02.07.2016 14:24У меня версия с клавиатурой и шифрованием. На некоторые образы ругается(
Digriz
02.07.2016 15:37Ага, 4хх/5xx. Прошивку пробовали обновлять? Там ещё есть разные редакции под NTFS и FAT.
smskin
02.07.2016 15:45Проблема действительно в фрагментации образа. У меня Zalman VE200. Использую WinContig 1.35.02 для дефрагментации.
Уже около 4х лет работает «как часы»
xforce
03.07.2016 18:53Там сам файл образа должен быть записан на ФС диска без фрагментации. Что там внутри образа ему по барабану, нужно просто диск дефрагментировать. У себя батник сделал на лежащий рядом ультадефраг для этого. Пока не подводил.
tesla254
04.07.2016 13:45Если на диске сильно фрагментирован фаил ISO, то залман не может его прогрузить. Так что взял за правило — скинул образ, сделал дефрагментацию диска. То же за все 4 года только эта проблема всплывала.
AlexanderS
02.07.2016 00:34Я вручную переименовывать изначально не захотел =)
В результате за несколько лет допили себе вполне удобное и красивое решение.
У меня структура флешки такая:
— linux (в этой папке iso с линуксами)
— windows (в этой папке iso с виндами, програнные через firadisk integrator)
grldr
menu.lst
Ну а в меню прописано нечто такое:
title Debian 8.4.0 amd64 — Install DVD
set ISO=linux/debian-8.4.0/debian-8.4.0-amd64-DVD-1.iso
ls (hd0,0)/%ISO% && partnew (hd0,3) 0x00 /%ISO%
map /%ISO% (0xff)
echo -e \r\n
map --hook
root (0xff)
chainloader (0xff)
title Windows 8.1 x64 — Install
map --mem (md)+4 (9)
map /windows/w8.1-x64-fdi.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --rehook
write (9) [FiraDisk]\nStartOptions=cdrom,vmem=find:/windows/w8.1-x64-fdi.iso;\n\0
chainloader (0xff)
grub4dos поддерживает без проблем exFAT. Но только китайский (chenall.net). Я обновился как-то до grub4dos-0.4.6a от апреля сего года — нормально всё. Вроде даже теперь не обязательно образы фирадисковые дефрагментировать.TishSerg
02.07.2016 15:54Ну, я Grub4Dos уже очень давно использую. Приблизительно так:
title Acronis BootCD set isofile=/grub/iso/Acronis_BootCD.iso find --set-root --ignore-floppies --ignore-cd %isofile% map %isofile% (hd32) map --hook chainloader (hd32) title Linux Mint 17.2 - Release i386 Cinnamon set isofile=/grub/iso/linuxmint-17.2-cinnamon-32bit.iso find --set-root --ignore-floppies --ignore-cd %isofile% map %isofile% (hd32) map --hook kernel (hd32)/casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=%isofile% quiet splash -- initrd (hd32)/casper/initrd.lz
Другое дело, что с монтированием Виндов до сих пор не заморачивался:
iftitle [find --set-root --devices=h /bootmgr && call set bootmgr=%@root^%] load BOOTMGR of Windows NT 6.0+ on %bootmgr% chainloader %bootmgr%/bootmgr
maaGames
02.07.2016 17:03Делал примерно так же, но для мультизагрузочного DVD.
Единственный минус, что невозможно протестировать без записи на реальный диск/флешку — мэппинг только на реальных носителях работает.
TishSerg
02.07.2016 22:07Кстати, я тут перепроверил: вы правы насчёт поддержки exFAT в Grub4Dos. То, оказалось, Linux Live CD не поддерживает загрузку с него. Меня ввёл в заблуждение тот факт, что абсолютно одинаковая конфигурация не работает с exFAT, но работает с другими двумя ФС.
Тестировал такой вариант:
title Linux Mint 17.2 - Release i386 Cinnamon set isofile=/grub/iso/linuxmint-17.2-cinnamon-32bit.iso find --set-root --ignore-floppies --ignore-cd %isofile% map %isofile% (hd32) map --hook kernel (hd32)/casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=%isofile% quiet splash -- initrd (hd32)/casper/initrd.lz
FAT32 и NTFS — норм, exFAT — сваливается в BusyBox сразу после сообщения
/scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
AlexanderS
02.07.2016 23:42Посмотрите мой пример выше. Я в грубе создаю вирутальный раздел диска, маппю туда исошник и уже запускаю загрузку с него. Всё! Неважно какая файловая система на флешке) Способ установки из виртуального раздела универсален и можно так запустить любой линукс)
ValdikSS
02.07.2016 00:38+1Если вам нужна загрузка UEFI с NTFS или других ФС, можно на небольшой FAT32-раздел положить UEFI Shell, драйвер NTFS и скрипт, который бы автоматически его загружал и запускал следующий загрузчик с NTFS-раздела.
Здесь можно скачать драйверы для многих популярных ФС (exFAT тоже есть): http://efi.akeo.ie/
Digriz
02.07.2016 01:31+1Я просто оставлю это здесь )
(сцена первая, конфигурирование bcd)
Bcdedit не был на праздник похож,
Пока не появился BootIce!
BootIce — это радость и веселье!
Bootice — всем поднимет настроенье!
(сцена вторая, разметка флэшки)
Коля любит Rufus
Толя любит Rufus
И Серёжа — тоже!!!TishSerg
02.07.2016 12:43+1О, да! Bootice — вещь! Я только им и пользовался. Но, поскольку предмет статьи был выбран без стороннего софта пришлось разобраться с
bcdedit
. И не такой уж он и страшный :) + можно заскриптовать.Digriz
02.07.2016 13:29Я тоже в своё время гордился тем, что я знаю
кунфуbcdedit :) Статья, безусловно, полезная для понимания того, что и как надо делать. Но работать ручной отвёрткой при наличии аккумуляторной становится лениво…
electronus
02.07.2016 05:57В свое время много этих «но» заставили найти флешки с контроллером phison, где можно организовать usb cd-rom который не рушится даже при переходе в protected mode и обратно. Т.е. даже XP можно ставить как с обычного CD-ROM.
Цена: рубль пачка. Каждую флешку можно сконфигурировать как usb-cd + usb-hdd.
viiri
02.07.2016 10:50Чего только люди не придумают, лишь бы MDT не использовать. Статья убогая.
artemlight
02.07.2016 12:18Поддерживаю. Я уже давно ставлю препнутые через мдт образы, в которых есть сразу полные наборы обновлений.
Сами образы пересобираются на шести виртуалках раз в неделю в ночь с субботы на воскресенье, и тестируются в ночь с воскресенья на понедельник.
Потом сливаются в виде wim-файлов на dfs и расползаются по регионам, где их цепляет уже локальный ADK + WDS.
А если нужно вдруг поставить что-то руками — гружу любой PE, дискпартом разбиваю диск и назначаю буквы, бутайсом пишу мбр+пбр+активирую раздел, распаковываю вим и перезагружаюсь. Всё.
Точно так же без запар можно свичнуть установленную на MBR ос в UEFI (например, при переезде на диск > 3 тб.). Наоборот, правда, чуть сложнее — диск GPT в обычный мбр можно только сторонними утилитами конвертнуть. Но тоже при необходимости возможно.
Нужно будет статью про MDT написать как-нибудь, короче.hokum13
04.07.2016 11:29Особо круто, если у Вас не одна крупная контора, с кучей филиалов, а 2 десятка мелких, в некоторых из которых и сервера то нету. Или если Вы вообще по вызову работаете.
И скажите, а зачем Вам целых 6 виртуалок да еще и раз в неделю? Вы же при таких ресурсах можете на одном релизе сидеть (например на 7 или 10).
Поддержу kav4ik, напишите статью, интересно.viiri
05.07.2016 02:21Наверное, стоило написать подробнее. MDT не рассчитан только на сетевую установку, но и позволяет создать offline media. Именно этот функционал будет полезен в двух десятках мелких контор или при работе по вызову. Ознакомиться можно, например, тут: https://technet.microsoft.com/en-us/windows/dn481547.aspx
TishSerg
02.07.2016 12:46+1Понимаете, не все люди профессиональные эникейшики. Некоторым приходится сталкиваться с установкой Винд максимум раз в месяц. Смысл что-то серьёзное городить?
Mingun
03.07.2016 14:16+3Не подскажете ли, чем так убога статья? Тем, что автор чётко и последовательно расписал порядок действий, не преминув прокомментировать, что и зачем мы делаем? Тем, что привёл примеры настроек? Тем, что не поленился и хорошо структурировал и отформатировал текст, что его легко и приятно читать? В чём убогость-то?
И да, фраза без использования стороннего софта, означает, представьте… барабаная дробь… что сторонний софт не используется от слова вообще! Только то, что есть на установочном диске. Давно ли MDT (я же правильно понял, что вы предлагаете использовать именно его?) стал включаться в дистрибутивы Windows? Вот то то же.
viiri
04.07.2016 04:45-3Автор чётко и последовательно расписал, не преминув прокомментировать, как вырезать гланды через задний проход соседа. Текст структурирован и красиво отформатирован, но, увы, не в каждом ярком фантике находится вкусная конфета. В своём опусе, автор городит какой-то бессмысленный и ненужный велосипед. Так как это публикация не в личном бложике, а на крупном и авторитетном ресурсе, то многие начнут бездумно копировать это решение, вместо того, чтобы разобраться в вопросе и изучить существующие для этих целей инструменты. MDT (да тот самый) — фактически набор скриптов, интегрируемых в PE-образ, поэтому назвать его «сторонним софтом» можно с большой натяжкой. Я не вижу причин не использовать удобный инструмент, но если таковые есть, то банальный DISM/Apply-Image (https://technet.microsoft.com/en-us/library/hh824910.aspx) с «менюшкой на батниках» был бы проще и удобнее, чем решение из статьи.
MnogoBukv
02.07.2016 11:31Drivedroid и ни каких флешек. 4 гига на образ, правда, ограничение fat32, к сожалению. 10-тку не запихнул.
TishSerg
02.07.2016 12:50А что не так с 10-кой?
У меняWindows_10_x64_Th2.iso
— 3,4 ГиБ;
Windows_10_x86_Th2.iso
— 2,6 ГиБMnogoBukv
03.07.2016 08:45Да, сорри, перепутал. Вин81 не влазит.
en_windows_8.1_enterprise_with_update_x64_dvd_6054382.iso — 4.2 гектара.
Всё равно драйвдроид удобная штука. Хоть и подглючивает местами.TishSerg
03.07.2016 11:56А вы попробуйте заглянуть в
install.wim
/install.esd
. М.б. там есть образ, который вам не нужен. Или в другом месте в самом ISO что-то лишнее. Всё-таки 0.2 ГиБ — это слишком мало, чтобы отказываться от удобств :)
Ещё вариант: если у вас тамinstall.wim
— конвертируйте вinstall.esd
. Размер уменьшится где-то на треть.
LightSUN
03.07.2016 17:0310.1511 x64 (7223712) да, влазиет.
А апрельский билд — нет:
en_windows_10_multiple_editions_version_1511_updated_apr_2016_x64_dvd_8705583.iso
Size: 4 458 960 896 bytes
SHA1: 1b247b5b348e78c9bc3afd3c1cbe10cee3d1b9d5
sisop66
02.07.2016 12:37Вот в этом(в творческом порыве (sic!) ) и отличаются «Окошки» от " «Огрызка»! :-) «Форточки» вынуждают применять всю «извращённость» ума для достижения лучшего эффекта! И все достижения на этом пути лично зависят от тебя! :-) У «Яблока» философия другая: купил у нас «чёрный ящик» с логотипом «Apple» включил и если работает Удача! Иначе стоит паниковать и искать «спеца» по «яблочному продукту» ну никакого «полёта фантазии»! :-)
hokum13
04.07.2016 11:44Вы не поверите, у «форточек» идеология одна и та же. С той разницей, что «спецов» по «форточкам» пропорционально больше, чем по «яблоку».
Есть куча знакомых, которые будут «паниковать и искать спеца» по «форточному продукту». Есть даже, правда единицы, такие, которые будут «паниковать и искать спеца» по «пингвинячному продукту».
Странно слышать про «извращенность ума» в контексте ОС имеющей в предках BSD.Lindon_cano
04.07.2016 13:03Apple MacOSX/OSX/macOS не имеет в предках BSD. Это — распространенный миф. Оно использует ядро Mach не имеющее ничего общего с *BSD и набор утилит распространяющихся под BSD license, но не становящихся от этого xBSD принадлежащими. Миф, обычно, распространяют так называемые «фрибздшники», они же виндузятники обыкновенные видевшие FreeBSD только в Putty.
hokum13
04.07.2016 14:50По вашей логике linux не предок android. Ведь кроме ядра ничего не унаследовали.
Lindon_cano
04.07.2016 15:07Android — дистрибутив Linux(но не GNU/Linux), потому что работает на ядре Linux. OS X работает на ядре Mach не имеющем никакого отношения к BSD, вообще никакого, даже рядом не лежали.
Это у вас с логикой проблемы.
ComodoHacker
02.07.2016 13:47-1Хорошая статья. Только не нужно так явно палиться, что устанавливаете нелицензионное ПО. :)
TishSerg
02.07.2016 14:56+2Ну, строго говоря,
ei.cfg
— не обязательно для пиратства… Это способ отложить ввод ключа)Xaliuss
02.07.2016 20:55Может я чего-то не понимаю, но разве ввод ключа является вообще обязательным по умолчанию? Всегда устанавливал винды с 7 по 10 с стандартных образов, и никогда не было необходимости вводить ключ сразу. На своём текущем компе я вообще не вводил ключ на семерке, вообще не активируя её (1 месяц же вообще без последствий, и можно продлевать ещё 3 месяца), и спокойно потом поставил десятку, когда её бесплатно инсайдерам давали.
Вроде обязательный ввод ключа на этапе установки был до висты ещё, правда насчёт XP не уверен.TishSerg
02.07.2016 21:47+1Среди Винд с 7 по 10 — обязательно требует 8.1.
Но даже безотносительно ключа: такойei.cfg
, который я привёл даёт возможность выбирать редакцию среди всех образов вinstall.wim
/install.esd
, что тоже удобно.
kvant21
03.07.2016 02:34Ключ при установке требуют Retail и ОЕМ образы. VL — не требуют, MSDN — кажется, тоже. Начиная с Висты такой порядок, как минимум. А XP Enterprise даже без активации была :)
TishSerg
03.07.2016 12:03Retail, ОЕМ и VL обзазы вроде как и отличаются одним только файлом. Это и есть
ei.cfg
. Если этого файла нет — требуют ключ. Не знаю как Виста, но при отсутствииei.cfg
или секции[Channel]
в нём — Win7 и Win10 требуют ключ с возможностью пропустить его ввод, а в Win8 — пропустить нельзя. И не важно MSDN или нет. У меня был образ Win8.1, скачанный с DreamSpark — требовал ключ без возможности пропустить. Образ Win8.1 скачанный Media Creation Tool — то же самое.
ComodoHacker
06.07.2016 00:22+1Столько разных версий на флешке плюс история с одногруппницей не оставляют никаких сомнений. :)
u007
03.07.2016 00:15Создаём загрузочный носитель с множеством версий Windows NT 5.0+ без использования стороннего софта:
1) Создаём Загрузочный Носитель с WinPE
2) Заливаем в папку ISO множество версий Windows с MSDN (без использования стороннего софта)
3) Носитель готов.
Для установки ОС далее загружаемся в PE и запускаем WinNTSetup: http://remontcompa.ru/uploads/posts/2015-04/1428391928_57.jpg
Который развернёт понравившийся образ на HDD, или VHD, подготовит и настроит загрузчик и сварит вам кофе, пока вы ждёте.u007
03.07.2016 00:29PS Для разметки диска может понадобиться BootIce, для монтирования ImDisc, ну и там ещё по мелочи.
PPS Если компик живой, можно обойтись без PE.
PPPS А для защиты от злых вирусов (Чак Норрис рекомендует) можно одолжить у приятеля Raspberry Pi: http://www.bertold.org/sdtool/
geher
03.07.2016 10:18Внешний Бокс для HDD Zalman ZM-VE300 или Zalman ZM-VE400.
Нaкидываем на диск ISO образы.
Выбираем нужный в меню бокса.
Compiller
03.07.2016 13:37+3Для справки — файл конфига bcd в папке boot — куст реестра, его можно подключить и править с помощью regedit.
itshaman
04.07.2016 11:56+2Касаемо UEFI и NTFS: есть весьма интересная разработка от автора утилиты Rufus github.com/pbatard/uefi-ntfs
silverjoe
05.07.2016 10:43+1> один файл огромного размера
> нельзя использовать FAT32, а следовательно и UEFI
Его можно ведь разбить на части!
D:\>imagex /split d:\win_pex86\ISO\sources\install.wim d:\win_pex86\ISO\sources\install.swm 3500
eGor007
Статья отличная, я смотрю, народ всё больше начинает разбираться в новых версиях винды.
Уже не знаю, стоит ли писать статью о работе в винде или нет?