Записки IT специалиста
Создание образа Windows 10 с собственным набором предустановленного ПО и настройками меню Пуск
- Автор: Уваров А.С.
- 04.11.2020
В одном из наших прошлых материалов мы рассмотрели состав предустановленного ПО в Windows 10, а также некоторые вопросы связанные с его управлением и настройками меню Пуск. Вопреки распространенному мнению большую часть программ можно удалить штатными методами, а использование PowerShell вообще дает полный контроль. Но есть одно но! Все вносимые изменения касаются только локального ПК и локального профиля пользователя, что не подходит если вам нужно развернуть Windows 10 на некоторое число компьютеров, в этом случае лучшим способом будет создание собственного, заранее настроенного образа.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
В рамках данной статьи мы не предполагаем глубокой модификации установочного образа, ограничившись выбором набора предустановленного ПО, собственными настройками меню Пуск и некоторыми «твиками» в системном реестре. В большинстве случаев этого достаточно, чтобы облегчить жизнь системного администратора и упростить процесс настройки рабочих станций после установки ОС.
Для работы нам понадобится оригинальный образ Windows 10 содержащий файл install.wim, образы со сжатым и зашифрованным файлом install.esd нам не подойдут. Также скачайте и установите на рабочем ПК Windows Assessment and Deployment Kit (ADK), из всего набора инструментов нам потребуются только Средства развертывания.
![]()
Кроме образа нам также потребуется шаблон предварительно настроенного меню Пуск. Это можно сделать на любой рабочей станции, но проследите, чтобы в набор плиток не попали отсутствующие в образе приложения. На наш взгляд лучше всего произвести тестовую установку с целевого образа на виртуальную машину, настроить там меню Пуск и выполнить экспорт настроек. Ниже показан один из примеров такой настройки, набор приложений в нем выбран произвольно, поэтому настраивайте меню именно так, как нужно вам.
![]()
После того, как вы все настроили сделайте экспорт настроек командой PowerShell:
Где D:\LayoutModification.xml — расположение целевого файла.
Также, в настройках меню Пуск по умолчанию включена опция Иногда показывать предложения в меню «Пуск», которая время от времени выводит в самом верху ссылки на приложения Магазина и устанавливает их при клике на значок. Чтобы избежать такого поведения необходимо внести некоторые изменения в реестр. Поэтому подготовим файл импорта: создадим обычный текстовый документ со следующим содержимым и сохраним его как import.reg.
При желании вы можете добавить в этот файл и другие «твики», однако это выходит за рамки данной статьи. Обратите внимание, что мы импортируем изменения в несуществующую ветку HKEY_USERS\TMP, куда мы подключим ветвь HKEY_USERS\.DEFAULT из образа. Если же вам нужно внести изменения в другие ветви реестра образа, то добавьте в файл импорта необходимые псевдонимы. Напомним, что вы можете подключить файл реестра в любое место системного реестра собственной машины, назначив ему уникальное имя.
Теперь создадим набор рабочих папок, их следует располагать ближе к корню файловой системы и использовать короткие пути. В нашем случае это будут папки:
- D:\iso — здесь будут располагаться файлы образа
- D:\mnt — сюда будет развернут образ при монтировании
- D:\tmp — для размещения дополнительных файлов, таких как шаблон меню и файл импорта реестра
После чего скопируем в D:\iso содержимое образа установочного диска. Как правило, образ содержит сразу несколько редакций Windows 10 и нам необходимо выяснить их набор и номер требуемой редакции, для этого выполним в PowerShell с правами администратора (здесь и далее используется среда PowerShell, если не указано иного) следующую команду:
Где вам потребуется указать путь к файлу install.wim распакованного образа. В выводе вы получите перечисление всех редакций в образе:
![]()
В нашем случае нас интересует редакция Pro под номером 4. Выполним ее монтирование:
В параметрах команды мы указываем путь к файлу install.wim образа, индекс необходимой редакции и директорию монтирования, в которой появится содержимое по составу, напоминающее системный диск Windows.
![]()
Теперь, когда образ смонтирован, перейдем к встроенному ПО. Сначала получим список предустановленного ПО образа и выясним имена пакетов, для этого выполним:
![]()
Большинство приложений имеют понятные имена, за исклчением Cortana, которая скрывается за наименованием Microsoft.549981C3F5F10. Чтобы удалить приложение из образа воспользуемся командой:
В данном случае мы удаляем Cortana. Мы не будем давать каких-либо рекомендаций по составу предустановленного ПО, каждый решает этот вопрос самостоятельно, с учетом собственных потребностей и предпочтений. В нашем примере мы также удалили приложения Office, OneNote, Sticky Notes и Feedback Hub.
![]()
Для изменения шаблона меню Пуск нам нужно просто скопировать файл LayoutModification.xml в нужное место образа:
И напоследок выполним импорт файла реестра. Прежде всего подключим к реестру рабочей машины ветвь HKEY_USERS\.DEFAULT образа:
В нашем случае мы подключили данную ветвь в HKEY_USERS\TMP, который указан в нашем файле импорта. После чего импортируем в реестр содержимое файла:
По завершению операции ветвь реестра следует отключить:
Все необходимые изменения выполнены, поэтому размонтируем образ с сохранением внесенных изменений:
![]()
После выполнения данной команды содержимое директории D:\mnt будет очищено, а все изменения будут применены к файлам распакованного образа в D:\iso. Все что нам остается — это собрать новый ISO-файл, для этого воспользуемся Средой средств развертывания и работы с образами, запустите одноименную консоль с правами администратора и выполните в ней следующую команду:
![]()
На первый взгляд — достаточно страшное «заклинание», но не будем пугаться раньше времени. В параметрах bootdata мы передаем пути к файлам etfsboot.com и efisys.bin в папке образа, которые отвечают за EFI-загрузчик. Ключ -l задает имя образа, которое указывается без пробелов, затем перечисляем папку с образом и место расположения итогового ISO-файла.
Если вы используете для установки флеш-накопитель, то просто можете скопировать на него содержимое папки D:\iso с заменой файлов.
Теперь можно выполнить пробную установку и убедиться, что все настроено именно так, как мы задумывали:
![]()
Как видим, собрать собственный образ Windows 10 несложно, у нас все это заняло не более получаса, где основное время заняло монтирование/размонтирование образа и создание ISO-файла.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
Или подпишись на наш Телеграм-канал: ![]()
Как создать собственную сборку Windows 10 с помощью инструмента MSMG ToolKit
Для создания собственной модифицированной сборки Windows доступно два основных способа. Вы можете либо начать с нуля и изменять непосредственно ISO-образ Windows 10, либо вносить изменения в уже установленную систему Windows 10. Утилита MSMG ToolKit относится к первой категории, поскольку она позволяет изменять исходный образ, а не текущую систему.
Примечание: рекомендуется создать резервную копию вашего системного раздела перед запуском программы. Для создания собственного образа нужно будет использовать ISO-образ Windows 10 или DVD-диск Windows 10 в качестве источника.
Создание сборки Windows 10

Распакуйте архив 7z с программой (вам может понадобиться 7-Zip) и запустите скрипт. Программа отобразит пользовательское соглашение, которое нужно принять для продолжения работы. В документе сообщается, что автор программы не несет ответственности за возможный ущерб или другие проблемы. Приложение представляет собой скрипт командной строки.
После принятия соглашения MSGM Toolkit запустит несколько проверок, например, для определения версии операционной системы и для анализа всех доступных инструментов.

Затем откроется главный экран. В первую очередь, нужно выбрать источник или папку. Вы можете скопировать папку установочного образа Windows 10 или DVD-диска в подпапку DVD основной папки MSGM Toolkit.
Выберите пункт [1] Select Source, [1] Select Source from Source DVD Folder, индекс 1 + Enter.
Примечание: в ряде случаев (в зависимости от дистрибутива Windows и способа его загрузки) вам понадобиться конвертировать файл Install.esd в Install.wim, чтобы можно было приступить к изменениям сборки.
После выбора источника вы можете начать процесс изменения сборки. Для этого потребуется три основные операции: (3, integrate) интеграция, (4, remove) удаление и (5, customize) настройка
Интеграция

Действие “Интеграция” позволяет добавлять языковые пакеты, драйвера, функции, обновления и отдельные возможности в образ Windows 10:
- Language Packs — данная опция позволяет добавить языковые пакеты в установочный диск Windows 10
- Drivers — данная опция позволяет добавить отдельные драйвера в установочный диск Windows 10, например, для устройств, которые не поддерживаются Windows 10 по умолчанию.
- Windows Features — данная опция позволяет добавить отдельные компоненты Windows (Microsoft Games, Microsoft .NET Framework 3.5, Windows Sidebar и т.д.). Опция позволяет восстановить функции, которые были ранее удалены.
- Updates — интеграция обновлений Windows, чтобы они устанавливались во время инсталляции Windows, а не после нее.
- Windows Custom Features — добавление дополнительных системных файлов, патча UxTheme или альтернативной среды восстановления Windows.
Удаление

Вы можете использовать операцию удаления (Remove), чтобы избавиться от ненужных компонентов Windows 10:
- Remove default Metro apps — опция выводит список всех приложений и позволяет удалять отдельные приложений Windows 10 за исключением Магазина приложений Windows, а также онлайн приложения.
- Remove Default Metro Apps Associations — позволяет удалять файловые ассоциации универсальных приложений Metro. Они не будут запускаться при открытии соответствующих файлов.
- Remove Windows Components — опция позволяет удалять отдельные компоненты Windows (Cortana, службы телеметрии, “Домашняя группа”, родительский контроль, Xbox и др.). Доступна функция расширенного удаления для того, чтобы избавиться от Microsoft Edge, Adobe Flash, Защитника Windows Defender и системы восстановления Windows.
- Remove Windows Components using Package List
Настройка

Операция Customize позволяет импортировать и экспортировать приложения Metro в XML файлы.
После завершения
Когда вы закончите вносить изменения, нужно использовать отдельное меню Apply, чтобы применить изменения к выбранному источнику.
После этого вы можете использовать меню Target для создания нового установочного носителя, например, для создания собственного ISO-образа Windows 10, записать ISO-образ на USB-носитель или DVD-диск.
Рекомендуется проверить пользовательский установочный носитель Windows 10, например, на виртуальной машине, прежде чем устанавливать его в рабочую систему.
Заключение
MSMG Toolkit — это удобный инструмент для создания пользовательских установок Windows 10 из образа или исходной папки Windows.
Программа позволяет вносить изменения в установочный носитель, например, удалять ненужные приложения Windows, компоненты ОС или добавлять отдельные драйверы в образ Windows 10.
Как самостоятельно сделать свою сборку ОС Windows 10, 8 подробных шагов
С появлением Windows 10 операционная система начала набирать популярность. Но на слабых ПК, планшетах она работает медленно, а на старых гаджетах появляются проблемы с драйверами. Поэтому пользователи стараются убирать или отключать неиспользуемые программы, приложения, а также интегрировать драйверы напрямую в дистрибутив. Подробная инструкция о том, как сделать свою сборку дистрибутива Windows 10, поможет в этом процессе.
Преимущества и недостатки своих сборок
Собственноручно созданная сборка экономит время и силы при установке ОС. В зависимости от умений пользователя, профессионализма зависит количество положительных и отрицательных моментов.
К достоинствам своих сборок относятся:
- уменьшенный размер образа и установленной системы;
- более высокая скорость работы за счет уменьшения или отключения дополнительных служб;
- простота использования, которая заключается в уже установленных базовых настройках, не требующих дополнительного вмешательства.

У собственных сборок также имеются недостатки:
- созданный дистрибутив занимает больше места, чем оригинальная ОС;
- процесс установки занимает больше времени;
- нестабильная работа системы из-за присутствия драйвера или служба, которая сведет на нет усилия по установке;
- ошибки реестра – важного элемента в системе; неверные записи приведут к нестабильной работе Windows и критическим ошибкам.
Если создавать модифицированную сборку Windows 10 самому, нужно знать, что лучше параллельно выполнить резервную копию системного раздела перед запуском софта.

Создание своей собственной сборки Windows 10
Процесс препарирования утилиты проходит поэтапно. Способ должен применяться только опытными пользователями.
Подготовительный этап
Для начала потребуется оригинальная версия Windows, которую скачивают на официальном сайте «Майкрософт». Дистрибутив сохраняют на съемный носитель либо в виде ISO-файла, выбрав соответствующую версию утилиты.

Далее потребуется выполнить следующее:
- Запустить утилиту Sysprep.

- Ввести значение: C:\Windows\System32\Sysprep\Sysprep.exe.
- В появившемся меню поставить параметры: «Переход в окно приветствия системы», поставить отметку напротив надписи «Подготовка к использованию».
- Выбрать внизу «Завершение работы».
- Подтвердить действие, нажав «Ok».

Продвинутые пользователи, вместо завершения работы, выбирают перезагрузку. Это помогает при удалении папок уже удаленных учетных записей, при этом ОС особо «не сопротивляется».
Программа будет работать некоторое время. Длительность процесса зависит от размера информации, переносимой на другой ПК. После переноса данных устройство отключится.

Создание образа в формате ESD
В прошлом дистрибутивы Виндовс упаковывались в образы Windows Image Format. Позднее создатели стали использовать формат ESD, отличающийся увеличенной степенью сжатия. Это позволяет экономить больше пространства в памяти.
Для выполнения операции потребуется:
- Подключить внешний носитель, загрузиться с него.
- Нажать одновременно «Shift+10».

- Ввести последовательно: «Diskpart», «lisvol», «exit».

- Сохранить диск C, введя: Dism /Capture-Image /ImageFile:I:\install.esd /CaptureDir:C:\ /Name:Windows.

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

Нюансы с активацией
Самостоятельная сборка ОС Виндовс отличается от пиратских копий. Такой образ создается согласно инструкции, в которой используются процессы, отвечающие политике «Майкрософт». Но их применение не дает гарантии успешной работы запущенных сборок системы.
Активация любой копии ОС происходит на каждом устройстве, независимо от используемого дистрибутива. В качестве эталонного образа выступает уже привычная Виндовс 10. Активация сбрасывается в момент удаления привязки комплектующих.

Дополнительное сжатие файла-образа
Этап выполняется по желанию, его пользователь может пропустить. Файл Install.esd уменьшается в размерах. Юзеру предварительно необходимо удостовериться в присутствии файла на носителе, выполнить поэтапно:
- Набрать: DISM /Export-Image /SourceImageFile:I:\install.esd /SourceIndex:1 /DestinationImageFile:I:\install2.esd /Compress:recovery. Так появится его копия, только с уменьшенными размерами.

- Использовать вариант сжатия compress:recovery.

- Переместить в корзину первый исходник.

Обновленный файл потребуется переименовать.
Редактирование ISO — образа Windows 10
Здесь потребуется выполнить копирование скачанного дистрибутива на съемный носитель. Здесь подойдет наилучшим образом флеш — накопитель. В нем потребуется создать папку, задав ей имя «10».
Далее следовать инструкции:
- После завершения копирования в sources появится файл с тем же наименованием. Его нужно заменить созданным файлом.

- Скопировать и вставить его в папку.

- Оригинальный файл заменится созданным пользователем.

Создание ISO-образа
Снова нужно создать образ, но уже обновленной папки. Понадобится Windows ADK, обычно устанавливаемый одновременно с ОС. Но, если он отсутствует, его отдельно скачивают, выполняют установку.

Далее следовать алгоритму действий:
- Запустить Windows ADK.
- В открывшемся меню ввести: Oscdimg /u2 /m /bootdata:2#p0,e,bI:\10\boot\Etfsboot.com#pef,e,bI:\10\efi\microsoft\boot\Efisys.bin I:\10 I:\Windows.iso.

Создаем загрузочный носитель
После создания дистрибутива требуется выполнить его запись на загрузочную флешку. С флеш — накопителя позже выполнится установка на другой гаджет. После создания флешки можно установить дистрибутив на любой ПК. Инструкцию по ее созданию можно посмотреть на специальных сайтах. Процесс этот несложный, не требующий дополнительных знаний.

Установка ОС Windows 10
Инсталляция созданного дистрибутива Виндовс 10 от оригинальной версии ничем не отличается. Единственным нюансом может стать более длительное время. После выполнения всех пунктов инструкции пользователь получит гаджет с ПО, готовый к работе. Юзеру останется установить соответствующие драйверы.
Сборка системы самостоятельно удобна для установки на другой ПК. Если требуется установка ее на несколько устройств, то дистрибутив применяют, как базовую конфигурацию.

Для облегчения задачи по сборке дистрибутива Windows 10 опытные разработчики используют различные инструменты. Программы позволяют вносить изменения: удалять ненужные данные, добавлять отдельные драйверы и выполнять другие задачи.
Как самостоятельно сделать свою сборку ОС Windows 10, 8 подробных шагов
Ядро пока у нас будет состоять из двух файлов — startup.asm и main.c. startup.asm нужен для того, чтобы быть уверенными, что управление попадёт на функцию kernel_main. Ведь она может быть не в начале файла, а содержимое startup.o мы полностью контролируем и если укажем его первым линкеру, то будем управлять и первыми байтами двоичного файла.
format ELF public _start extrn kernel_main section «.text» executable _start: movzx edx, dl push edx push esi push ebx lgdt [gdtr] call kernel_main @: ;cli ;hlt jmp @b section «.data» writable gdt: dq 0 dq 0x00CF9A000000FFFF dq 0x00CF92000000FFFF gdtr: dw $ — gdt dd gdt
Ну вот и последний наш код на чистом Assembler :-). Он выполняет простейшую задачу — уложить в стек три аргумента для функции kernel_main и передать на неё управление. После возврата из неё ядро уходит в бесконечный цикл. По соглашению вызова функций Си параметры следует пихать в стек в образом порядке. Также этот код инициализации загружает новое значение в GDTR — теперь таблица дескрипторов сегментов находится в пространстве ядра и даже если мы отмонтируем первый мегабайт не произойдёт никаких ошибок.
А теперь самое вкусное — простейшее ядро на языке высокого уровня:
Это ядро не делает ничего особенного — просто выводит строку «Hello world!» на последнюю строчку текстового экрана. Структура описанная в начале будет нужна для доступа к списку загруженных модулей.
Важно помнить, что никакой стандартной библиотеки у нас нет — нам доступны только те функции, которые мы сделаем сами. Все printf, strcpy, memcpy и т. п. придётся реализовывать самостоятельно, не пытайтесь обратиться к ним. В следующем выпуске мы займёмся созданием нашего собственного жутко урезанного аналога libc, чтобы программировать было удобнее. Тут начинается самая интересная часть, а принятые решения во многом повлияют на всю структуру системы.
Сборка ядра
Исполняемые файлы собираются в два этапа — компиляция, а потом линковка. На первом этапе компилятор преобразует исходный код в команды процессора и сохраняет всё это в объектный файл. Каждый модуль системы сохраняется в отдельном файле. В этом файле так же содержится информация о функциях, описанных в модули, поэтому из одного файла можно свободно вызывать функцию из другого. Весь код в объектных файлах не привязан к конкретным адресам. На втором этапе линкер собирает все объектные файлы в один бинарный. При этом код привязывается к конкретным адресам (если, конечно, мы не собираем динамически загружаемую библиотеку), вместо ссылок на функции подставляются нужные адреса. Нам нужно получить на выходе особый двоичный файл. Это просто код и данные, без каких-либо заголовков (то есть это не PE и не ELF). В качестве базового адреса используется адрес 0xFFC00000. Для упрощения этого мы опишем всё, что нам нужно в специальном формате скрипта ld:
OUTPUT_FORMAT(«binary») ENTRY(_start) SECTIONS < .text 0xFFC00000 : < *(.text) *(.code) *(.rodata*) >.data ALIGN(0x1000) : < *(.data) >.bss ALIGN(0x1000) : < *(.bss) >.empty ALIGN(0x1000) — 1 : < BYTE(0) >>
Этот скрипт говорит, что наш файл будет лежать в памяти непрерывным блоком начиная с адреса 0xFFC00000. В самом начале будет идти секция кода, потом секция read-only данных, затем обычных данных, потом неинициализированных. Все секции выровнены на размер страницы 4 КБ (вдруг мы потом захотим защитить на уровне таблицы страниц код от записи). Последнее описание секции .empty необходимо для того, чтобы даже неинициаилизорованные переменные занимали место в файле (там будут нули). Ведь начальный загрузчик выделяет память для ядра руководствуясь размером файла.
Собрать всё ядро можно следующими командами:
fasm startup.asm startup.o gcc -c -m32 -ffreestanding -o main.o main.c ld —oformat=binary -melf_i386 -T script.ld -o kernel.bin startup.o main.o
Параметр GCC -ffreestanding указывает ему отключить все стандартные библиотеки. Ведь они привязаны к конкретной операционной системе, а мы пишем новую.
С использованием патча
Способов сделать Windows 10 похожей на 7 несколько. Среди используемых средств и методов широкое распространение получило применение патчей, которые вносят соответствующие изменения в код программного обеспечения, в данном случае с целью возвращения Windows 10 прежнего вида 7 версии. Таких вспомогательных утилит существует немало. Они позволяют вернуть интерфейс «Семёрки» в Windows 10, например,только классическую кнопку Пуск вместе с её возможностями на замену неудобным плиткам и облик проводника (Classic Shell) или реализовать полюбившуюся прозрачность окон (Aero 7) – её в «Десятке» мы так и не дождались. Зато, используя сторонние инструменты (обычно информация о совместимости софта с конкретной сборкой ОС указывается в описании к нему), возможно пропатчить имеющуюся ОС под свои предпочтения.
Пакеты оформления, способные преобразить операционку, облачить её в прозрачное одеяние, либо добавить массу других эффектов, находятся в свободном доступе в сети, ассортимент всевозможных тем доступен для скачивания также на официальном ресурсе Microsoft.
Для внесения необходимых изменений в интерфейс Windows 10 с помощью установки любой из тем выполняем следующие действия:
- Распаковываем и инсталлируем на компьютер патч «UltraUXThemePatcher 3+».



Чтобы привычное оформление в стиле «Семёрки»вернулось в интерфейс Windows 10, можно применять различные программы. Хорошим бесплатным инструментом для этой цели является Classic Shell. Пакет включает три компонента: ClassicStartmenu (возвращает Пуск, как в 7 версии окон), Classic Explorer (меняет «внешность» проводника) и Classic IE (для классического обозревателя Internet Explorer). Можно выбрать выборочную установку, проинсталлировав один из компонентов. Например, поставим Startmenu:
- Проинсталлировав софт, жмём по кнопке «Пуск» и переходим к параметрам Classic Shell.
- В открывшемся окне доступны настройки стиля меню для «Пуск» и смену изображения самой кнопки.

Вернуть удобный «Пуск», а также настроить прозрачность окон в стилизации Windows 7, и другие эффекты поможет оболочка «Aero 7». Программного обеспечения по возврату внешнего вида любимой ОС в сети достаточно, многие из утилит доступны бесплатно, но скачивать софт следует только с проверенных ресурсов, лучше официальных. Если программа не понравилась, можно просто удалить её через «Панель управления» – «Программы и компоненты». Но перед внесением коррективов всё же лучше создать точку восстановления Windows, чтобы в случае неудачной трансформации вернуть систему в состояние «до изменений».
Сборка образа диска
Обойдусь без лишних комментариев и просто приведу линуксовый скрипт сборки образа:
dd if=bin/boot.bios.bin of=bin/boot_sector.bin bs=512 count=1 dd if=bin/boot.bios.bin of=disk/boot.bin bs=1 skip=512 cp bin/kernel.bin disk/kernel.bin bin/make_listfs of=disk.img bs=512 size=2880 boot=bin/boot_sector.bin src=./disk
Он предполагает, что все скомпилированные файлы лежат в bin в текущем каталоге, а ещё имеется каталог disk, в котором лежит boot.cfg следующего содержания:
# Loading kernel Lkernel.bin # Boot 32 bit kernel S32
Если вы всё сделали правильно, полученный образ можно запустить в эмуляторе или даже на реальном железе и вы получите подобную картину:
Загрузчик считывает конфигурационный файл, загружает ядро, переходит в защищённый режим и передаёт ему управление. Получив его, наше ядро выводит последнюю строку на экран. Это лишь начало долгого пути, мы переходим к самой интересной части разработки. Теперь выпуски будут гораздо более простым для восприятия, благодаря использованию языка высокого уровня, который как я надеюсь все и так знают. Если вы не хотите разбираться с Assembler, можете просто взять мой готовый загрузчик и startup.asm и изменять уже только содержимое main.c, поскольку весь код до этого не диктует жёстко какие-либо параметры ядра (кроме ФС с которой мы загружаемся) и позволяет построить на своей базе что угодно.
Автоматизация сборки или Makefile
Вы могли заметить, что вручную набивать столько команд достаточно утомительно. К тому же не всегда есть необходимость перекомпилировать все файлы. Например, если startup.asm не был изменён, можно не вызывать fasm. Специально для упрощения компиляции приложений была придумана утилита make, которая входит в стандартную поставку GCC и MinGW.
Любой Makefile стоит из набора правил с такой структурой:
ИмяЦелиИлиФайла: ИмяПервогоИсходногоФайла ИмяВторогоИсходногоФайла … КомандыКомпиляции
Первое правило, которое должно быть в любом Makefile — цель all. make смотрит на зависимости цели all и компилирует их, а затем выполняет команды и этой цели. Для каждой другой цели сначала собираются её зависимости. При этом имя цели и имя зависимостей могут совпадать с именами реальных файлов. В таком случае пересборка цели произойдёт только если исходники были изменены.
Ещё одна цель, которая часто используется в Makefile — clean. Её задача удалить все бинарные файлы, чтобы начать сборку «с чистого листа». Вот так может выглядеть Makefile для ядра:
all: startup.o main.o script.ld ld —oformat=binary -melf_i386 -T script.ld -o kernel.bin startup.o main.o startup.o: startup.i386.asm fasm startup.i386.asm startup.o main.o: main.c gcc -c -m32 -ffreestanding -o main.o main.c clean: rm -v *.o kernel.bin
Этот текст необходимо сохранить в файл с именем Makefile (без расширения) в каталог с исходными текстами ядра. Теперь достаточно выполнить команду make без параметров, находясь в этом каталоге и мы получим файл kernel.bin (либо сообщения об ошибках, если что-то пошло не так).
А вот так я собираю загрузчик:
all: boot.bios.bin boot.bios.bin: boot.bios.asm fasm boot.bios.asm boot.bios.bin clean: rm -v boot.bios.bin
all: compile compile: make_listfs.c gcc -o make_listfs make_listfs.c clean: rm -f make_listfs make_listfs.exe
Ну и наконец расскажу про вызов других Makefile из одного. Я достаточно ленив, чтобы даже заходить в каталоги с каждым компонентом системы, поэтому создал 1 Makefile, который собирает сразу всю систему. У меня есть папка src, в ней подкаталоги: boot, kernel, make_listfs. В самой src находится вот такой Makefile:
all: make -C boot/ make -C kernel/ make -C make_listfs/ clean: make -C boot/ clean make -C kernel/ clean make -C make_listfs clean
Теперь, находясь в каталоге src я просто пишу make и получаю полностью собранную систему, а если написать make clean, то все двоичные файлы будут удалены и останутся только исходники.
Ну и в довершение последний скрипт, который выполняет полную компиляцию и сборку всех компонентов и образа диска. В одном каталоге с ним надо разместить src, пустой каталог bin и каталог disk с файлом boot.cfg.
#!/bin/sh make -C src cp src/boot/boot.bios.bin bin/ cp src/kernel/kernel.bin bin/ cp src/make_listfs/make_listfs bin/ dd if=bin/boot.bios.bin of=bin/boot_sector.bin bs=512 count=1 dd if=bin/boot.bios.bin of=disk/boot.bin bs=1 skip=512 cp bin/kernel.bin disk/kernel.bin bin/make_listfs of=disk.img bs=512 size=2880 boot=bin/boot_sector.bin src=./disk read -p «Press Enter to continue…» dummy
С таким набором скриптов сборка система становится предельно простой, особенно если учесть, что последний скрипт можно запускать двойным кликом из файлового менеджера. Различные команды вроде dd, cp, rm не существуют под Windows, поэтому её пользователям пригодится пакет MSYS или Cygwin. Однако простая сборка всех компонентов будет работать даже если у вас есть только GCC и fasm (make_listfs легко скомпилируется и запустится в виде Windows-приложения).

Создание своей собственной сборки Windows 10
Процесс препарирования утилиты проходит поэтапно. Способ должен применяться только опытными пользователями.
Подготовительный этап
Для начала потребуется оригинальная версия Windows, которую скачивают на официальном сайте «Майкрософт». Дистрибутив сохраняют на съемный носитель либо в виде ISO-файла, выбрав соответствующую версию утилиты.

Далее потребуется выполнить следующее:
- Запустить утилиту Sysprep.

- Ввести значение: C:\Windows\System32\Sysprep\Sysprep.exe.
- В появившемся меню поставить параметры: «Переход в окно приветствия системы», поставить отметку напротив надписи «Подготовка к использованию».
- Выбрать внизу «Завершение работы».
- Подтвердить действие, нажав «Ok».

Продвинутые пользователи, вместо завершения работы, выбирают перезагрузку. Это помогает при удалении папок уже удаленных учетных записей, при этом ОС особо «не сопротивляется».
Программа будет работать некоторое время. Длительность процесса зависит от размера информации, переносимой на другой ПК. После переноса данных устройство отключится.

Создание образа в формате ESD
В прошлом дистрибутивы Виндовс упаковывались в образы Windows Image Format. Позднее создатели стали использовать формат ESD, отличающийся увеличенной степенью сжатия. Это позволяет экономить больше пространства в памяти.
Для выполнения операции потребуется:
- Подключить внешний носитель, загрузиться с него.
- Нажать одновременно «Shift+10».

- Ввести последовательно: «Diskpart», «lisvol», «exit».
- Сохранить диск C, введя: Dism /Capture-Image /ImageFile:I:\install.esd /CaptureDir:C:\ /Name:Windows.
- После выключить ПК, в котором был создан образ.
Пользователь, по желанию, указывает уровень сжатия файла. Если он не отметил эту информацию, то степень сжатия применится по умолчанию. Юзер должен понимать, что чем больше сжатие файла, тем дольше будет происходить процесс сохранения данных.
Наработанную систему очищают от ненужных файлов, документов, в противном случае конечный продукт получится огромных размеров. Все папки ликвидируются в пользовательском профиле.

Нюансы с активацией
Самостоятельная сборка ОС Виндовс отличается от пиратских копий. Такой образ создается согласно инструкции, в которой используются процессы, отвечающие политике «Майкрософт». Но их применение не дает гарантии успешной работы запущенных сборок системы.
Активация любой копии ОС происходит на каждом устройстве, независимо от используемого дистрибутива. В качестве эталонного образа выступает уже привычная Виндовс 10. Активация сбрасывается в момент удаления привязки комплектующих.

Дополнительное сжатие файла-образа
Этап выполняется по желанию, его пользователь может пропустить. Файл Install.esd уменьшается в размерах. Юзеру предварительно необходимо удостовериться в присутствии файла на носителе, выполнить поэтапно:
- Набрать: DISM /Export-Image /SourceImageFile:I:\install.esd /SourceIndex:1 /DestinationImageFile:I:\install2.esd /Compress:recovery. Так появится его копия, только с уменьшенными размерами.

- Использовать вариант сжатия compress:recovery.

- Переместить в корзину первый исходник.

Обновленный файл потребуется переименовать.
Редактирование ISO — образа Windows 10
Здесь потребуется выполнить копирование скачанного дистрибутива на съемный носитель. Здесь подойдет наилучшим образом флеш — накопитель. В нем потребуется создать папку, задав ей имя «10».
Далее следовать инструкции:
- После завершения копирования в sources появится файл с тем же наименованием. Его нужно заменить созданным файлом.

- Скопировать и вставить его в папку.

- Оригинальный файл заменится созданным пользователем.

Создание ISO-образа
Снова нужно создать образ, но уже обновленной папки. Понадобится Windows ADK, обычно устанавливаемый одновременно с ОС. Но, если он отсутствует, его отдельно скачивают, выполняют установку.

Далее следовать алгоритму действий:
- Запустить Windows ADK.
- В открывшемся меню ввести: Oscdimg /u2 /m /bootdata:2#p0,e,bI:\10\boot\Etfsboot.com#pef,e,bI:\10\efi\microsoft\boot\Efisys.bin I:\10 I:\Windows.iso.

Создаем загрузочный носитель
После создания дистрибутива требуется выполнить его запись на загрузочную флешку. С флеш — накопителя позже выполнится установка на другой гаджет. После создания флешки можно установить дистрибутив на любой ПК. Инструкцию по ее созданию можно посмотреть на специальных сайтах. Процесс этот несложный, не требующий дополнительных знаний.

Установка ОС Windows 10
Инсталляция созданного дистрибутива Виндовс 10 от оригинальной версии ничем не отличается. Единственным нюансом может стать более длительное время. После выполнения всех пунктов инструкции пользователь получит гаджет с ПО, готовый к работе. Юзеру останется установить соответствующие драйверы.
Сборка системы самостоятельно удобна для установки на другой ПК. Если требуется установка ее на несколько устройств, то дистрибутив применяют, как базовую конфигурацию.

Для облегчения задачи по сборке дистрибутива Windows 10 опытные разработчики используют различные инструменты. Программы позволяют вносить изменения: удалять ненужные данные, добавлять отдельные драйверы и выполнять другие задачи.
Примечание для пользователей ОС Windows
ld для Windows не совсем полноценный — он не поддерживает вывод сразу в бинарный файл, только в EXE. Исправить это можно создав сначала EXE (ld не обратит внимание, что базовые адреса секций невозможные для вендовых бинарников), а потом вытащить оттуда чистые данные с помощью objcopy. Если вы столкнётесь с тем, что ld отказывается создавать файл kernel.bin, воспользуйтесь вот таким Makefile для ядра:
all: startup.o main.o script.ld ld -melf_i386 -T script.ld -o kernel.bin startup.o main.o objcopy kernel.bin -O binary startup.o: startup.i386.asm fasm startup.i386.asm startup.o main.o: main.c gcc -c -m32 -ffreestanding -o main.o main.c clean: rm -v *.o kernel.bin
Заодно уберите строку OUTPUT_FORMAT(«binary») из script.ld. Теперь и под Windows получится собрать ядро системы.
Загрузка системы на реальной машине
После таких успехов у некоторых может возникнуть желание опробовать новую ОС на реальном железе. Это не представляет проблем. С помощью HxD в Windows откройте дискету или флешку, выбрав вариант «Открыть диск». При открытии флешки важно открыть именно саму флешку, а не её раздел. В другой вкладке откройте disk.img, выделите его содержимое полностью и скопируйте на диск с его самого начала. После этого можно нажать «Сохранить» и дождаться окончания записи. Все данные на флешке или дискете при этом будут уничтожены, а для того, чтобы её использовать снова по назначению, её придётся заново отформатировать!
Пользователи Linux могут поступить проще — выполнить специальную команду в терминале. Для дискеты:
dd if=disk.img of=/dev/fd0
dd if=disk.img of=/dev/sdX
Вместо sdX надо подставить настоящее имя устройства (sda, sdb, sdc, sdd и т. д.). Главное при этом не перепутать и не записать образ на системный диск, уничтожив все данные. Разумеется, обе команды должны выполняться от имени root или с помощью sudo.
После этого надо настроить в BIOS загрузку с дискеты или флешки (старые BIOS не поддерживают флешки) и наслаждаться видом «Hello world».
Как создать и настроить на ПК виртуальную ОС ?
Вторая операционная система может быть весьма полезна. Она пригодится в тех случаях, когда вы хотите попробовать что-то новое, не удаляя основную ОС, или же использовать устройство, которое не поддерживается в Windows 7 (например, сканер), или просто создать безопасную среду для тестирования.Удачным бесплатным решением станет программа VirtualBox, разработанная компанией Oracle.
Для начала вам понадобится последняя версия этой утилиты — VirtualBox 4.1.8, а также пакет расширений (Extension Pack). Файл размером 87 Мбайт вы можете бесплатно скачать с сайта https://virtualbox.org. Пакет расширений предлагает полезные дополнительные функции — например, поддержку USB 2.0, запуск сетевых служб и удаленный рабочий стол. При установке на время будет прервано сетевое соединение, однако затем оно автоматически восстановится. Затем вам придется дополнительно разрешить установку контроллера USB, сетевой службы и сетевого адаптера от Oracle.
Все данные в общей папке
После установки вы можете заняться созданием виртуальной машины, следуя нашим инструкциям. Перед началом вам нужно знать следующее: VirtualBox сохраняет все данные машины в общей папке, которая обычно находится на диске C: в каталоге вашего профиля. При необходимости вы можете задать свой путь к другому носителю. Для этого откройте «Файл | Свойства», в разделе «Общие» нажмите на стрелку выпадающего меню «Папка для машин» и выберите «Другой..». Программе VirtualBox практически все равно, какой тип виртуального жесткого диска бу дет использоваться. Однако, если вы хотите иметь доступ к папке и из других систем, рекомендуем при создании виртуальной машины изменить стандартный формат VDI на более распространенный VHD.
. Поскольку DVD-привод задействуют и основная, и виртуальная машины, при инсталляции с DVD существует опасность того, что в главной системе начнется повторная установка. При этом обратите особое внимание на диск, куда она будет производиться. Инсталляция в главную ОС может иметь фатальные последствия и уничтожить ее — безопаснее работать с образами. Кроме того, не забудьте, что и для виртуальной системы необходимо иметь отдельную лицензию. Поэтому при тестировании не активируйте ее.
Удобные функции в контекстном меню
Будьте внимательны при работе с устройствами, если вы подключаете их к виртуальной машине через «Устройства | USB-устройства». В таком случае они жестко отсоединяются от основной системы, что может привести к потере данных. Чтобы избежать этого, вам следует предварительно отключить их от основной системы. Доступ к удобным дополнительным функциям вы получите через контекстное меню виртуальной машины. Команда «Показать в обозревателе» выведет вас на соответствующую папку в главной системе.
1 ИНСТАЛЛИРУЕМ VIRTUALBOX
Удобный центр управления виртуальными машинами (ВМ) очень прост в установке. Правда, от пользователя потребуется сделать несколько подтверждающих кликов — например, для инсталляции системных контроллеров USB.
2 ПОДКЛЮЧАЕМ ПАКЕТ РАСШИРЕНИЙ
Откройте «Файл | Настройки», в категории «Плагины» нажмите на иконку около списка и выберите плагин Extension Pack.
3 ПРИСТУПАЕМ К СОЗДАНИЮ
Войдите в меню «Машина | Создать», щелкните по кнопке «Вперед» для выбора системы. Назначьте ей имя и выберите нужные параметры в раз делах «Операционная система» и «Версия». В категории ОС «Другое» предлагается даже версия DOS.
4 КОНФИГУРИРУЕМ СИСТЕМУ
С помощью ползунка выставьте примерный объем оперативной памяти, нажмите на «Далее» и выберите параметры виртуального диска для загрузки системы, который вы можете создать сами.
5 УСТАНАВЛИВАЕМ ОС
В левой части экрана выберите подготовленную машину и щелкните по кнопке «Старт» на верхней панели. Мастер приведет вас к этапу выбора установочного носителя. Щелкнув по иконке справа, выберите файл-образ. Инсталляция операционной системы запущена.
6 ПОДКЛЮЧАЕМ УСТРОЙСТВА
Для удобного обмена данными в меню «Устройства» необходимо выбрать пункт «Установить дополнения гостевой ОС». Теперь через «USB-устройства» подключите, например, свой старый сканер.
7 УСТАНАВЛИВАЕМ ДРАЙВЕРЫ
В XP поиск драйверов запускается автоматически. Вставьте диск для вашего устройства и следуйте инструкциям мастера по установке. После перезагрузки ВМ вы сможете продолжить работу.
8 ПЕРЕДАЧА ДАННЫХ
В разделе «Устройства | Общие папки…» выберите директорию основной системы для обмена данными. В гостевой системе вы найдете ее в сетевом окружении в «VirtualBox Shared Folders».