Download Article
Download Article
If you’d like to create a Windows-based operating system, this article will tell you all about doing just that. You need to know at least one programming language, such as C++. Or if you don’t know any, just skip the coding part in this article. You also need to know file manipulation of system files, this will not be as easy though. If you concentrate on all the steps, you will get there with your own operating system.
-
1
Make sure you have all the requirements ready, you will need them. The requirements are listed under Things You’ll Need below.
-
2
Decide what CPU the OS is compatible with. For example: x86 (32-bit), x64 (64-bit). Make sure your computer that you will target matches the CPU type you will specify later. Write down what processor architecture, you need to remember that.
Advertisement
-
3
Decide what you want to use as storage (CD, DVD, USB, HDD).
- Note: If you choose a CD or DVD, your image file of your system must be smaller than 1G. We will talk about the image file later.
-
4
-
5
Install it and then turn off your User Account Control (UAC) in the control panel. This allows us to do anything to the system files stored in the image file we are going to change.
-
6
Find and open the Deployment Tools Command Prompt in the start menu.
-
7
Set up the image file. The image file is 120MB. If you install it on a CD as a live filesystem, then you are not able to save anything. Type the following command in the Deployment Tools Command Prompt: copype _Your_Chosen_Processor_Architecture_ C:PathWhereYouWantToStoreTheImageFile. Example: copype x64 X:DataMyWindowsOS
-
8
Mount the image. So you have created our image (if it has been done right) and now you need to mount it so that you can change its contents. Type the following: imagex /mountrw PathOfImage 1 PathOfImageFolder/mount. Example: imagex /mountrw X:MWOSwinpe.wim 1 X:MWOSmount.
-
9
Add anything you want to it, the mount point is your specified mount point. When you are done with modifying its contents, type imagex /unmount MountPointPath /commit. Example: imagex /unmount X:MWOSmount /commit
-
10
Type move PathOfImageFile PathOfImageFolder/ISO/sources/boot.wim
-
11
When that is done, type the following command to create a CD image. Type: oscdimg -n -bPathOfImageFolderetfsboot.com PathOfImageFolderISO PathIfImageFolderwinpe_x86.iso
-
12
Test your image in virtualbox, vmware or even for real.
Advertisement
Add New Question
-
Question
Can I do this on my main PC and on Windows 10?
Jackson Derryberry
Community Answer
If your PC is Windows 10, then yes. You can just go to Microsoft’s website and search Windows ADK
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
You do not need to edit the source code for all the objects we are going to use, you just need a tiny tool called ¨Resource Hacker¨.
Thanks for submitting a tip for review!
Advertisement
-
If your deployment target (your test computer) has less than 1GB ram, you will get a blue screen of death!
Advertisement
Things You’ll Need
- Internet connection
- Target system must have 1GB of RAM (or 500MB if deploying on USB/HDD)
- Tiny or big knowledge of C++
- Test computer/laptop- CD/DVD Windows 7 AIK/ADK, CMD enabled
- Windows 7
- 10GB of disk space
- Windows 7 boot updater tool (for modifying boot logo)
- Resource hacker
- Visual studio (for creating programs for your os)
- Probably a USB (if you deploy a system with more than 900MB)
About This Article
Thanks to all authors for creating a page that has been read 31,330 times.
Is this article up to date?
Download Article
Download Article
If you’d like to create a Windows-based operating system, this article will tell you all about doing just that. You need to know at least one programming language, such as C++. Or if you don’t know any, just skip the coding part in this article. You also need to know file manipulation of system files, this will not be as easy though. If you concentrate on all the steps, you will get there with your own operating system.
-
1
Make sure you have all the requirements ready, you will need them. The requirements are listed under Things You’ll Need below.
-
2
Decide what CPU the OS is compatible with. For example: x86 (32-bit), x64 (64-bit). Make sure your computer that you will target matches the CPU type you will specify later. Write down what processor architecture, you need to remember that.
Advertisement
-
3
Decide what you want to use as storage (CD, DVD, USB, HDD).
- Note: If you choose a CD or DVD, your image file of your system must be smaller than 1G. We will talk about the image file later.
-
4
-
5
Install it and then turn off your User Account Control (UAC) in the control panel. This allows us to do anything to the system files stored in the image file we are going to change.
-
6
Find and open the Deployment Tools Command Prompt in the start menu.
-
7
Set up the image file. The image file is 120MB. If you install it on a CD as a live filesystem, then you are not able to save anything. Type the following command in the Deployment Tools Command Prompt: copype _Your_Chosen_Processor_Architecture_ C:PathWhereYouWantToStoreTheImageFile. Example: copype x64 X:DataMyWindowsOS
-
8
Mount the image. So you have created our image (if it has been done right) and now you need to mount it so that you can change its contents. Type the following: imagex /mountrw PathOfImage 1 PathOfImageFolder/mount. Example: imagex /mountrw X:MWOSwinpe.wim 1 X:MWOSmount.
-
9
Add anything you want to it, the mount point is your specified mount point. When you are done with modifying its contents, type imagex /unmount MountPointPath /commit. Example: imagex /unmount X:MWOSmount /commit
-
10
Type move PathOfImageFile PathOfImageFolder/ISO/sources/boot.wim
-
11
When that is done, type the following command to create a CD image. Type: oscdimg -n -bPathOfImageFolderetfsboot.com PathOfImageFolderISO PathIfImageFolderwinpe_x86.iso
-
12
Test your image in virtualbox, vmware or even for real.
Advertisement
Add New Question
-
Question
Can I do this on my main PC and on Windows 10?
Jackson Derryberry
Community Answer
If your PC is Windows 10, then yes. You can just go to Microsoft’s website and search Windows ADK
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
You do not need to edit the source code for all the objects we are going to use, you just need a tiny tool called ¨Resource Hacker¨.
Thanks for submitting a tip for review!
Advertisement
-
If your deployment target (your test computer) has less than 1GB ram, you will get a blue screen of death!
Advertisement
Things You’ll Need
- Internet connection
- Target system must have 1GB of RAM (or 500MB if deploying on USB/HDD)
- Tiny or big knowledge of C++
- Test computer/laptop- CD/DVD Windows 7 AIK/ADK, CMD enabled
- Windows 7
- 10GB of disk space
- Windows 7 boot updater tool (for modifying boot logo)
- Resource hacker
- Visual studio (for creating programs for your os)
- Probably a USB (if you deploy a system with more than 900MB)
About This Article
Thanks to all authors for creating a page that has been read 31,330 times.
Is this article up to date?
Привет, друзья. Мы продолжаем обзор возможностей одной примечательной программы, Mast Have для системщиков и энтузиастов — Dism++. Эта статья будет своего рода кульминацией всего цикла публикаций об этой программе: в ней мы рассмотрим, как с помощью Dism++ создать свою сборку Windows. А свою сборку Windows с помощью этой программы можно создать легко и просто. Нам не нужно будет никаких виртуальных машин для создания эталонного образа системы, никаких установочных или Live-дисков для захвата образа, никаких командных строк. Мы с помощью Dism++ создадим эталонный образ Windows для сборки в файле VHD, настроим его. С помощью той же Dism++ очистим его, применим к нему твики, внедрим обновления. И, опять же, с помощью Dism++ мы захватим образ в файл WIM или ESD и потом запакуем его в установочный ISO.
Примечание: друзья, если вы являетесь истинным гурманом в сфере создания собственных сборок Windows и ищите свой идеальный способ их создания, загляните сюда — в раздел публикаций, где собрано воедино множество различных способов создания собственного настроенного дистрибутива. Или можете юзать тег «Своя сборка Windows».
Итак, мы хотим создать свою сборку Windows 7, 8.1 или 10. Нам для этого понадобятся:
• Установочный ISO-образ нужной версии и редакции Windows,
• Программа Dism++,
• Штатное управление дисками.
Чтобы создать свою сборку Windows, нам нужно установить новую операционную систему. И на её базе сформировать эталонный образ Windows – систему без пользовательских профилей, но с внесёнными необходимыми настройками, установленными системными компонентами, обновлениями и программами. И такой вот эталонный образ мы создадим на виртуальном диске VHD. Жмём клавиши Win+R, вводим:
diskmgmt.msc
И запускаем системное управление дисками. В нём жмём «Действие», затем – «Создать виртуальный жёсткий диск».
Указываем расположение файла VHD виртуального диска, его размер и тип. Я укажу небольшой размер – 30 Гб и выберу тип динамический. После создания своей сборки мы удалим виртуальный диск, так что все эти параметры особого значения не имеют.
После создания виртуального диска инициализируем его.
Выбираем стиль разделов диска такой, как и у физических дисков компьютера, у меня это GPT.
Из пустого места проинициализированного виртуального диска создаём обычный NTFS-раздел.
И вот итог: у нас должен получиться в системе лишний диск с единственным разделом под эталонную Windows.
Теперь нам нужно установить на этот VHD-диск Windows, которую мы настроим под эталонный образ своей сборки. Запускаем программу Dism++. Жмём «Файл», потом — «Применить образ».
В графе «Введите путь к файлу образа» с помощью кнопки обзора указываем путь к установочному ISO-образу Windows. Я, например, буду использовать установочный ISO Windows 8.1 сборки AIO by Sergei Strelec, это сборка на базе чистого образа Microsoft с вырезанными Modern UI приложениями. В графе «Система» указываем редакцию устанавливаемой Windows.
Далее в последней графе указываем тот раздел, который мы создали на виртуальном диске. ставим галочку «Доб.загр.». И жмём «Ок». Важно: друзья, если вы, возможно, выберете вариант с установкой эталонного образа Windows не в файл VHD, а на другой раздел диска, то, если такой раздел имеет данные, ставьте ещё галочку «Формат».
Далее соглашаемся с внесением новой системы в меню загрузки. Если у вас несколько дисков с загрузчиками, тогда жмите кнопку «Больше» и укажите программе Dism++ правильный диск и раздел загрузчика.
Далее ждём завершения процесса копирования файлов новой Windows. Прогресс можем отслеживать вверху окна, в блоке с новой системой.
По завершении жмём «Ок».
Эталонный образ установлен, далее можем перезагружаться, проходить этап установки драйверов и входить в учётную запись администратора для внесения изменений в систему. Но, друзья, я предлагаю немного задержаться и опробовать оптимизирующие возможности Dism++. Некоторые настройки эталонного образа мы можем провести с помощью программы в пару кликов, в едином интерфейсе, не запуская даже новую Windows.
Dism++ — это комплексный чистильщик, оптимизатор и твикер любых системных образов – как развёрнутых на диске, т.е. установленных рабочих систем, так и смонтированных для редактирования дистрибутивов. Как мы можем настроить нашу эталонную Windows с помощью программы?
Примечание: друзья, обращаю ваше внимание — при проведении операций с эталонным образом Windows в программе Dism++ не забывайте первично переключаться вверху окна на нужный образ. Это должен быть синий блок с установленной на диск VHD системой, а не система, установленная на диске С. Не упустите этот нюанс.
И первым делом мы заглянем в раздел Dism++ «Управление загрузкой». Здесь при необходимости можем сделать предустановки для запуска системных служб. Если вы хотите, чтобы ваша сборка была с выключенными некоторыми службами, можете отключить их запуск.
Далее можем зайти в раздел «Оптимизация». Здесь собраны твики по настройке отдельных параметров Windows. Я воспользуюсь этой удобной возможностью Dism++ и внесу пару корректировок в оформление системы и отключу Защитник. Если у вас есть свои твики в виде Reg-файлов реестра, вы можете импортировать их.
Если вы хотите пакетно удалить современные приложения из Windows 8.1 или 10, убрать или, наоборот, добавить какие-то системные компоненты, загляните в раздел программы «Приложения и возможности».
Для интеграции обновлений в эталонный образ Windows, заходим в раздел «Обновления». Жмём кнопку «Анализ», дожидаемся появления перечня обновлений. Галочками отмечаем обновления, которые хотим установить. И жмём кнопку «Установить».
После предварительной настройки эталонного образа Windows с помощью Dism++ можем приступать к работе по настройке образа внутри самой системы. Перезагружаем компьютер и в меню выбора Windows выбираем ту, что установлена в VHD-файле. В моём случае на компьютере теперь установлено две Windows 8.1, и эталонная значится как Windows 8.1 на томе 6.
Наша эталонная Windows запустится, установит себе драйверы, затем на этапе создания пользовательского профиля мы должны войти во встроенную учётную запись администратора. Жмём клавиши Ctrl+Shift+F3.
Входим.И настраиваем эталонную Windows – вносим настройки, устанавливаем сторонний софт. При входе в учётную запись администратора у нас по умолчанию будет запущено окно программы подготовки системы, она же утилита Sysprep для сброса привязки эталонной Windows к комплектующим компьютера, на котором сейчас она установлена. Если надо установить какие-то программы, которые требуют перезагрузки Windows, то такую перезагрузку необходимо проводить только через окно Sysprep. С выставлением в качестве действия «Переход в режим аудита системы», а в качестве завершения работы – соответственно, «Перезагрузка».
По завершении всех настроек Windows в окне Sysprep в качестве действия указываем «Переход в окно приветствия (OOBE)». Ниже отмечаем галочкой «Подготовка к использованию». В качестве действия оставляем «Перезагрузка». Жмём «Ок».
После перезагрузки в меню загрузки выбираем нашу рабочую систему, в моём случае это Windows 8.1 на томе 3.
Далее будем проводить чистку эталонного образа, это уменьшит размер файла образа сборки Windows. Запускаем Dism++. Идём в раздел «Очистка». Жмём кнопку «Анализ». Ждём, пока программой будут выявлены данные для очистки. Потом жмём кнопку «Очистка».
В моём случае при очистке был высвобожден значительный вес данных.
Теперь можем упаковывать эталонную Windows — делать её захват в файл WIM или ESD. В окне Dism++ жмём «Файл», далее – «Сохранить образ как». Жмём кнопку обзора.
Указываем путь сохранения, имя файла – install. И выбираем тип файла из числа предлагаемых нам вариантов: несжатый, сжатый образ, быстрое сжатие – всё это файлы разного уровня сжатия формата WIM, а ультрасжатие – это формат ESD. Я выберу последний, чтобы он занимал как можно меньше места. Но, друзья, знайте, что при выборе ультрасжатия в файл ESD процесс захвата образа будет длиться в разы дольше, чем при выборе сжатого файла WIM.
Путь, имя и тип файла захвата определены, жмём «Ок».
И дожидаемся завершения процесса захвата, т.е. создания файла install.wim или install.esd. У меня последний, кстати, вышел весом всего лишь 2,34 Гб. При этом в эталонный образ я внедрил четыре сторонние программы.
Наконец, последний этап всего этого действа – упаковка файла WIM или ESD назад в установочный ISO. И этот процесс мы также поручим программе Dism++. Но прежде нам нужно извлечь содержимое исходного установочного ISO, который мы использовали для установки эталонной Windows, в папку. В обычную папку с любым названием. Подключаем ISO для отображения в системе.
Друзья, если вы работаете в среде Windows 7, для подключения ISO вам нужно использовать сторонние программы типа UltraISO или Daemon Tools. Далее заходим на подключённый ISO. И копируем на нём все папки, кроме «sources».
Вставляем всё это в созданной папке с любым названием. В этой папке создаём новую папку с названием «sources».
Возвращаемся на подключённый ISO, заходим в папку «sources», делаем в проводнике вид данных таблицей, сортируем по размеру. И копируем все файлы, кроме install.wim или install.esd.
Вставляем эти файлы в пустой папке «sources» внутри папки с любым названием.
И теперь сюда же, в папку «sources» внутри папки с любым названием помещаем файл install.wim или install.esd, который мы на предыдущем этапе создали в процессе захвата образа эталонной Windows.
Теперь в программе Dism++ идём в раздел «Дополнительно». Кликаем «Создание ISO». Указываем в первой графе ту самую папку с любым названием, во второй – путь и имя файла ISO на выходе, в третьей – метку ISO (метку диска). Жмём «Ок».
Дожидаемся завершения.
И всё – наша собственная сборка Windows создана. Папку с любым названием можем удалить.
Теперь, друзья, нам осталось, так сказать, убрать своё рабочее место – удалить нашу эталонную Windows, установленную на VHD-диске. Если она, конечно, не нужна вам, скажем, для экспериментов. Жмём клавиши Win+R, вводим:
msconfig
Идём в раздел «Загрузка» в окне запустившейся конфигурации системы. Кликаем запись о загрузке Windows на VHD-диске. Жмём «Удалить», потом – «Применить», потом – «Ок». На предложение о перезагрузке можем отказаться.
Далее идём в управление дисками Windows и отсоединяем виртуальный диск.
Последний шаг – удаление его файла VHD.
Время прочтения
16 мин
Просмотры 48K
Введение
Сегодня я хочу рассказать о том, как создать собственный установочный образ Windows 8, со всеми установленными обновлениями, программами и пользовательскими настройками.
Использование такой сборки автоматизирует работу системного администратора по установке и настройки операционной системы. Особо актуально для тех случаев, когда необходимо установить однотипный набор программ на большое количество компьютеров. Так же полезно руководство будет и тем, кто просто хочет создать собственный установочный образ Windows 8 с набором используемых им программ и драйверов.
В данном руководстве затрагиваются вопросы подготовки такой сборки, создание загрузочной флешки и записи полученной сборки на флешку. Так же, полученный образ в дальнейшем, используя службы развертывания в сети (WDS), можно установить на любое количество компьютеров в корпоративной сети, но это тема уже следующего руководства.
Текст рассчитан на начинающих пользователей, поэтому объясняются и иллюстрируются порой простейшие вещи.
Ресурсы
Нам понадобятся по ходу работы следующие артефакты
Образ установочного диска Windows 8 в формате ISO
Я сделал свой выбор в пользу Windows 8 Enterprise x64.
Объясню почему. Выбор редакции Enterprise обусловлен максимальной функциональностью, которую обеспечивает эта редакция.
Но в принципе, для домашнего использования возможно использовать и редакцию Professional, тут по желанию.
Аппаратная платформа x64. Выбор 64-х битного варианта системы обусловлен несколькими критически важными факторами.
1. Для 32-х битной системы (x86) доступно только 3,24 Гб адресного пространства оперативной памяти. Сегодня, 4 Гб — это не так и много. И многие новые ноутбуки и стационарные ПК продаются с объемом памяти 6 Гб и выше. Поэтому выбор однозначен в пользу 64-х битной системы, которая не имеет таких ограничений. Более подробно о различиях редакций Windows 8 можно прочитать на сайте Microsoft.
2. Полученный нами образ скорее всего будет размером больше чем 4Гб. Мой установочный образ с «джентельменским» набором программ (включая и MS Office 2013) занимает 7,5 Гб. При установке 32-х битного варианта Windows, если размер образа будет занимает больше чем 4Гб, то будет выдаваться ошибка. При использовании установки 64-х битного варианта, таких проблем нет. Те, кто захочет создать свою сборку на основе 32-х битного образа установки Windows, имейте ввиду этот факт. В этом случае размер развернутого дистрибутива со всеми установленными программами должен занимать ориентировочно около 12 Гб, и тогда в дальнейшем, при его компрессии в конечный установочный образ, его размер будет не больше 4-х Гб.
Оценочные 90-дневные версии Windows 8 можно скачать по ссылке с сайта Microsoft
Или официальные, доступные для подписчиков MSDN.
Диспетчер виртуальных машин VirtualBox
Я использую виртуальную машину для установки первоначального образа системы и дальнейшей настройки программ, так как это наиболее удобный и быстрый способ который существенно позволяет сэкономить время.
Скачать VirutualBox можно на официальном сайте Oracle VM VirtualBox.
Сам установочный пакет диспетчера виртуальных машин, на текущий момент актуальная версия VirtualBox 4.2.12 for Windows hosts x86/amd64
И по желанию, можно скачать пакет дополнения VirtualBox 4.2.12 Oracle VM VirtualBox Extension Pack All supported platforms
Утилита Imagex
С помощью этой утилиты мы создадим конечный образ нашей сборки, пригодный для установки на других компьютерах.
Эта утилита входит в набор Комплект средств для развертывания и оценки Windows (ADK) для Windows 8 (сокращенно WAIK for Windows 8). Комплект занимает больше 2,5 Гб.
Нам же в данном случае будет достаточно только утилиты Imagex, скачать ее можно по этой ссылке imagex.zip(~590 Кб)
Конструктор RDS Boot KIT и комплект Recovery DiskSuite
Это очень мощный конструктор, позволяющий создать загрузочную флешку, на которой по желанию можно разместить одновременно различные реаниматоры такие как HirensBootCD, LiveCD, Kaspersky Rescue Disk, и др., а так же, дистрибутивы операционных систем — WinXP, Win7 и Win8. Главное чтобы хватило место на флеш-накопителе. Аналогов на текущий момент ему нет ни в рунете, ни на «загнивающем» западе :).
Необходимо скачать последнюю версию конструктора RDS Boot KIT с сайта http://disksuite.ru/ и по желанию, сам набор Recovery DiskSuite, включающий в себя iso образы различных реаниматоров и дистрибутивов. Я предпочитаю использовать собственные проверенные образы, а не те, что идут в комплекте с Recovery DiskSuite.
На всякий случай даю ссылку на версию конструктора, работа с которым описана в руководстве RDS Boot KIT.zip.
Флеш накопитель 8Gb и больше
Флешка объемом 8Gb — это минимум, но тут действует правило — чем больше, тем лучше. Такого объема, кстати, может и не хватить, если будет устанавливаться множество программ. Я приобрел объемом 32Gb, но теперь понимаю, что надо было 64Gb, чтобы поместилось больше собственных сборок дистрибутивов других версий Windows.
~50Gb свободного места на HDD, как минимум
Одним и из преимуществ использования виртуальной машины, является то, что можно создавать моментальные снимки состояния виртуальной машины, и в дальнейшем возвращаться к любому из этих снимков. Своеобразная машина времени. Я делал снимки после прохождения каждого этапа создания собственной сборки. И если где-то делал ошибку, то возвращался к предыдущему снимку и уже делал без ошибок. Но платой за это удобство выступает дополнительное место на жёстком диске, которое требуется для снимков.
Если скачать все полные дистрибутивы, и не скупиться на снимках состояния виртуальной машины, то желательно иметь около 100GB свободного места на жестком диске.
Этапы работы
1. Подготовительный этап. Установка и настройка диспетчера виртуальных машин. Создание и настройка самой виртуальной машины;
2. Установка Windows на виртуальной машине и перевод установки Windows в режим аудита;
3. Работа в режиме аудита. На этом этапе необходимо произвести обновление системы, установку и настройку программ, системы и профиля пользователя. После завершения этих действий, следует осуществить выход и из режима аудита и перевести Windows в штатный режим установки;
4. Подготовка конечного образа собственной установочной сборки Windows;
5. Запись собственной установочной сборки на флешку.
#1. Подготовительный этап
1. Устанавливаем VirutualBox, следуя шагам мастера установки. После установки запускаем диспетчер витуальных машин, идем в настройки Файл->Настройки и настраиваем в соответствии со следующей презентацией:
(На данный момент Slidershare глючит, даю ее ссылку на эту презентацию в GoogleDrive)
Настройка диспетчера виртуальных машин
Сначала мы устанавливаем порядок загрузки, указав устройство CD/DVD-ROM в качестве первого устройства на котором будет искаться загрузочная запись и с которого будет осуществляться загрузка.
Далее мы в привод CD/DVD-ROM виртуальной машины подключаем ранее сказанный нами образ установки Windows 8 Enterprise x64.
И на третьем слайде мы подключаем к нашей виртуальной машине флеш-накопитель, который предварительно должны подключить к нашему основному компьютеру. В дальнейшем нам предстоит с ним работать из виртуальной машины. Его название может отличаться от того, что на скриншоте. Это зависит от модели флеш-накопителя.
2. Создаем новую виртуальную машину, следуя указаниям мастера. Процесс создания ВМ и настройки ее параметров можно посмотреть на следующей презентации.
Настройки создания виртуальной машины
Оперативную память виртуальной машине необходимо выделять в зависимости от объема ОЗУ доступного для основной системы, чем больше выделим, тем быстрее будет работать виртуальная машина. Но желательно оставить основной системе как минимум 2Гб ОЗУ. У меня, к примеру, 12Гб, 6 Гб я выделяю на виртуальную машину, 6 оставляю основной системе.
#2. Установка Windows
1. После создания виртуальной машины, запускаем ее, автоматически начнется установка Windows, далее в процессе установки необходимо выбирать параметры, как показано в следующей презентации.
Установка Windows
По окончании копирования файлов и завершению установки, произойдет автоматическая перезагрузка, появиться экран первоначальной настройки системы (Персонализация), где нам необходимо выбрать цвет оформления и наименование компьютера.
Здесь целесообразно создать снимок виртуальной машины, чтобы в дальнейшем мы могли в любой момент вернуться к этому состоянию, или скопировать его в новую виртуальную машину, чтобы не тратить лишний раз время на установку системы. Для этого переходим в окно диспетчера виртуальных машин, и нажимаем кнопки команд, указанных на скриншоте ниже. Я назвал полученный снимок «Windows установлена».
Далее нам необходимо перевести установку Windows в режим аудита. Для этого возвращаемся в окно виртуальной машины на экране настройки первоначальных параметров (Персонализация) мы должны нажать комбинацию клавиш Ctrl+Shift+F3.
Происходит перезагрузка виртуальной машины и установка Windows переходит в режим аудита, осуществляется вход в систему под встроенной учетной записью Администратора.
#3. Работа в режиме аудита
Режим аудита используется для добавления настроек в установочные образы Windows. В этом режиме доступна установка приложений, добавление драйверов устройств и проверка работоспособности установки.
При входе на рабочий стол будет выдаваться диалоговое окно Программы подготовки системы.
Это окно будет появляться каждый раз при входе на рабочий стол после перезагрузки системы, пока она находиться в режиме аудита. Его следует закрывать.
#2.1 Установка обновлений
В первую очередь рекомендуется установить последние обновления. Подразумевается, что компьютер, на котором запущена виртуальная машина подключен к интернету.
Для этого нам необходимо будет включить автоматическое обновления и выполнить их установку.
Нажимаем комбинацию клавиш Win(флажок Windows)+X и выбираем пункт -> Панель управленияСистема и безопасностьЦентр обновления Window.
Процесс поиска, скачивания и установки обновлений показан в следующей презентации. После скачивания каждой порции доступных обновлений необходимо завершать работу системы, для их установки.
Установка обновлений Windows
Поиск и установку обновлений необходимо выполнить несколько раз, так как некоторые обновления появляются только после установки предыдущих.
До тех пор, пока не увидим сообщение о том что актуальных обновлений больше нет, как на скриншоте ниже:
Процесс поиска и установки обновлений довольно длительный и занимает немало времени, радует то, что его необходимо будет сделать всего один раз, так как теперь все необходимые обновления будут включены в нашу сборку.
После установки всех необходимых обновлений советую сделать очередной снимок виртуальной машины, я называл его «Windows обновлена».
#2.2 Установка приложений
Следующим шагом будет установка необходимых нам приложений, настройка системы и профиля пользователя.
Подробно на этом я останавливаться не буду, так как у каждого свой предпочитаемый набор программ, и их установка ничем не отличается от установки в обычном режиме работы Windows. Если какому-либо приложению необходимо перезагрузка системы, то можно это сделать какое угодно количество раз.
По завершении установки необходимых программ, настройки системы и профиля пользователя рекомендуется еще раз выполнить обновление системы, а после этого советую выполнить удаление временных файлов и исправление ошибок реестра с помощью какой-нибудь утилиты наподобие CCleaner.
Тут я рекомендую создать еще один снимок состояния виртуальной машины, и назвать его «Перед генерализацией»
#2.3 Генерализация Windows и переход в штатный режим установки
Дальше нам надо будет выполнить генерализацию системы, которая включает в себя очистку системы, удаление привязки к оборудованию и перевод установки Windows в штатный режим.
Прежде чем к этому приступать, нужно будет подготовить файл ответов автоматической установки Windows, в котором мы укажем, что при генерализации нужно будет скопировать данные профиля Администратора в профиль по умолчанию, на основе которого в дальнейшем будут создаваться профили пользователей нашей сборки.
Для этого в создадим в блокноте файл с именем CopyProfile.xml, в который необходимо будет вставить следующий текст:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CopyProfile>true</CopyProfile>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
</unattend>
Или можете скачать готовый файл здесь CopyProfile.xml
Этот файл необходимо записать на нашу флешку. И подключить эту флешку к виртуальной машине, как это показано на следующем скриншоте, где показан правый нижний угол окна виртуальной машины.
Правой кнопкой мыши кликаем по значку USB устройства и в выпадающем меню выбираем нашу флешку.
После подключения флешке заходим в проводник Windows и смотрим, какая буква ей присвоена. Запоминаем ее.
У меня флешка подключилась под буквой E:
Далее следует запустить командную строку: нажать комбинацию клавиш Win+R, в строке команд набрать cmd, после чего нажать кнопку ОК, как это показано на следующем скриншоте.
Откроется окно выполнения консольных команд, в котором необходимо запустить утилиту Sysprep c параметрами:
%systemroot%system32sysprepsysprep.exe /generalize /oobe /shutdown /unattend:E:CopyProfile.xml
Где вместо буквы E в параметре /unattend:E:CopyProfile.xml необходимо указать букву, присвоенную флешке подключенной к виртуальной машине.
Дальше идет процесс генерализации, по окончании которого виртуальная машина самостоятельно выключиться.
Если верить документации от Microsoft, то на этот теперь можно приступать к снятию образа, но делать этого не стоит (как верить документации, так и снимать образ. Доверяй но проверяй), так как полноценного копирования профиля администратора в профиль по умолчанию не происходит.
Поэтому придется сделать прыжок в подвывертом, и скопировать таки этот профиль.
Для этого снова включаем виртуальную машину и ждем загрузку Windows вплоть до появления диалога первоначальной настройки профиля пользователя (Персонализация). По ходу загрузки будет осуществлена установка обрудования, и перезагрузка. Следуя шагам мастера, создаем пользователя, тем самым завершая установку Windows как показано на следующей презентации
Настройка параметров персонализации пользователя
Ждем окончания настройки, пока будет создан профиль пользователя, после чего система загружается в штатном режиме готовая к работе.
Теперь нам необходимо включить встроенную учетную запись Администратора и зайти под ней в систему.
Опять нажимаем Win+X и в выпадающем меню выбираем пункт «Управление компьютером». Далее следуем пути: Служебные программы -> Локальные пользователи и группы -> Пользователи.
В списке пользователей выбираем Администратора. Правой кнопкой — > Свойства. Снимаем галочку Отключить учетную запись. Жмем ОК.
Затем нам необходимо войти под учетной записью Администратора, которую мы только что включили. Нажимает комбинацию клавиш Правый Ctrl+Del(или в меню окна виртуальной машины выбираем пункты «Машина»->«Послать Ctrl+Alt+Del»), и выбираем пункт «Выход».
Заходим в систему под Администратором, и открывыем как и в предыдущем действии список управления пользователями. На этот раз, нам требуется удалить созданного ранее нами пользователя. Выбираем его в списке, правой кнопкой мыши открываем выпадающее меню и в нем пункт Удалить. Два раза будет выдан запрос на подтверждение удаления, и два раза соглашаемся удалить этого пользователя.
Снова открываем консольное окно, и выполняем запуск утилиты sysprep со следующими параметрами:
%systemroot%system32sysprepsysprep.exe /generalize /oobe /shutdown
По окончании виртуальная машина выключиться.
Теперь все готово для того, чтобы снять окончательный образ установки Windows.
Следует сделать еще один снимок состояния виртуальной машины. И назвать его — «Перед снятием образа».
#4. Подготовка конечного образа установочной сборки Windows
На этом этапе нам необходимо создать файл install.wim, в котором будет находиться наша установочная сборка Windows.
Для этого включаем виртуальную машину. Тут надо быть внимательным и расторопным. Сразу после включения, в течении 5 секунд, появиться надпись «Press any key to boot from CD or DVD…», которая говорит нам о том, что необходимо нажать любую клавишу для загрузки установки Windows с виртуального CD/DVD привода. Надо успеть нажать любую клавишу, если вдруг не успеете, то можно закрыть виртуальную машину, восстановив снимок предыдущего состояния.
Если успели нажать вовремя, то загрузиться программа установки ОС Windows 8 с виртуального DVD. Ждем пока появиться окно приветствия и нажимаем комбинацию клавиш Shift+F10
Откроется окно ввода консольных команд. Теперь нам снова необходимо подключить нашу флешку к виртуальной машине, так как именно на нее мы будем записывать образ нашей сборки Windows.
Важно замечание — флешка должна быть отформатирована в формате NTFS, так как в отличие от FAT32, в этом формате файловой системы сняты ограничения на максимальный размер файлов в 4Gb, а скорее всего полученный нами образ будет занимать больше 7Гб.
Чтобы отформатировать флешку, необходимо выбрать ее в проводнике основной системы, нажатием правой клавиши мыши вызвать выпадающее меню, в котором выбрать пункт «Форматировать…», и настроить параметры в соответствии с теми что указаны на скриншоте
Также, на флешку, необходимо записать утилиту imagex.exe, ссылку на архив с этой утилитой я давал в начале этой статьи.
После того, как подключили флеш накопитель к виртуальной машине, необходимо определить буквы дисков, на которых находиться настроенная нами Windows, и букву подключенной нами флешки.
Если все делать как написано в этом руководстве, то диск с настроенной нами Windows будет находиться на диске D:, а подключенная нами флешка под буквой F:
Проще всего это проверить, перейдя на нужный диск, введя команду d: и нажав клавишу Enter, а после выполнив команду dir, которая покажет содержимое диска.
Так же следует проверить и диск F:
Чтобы снять образ, необходимо ввести в консоли команду
F:imagexx64imagex.exe /capture D: F:install.wim /flags «Enterprise» «Windows 8 Enterprise» «My Windows 8 Build» /compress maximum
Подробнее о Imagex можно прочитать на сайте Microsoft по этой ссылке — утилита Imagex.
F:imagexx64imagex.exe – путь к утилите imageX
/capture D: — параметр, указывающий что необходимо произвести захват раздела D:
F:install.wim — указываем путь к сохраняемому WIM-файлу, в который будет захвачен образ раздела D:. /flags «Enterprise» — флаг, обозначающий редакцию Windows 8.
«Windows 8 Enterprise» — имя образа.
«My Windows 8 Build» — (необязательно) описание образа
/compress maximum — тип сжатия файлов в образе. Для параметра /compress допустимы значения maximum (максимальное сжатие), fast (быстрое сжатие) и none (без сжатия). Если параметр не указан, используется быстрое сжатие. Максимальное сжатие позволяет уменьшить размер образа, но захват занимает больше времени, чем при быстром сжатии. Скорость распаковки образа практически не зависит от типа сжатия.
Захват образа достаточно длительный процесс, и занимает продолжительное время, от одного часа до 4-х. В зависимости от мощности компьютера, оперативной памяти выделенной для виртуальной машины, и размера самой сборки.
После окончания снятия образа, у нас будет создан файл install.wim на флеш-накопителе. Можно выключить виртуальную машину, больше она нам не понадобиться.
Файл install.wim следует скопировать на жесткий диск основного компьютера, мы с ним будет работать на следующем этапе, когда мы будет создавать загрузочную флешку, предварительно ее отформатировав.
#5. Создание загрузочного флеш-накопителя с собственной сборкой Windows
Для создания загрузочной флешки с собственной сборкой нам понадобиться конструктор RDS Boot KIT с сайта http://disksuite.ru/
Подробно, на нюансах работы этого конструктора я останавливаться не буду, с его помощью можно сделать очень мощный инструмент диагностики, реанимации и восстановления программной части любого компьютера и все это уместить на одном флеш-носителе.
Нас же интересует непосредственно создание загрузочного носителя и запись на него созданной нами ранее установочной сборки Windows.
Создаем папку на жестком диске, я назвал ее RDS, скачиваем в нее конструктор, и запускаем его. При первом запуске создается структура каталогов конструктора, и на этом конструктор завершает свою работу, с сообщением, что необходимо разместить соответствующие ISO образы в предназначенные для этого каталоги.
Теперь необходимо разместить ISO образ установки Windows 8, с которого мы ранее устанавливали Windows на виртуальную машину, в папку конструктора по пути: RDSWindows8x64
Снова запускаем конструктор, и следуем его указаниям. Сначала указывает букву диска, назначенной флеш-накопителю, с которым мы собираемся работать, и обязательно необходимо после буквы поставить двоеточие. Соглашаемся на форматирование и в качестве файловой системы выбираем NTFS, после чего соглашаемся скопировать дистрибутив Windows8, и ждем окончания работы конструктора.
Теперь у нас есть готовая загрузочная флешка. На следует заменить стандартный файл стандартной сборки Windows на созданный ранее нами.
Для это на флешке по пути Windows8x64 заменяем файл install.wim тем, который мы создали ранее на этапе #4.
И еще один момент есть. Рядом с файлом Install.wim на флешке находится файл ответов автоматической установки Windows который называется AutoUnattend.xml. Его надо обязательно заменить, на созданный нами.
Для этого создаем в блокноте файл с именем AutoUnattend.xml и вставляем в него следующий текст:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>ru-RU</UILanguage>
</SetupUILanguage>
<InputLocale>en-US;ru-RU</InputLocale>
<SystemLocale>ru-RU</SystemLocale>
<UILanguage>ru-RU</UILanguage>
<UserLocale>ru-RU</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserData>
<ProductKey>
<Key></Key>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>800</VerticalResolution>
</Display>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US;ru-RU</InputLocale>
<UILanguage>ru-RU</UILanguage>
<UserLocale>ru-RU</UserLocale>
<SystemLocale>ru-RU</SystemLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>false</HideLocalAccountScreen>
<HideOnlineAccountScreens>false</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>false</HideWirelessSetupInOOBE>
<SkipMachineOOBE>false</SkipMachineOOBE>
<ProtectYourPC>1</ProtectYourPC>
<SkipUserOOBE>false</SkipUserOOBE>
</OOBE>
<TimeZone>Central Asia Standard Time</TimeZone>
</component>
</settings>
</unattend>
Либо можно скачать уже готовый файл по этой ссылке AutoUnattend.xml
Вот и все, у нас есть готовая загрузочная флешка с собственным образом установки Windows. Который существенно сэкономит время на развертывание Windows.
Не секрет, что большинство дистрибутивов Windows, из тех, которые выкладываются на торрент-трекерах, являются пользовательскими сборками. Все эти сборки, пусть и условно, можно разделить на два типа. К первому типу относятся сборки с сохранёнными исходными системными компонентами и интегрированным в них сторонним программным обеспечением, ко второму типу относятся так называемые облегченные сборки, из которых вырезано добрая половина компонентов.
Не секрет и то, что именно такие легкие сборки доставляют пользователям больше всего проблем.
Изначально в Windows закладывается больше возможностей, чем это может понадобиться среднему пользователю, система, если можно так сказать, дается на вырост. И вот, если некий юзер захочет к своей системе что-то прикрутить, ранее неиспользуемые им компоненты окажутся даже очень кстати. А теперь представьте, что у этого самого юзера установлена облегченная сборка. Интересно знать, кого помянет он недобрым словом, создателя этой сборки или самого себя, такого недальновидного, умудрившегося повестись на обещанную легкость и производительность Lite-системы.
Так как же быть, может быть пользоваться только официальными сборками? Необязательно, особенно если у вас маломощный компьютер, просто иногда лучше сделать всё самому, то есть собрать образ Windows самостоятельно с учетом ваших нужд. Как это сделать, как раз будет изложено в этой статье. Создавать сборку мы предлагаем с помощью программы NTLite. Она платная, цена домашней версии составляет 40 долларов, кто не хочет платить, могут поискать в интернете пусть и не самые новые, но «вылеченные» и вполне рабочие версии.
Что такое NTLite
Программа NTLite — это мощный инструмент для создания модифицированных сборок Windows. С ее помощью вы можете удалить с дистрибутива системы всё то, что вам покажется лишним либо же напротив, добавить в него то, чего в нём не было изначально. NTLite позволяет удалять из образов системные компоненты, отключать службы, задавать настройки, интегрировать сторонний софт, твики реестра, драйвера и обновления.
Требует ли NTLite от сборщика каких-то знаний? Да. Необходимо по меньшей мере знать, каким целям служат те или иные компоненты, иначе можно на выходе получить глючную систему. Но это, если вы собрались облегчать сборку. Интеграция сторонних компонентов намного менее рискованна.
Создание собственной сборки Windows
Конструирование сборки проходит в три этапа. На первом производится распаковка образа Windows, на втором — его настройка в программе NTLite, на третьем этапе выполняется упаковка файлов в установочный образ. Первым делом распакуем архиватором установочный ISO-образ с Windows в отдельную папку. Пусть он называется data.
Запускаем NTLite, жмем кнопку «Добавить» и указываем путь к папке с распакованным ранее образом ISO. При этом в окне программы вы увидите структуру образа, в котором, кстати, могут быть несколько редакций. Мы будем работать с редакцией Windows 10 Pro. Кликаем по ней ПКМ и выбираем опцию «Загрузить». Если программа попросит подтвердить преобразование образа WIM в ESD, подтверждаем операцию. Процедура преобразования (загрузки) WIM или ESD образа займет некоторое время. По завершении процедуры в левой части окна программы вы увидите панель с несколькими вкладками. Пробежимся по ним по-быстрому.
Удаление и отключение компонентов и служб
В разделе «Компоненты» содержатся модули Windows, которые можно отключить, сняв с них галочки. Сюда входят предустановленные универсальные приложения вкупе с Защитником, компоненты аппаратной поддержки некоторых периферийных устройств и их драйвера, модули мультимедиа — темы, звуки, обои и прочее, сетевые службы и приложения, например, менеджер платежей NFC, системные компоненты — Hyper-V, подсистема Linux, редактор символов, теневое копирование и многое другое. Некоторые компоненты заблокированы по совместимости, это означает, что их нельзя удалить, но можно отключить в разделе «Функции». При удалении компонентов необходимо проявлять осторожность, внимательно знакомиться с описаниями, благо, они даются на русском языке.
В разделе «Функции» отключаются недоступные для удаления компоненты, например, NET Framework. Среди доступных для отключения модулей — офисные игры, гаджеты, клиент рабочих папок, индексация и поиск, подсистема Linux, WMC, службы IIS, PowerShell 2.0, PDF-принтер и Internet Explorer, отключать который, кстати, не рекомендуется, поскольку это может привести к неправильной работе других программ.
Раздел «Настройки» отвечает за включение/отключение различных настроек, действующих для всех пользователей системы, раздел «Службы» — за включение/отключение системных служб. Здесь, как и в «Компонентах» нужно быть внимательным, чтобы не отключить важную службу, без которой Windows даже не сможет запуститься. Особенно это касается служб во вкладке «Дополнительные службы».
Интеграция обновлений, драйверов и твиков реестра
Следующие три вкладки содержат инструменты для интеграции в дистрибутив обновлений, драйверов и твиков реестра. Если нужно добавить, скажем, новое обновление безопасности или языковой пакет, жмем кнопку «Добавить» и указываем путь к файлу CAB, MSU или EXE. В этом же разделе отображаются уже установленные пакеты. С драйверами всё аналогично, только драйвер должен быть распакован, поскольку NTLite понадобится его конфигурационный inf-файл. Точно так же в систему интегрируются твики реестра: жмем кнопку «Добавить» и указываем путь к файлам REG.
Персональные настройки и установка сторонних программ
Если сборка создается для себя, не будет лишним заглянуть в раздел «Автоматическая». Здесь задаются персональные настройки пользователя: имя компьютера, локализация, часовой пояс, сетевые настройки, опции оболочки, сжатие, параметры лицензирования (установка ключа и т.д.), выполняется настройка WinPE.
Если вы хотите интегрировать в образ стороннее программное обеспечение, сделать это можно будет в разделе «После установки» с помощью функции Post-Install. В этом также нет ничего сложного просто жмем уже знакомую кнопку «Добавить» и указываем путь к исполняемым файлам приложений. Процедура их установки будет поочередно запущена на раннем этапе установки сборки Windows. Дополнительно поддерживается установка с параметрами, — в поле «Параметры» прописываются нужные ключи, например, для тихой установки.
Сохранение настроек и упаковка сборки в образ
По большому счету это всё, осталось только применить заданные настройки и упаковать файлы модифицированной сборки в установочный образ. Переключаемся на вкладку «Применить» и определяемся с параметрами образа. При создании сборки Windows 7 всё можно оставить по умолчанию, если это будет сборка Windows 8.1 или 10, необходимо выбрать формат образа «Высокое сжатие», при котором WIM-образ преобразуется в ESD. После этого отмечаем галочкой чекбокс «Создать ISO».
Почти всё готово, можно приступать к упаковке. Присвоив сборке подходящее имя, жмём кнопку «Обработка». Если в вашей системе включен Защитник, NTLite попросит его отключить, так дело пойдет быстрее. Время создания сборки будет зависеть от количества заданных операций, причем большую часть времени займет конвертирование WIM в ESD (в Windows 8.1 и 10), в среднем вся процедура занимает от 40 минут до часа или более. По завершении вы получите готовый установочный образ, который можно записать на флешку или оптический диск.
Спешить устанавливать полученную сборку на свой компьютер, а тем более выкладывать ее на торрент или другой ресурс, однако, не стоит. Сначала нужно убедиться, что сборка рабочая, для чего необходимо протестировать ее на виртуальной машине. Впрочем, можно обойтись и без виртуальной машины. Если у вас есть свободный компьютер, с помощью NTLite вы можете модифицировать установленную на него Windows, выбрав в главном окне «Живая установка» и проделав всё то же самое, о чём было сказано выше. Правда, сохранить в отдельный образ ISO или ESD «живую» систему не получится, зато тестировать ее можно будет тут же на физической машине, выявляя наиболее подходящие варианты модификации.
Официальный сайт разработчика: www.ntlite.com
Загрузка…
Содержание
- Руководство по созданию собственной установочной сборки Windows 8
- Создаем новую OS. Действительно новую, реально операционную, и правда – систему
- Общие характеристики системы
- Основные принципы, лежащие в основе работы ОС
- ▍Знакомьтесь, Resource-Owner-Service (ROS) модель
- Управление задачами
- ▍Скоординированное вытеснение (cooperative preemption)
- ▍Модель передачи управления для потоков (Yield-To)
- ▍Детерминированное планирование задач
- ▍Производительность
- ▍Упрощение структуры кода
- ▍Создание и структура задач
- ▍Диспетчеризация задач
- ▍Управление каналами
- ▍Системные вызовы и управление контекстом
- ▍Управление процессорами
- Уровни сложности системы
- ▍Реализация управления каналами
- ▍Реализация управления задачами
- Примеры коммуникаций посредством каналов
- ▍Дуальные каналы
- ▍Мульти-каналы
- ▍Пулы задач
- ▍Пулы запросов
- ▍Маркеры доступа
- ▍Параллельный доступ к устройствам
- ▍Удаленное использование каналов
- ▍Поддержка со стороны языков программирования
- ▍Генерация кода
- Выводы
Руководство по созданию собственной установочной сборки Windows 8
Введение
Сегодня я хочу рассказать о том, как создать собственный установочный образ Windows 8, со всеми установленными обновлениями, программами и пользовательскими настройками.
Использование такой сборки автоматизирует работу системного администратора по установке и настройки операционной системы. Особо актуально для тех случаев, когда необходимо установить однотипный набор программ на большое количество компьютеров. Так же полезно руководство будет и тем, кто просто хочет создать собственный установочный образ Windows 8 с набором используемых им программ и драйверов.
В данном руководстве затрагиваются вопросы подготовки такой сборки, создание загрузочной флешки и записи полученной сборки на флешку. Так же, полученный образ в дальнейшем, используя службы развертывания в сети (WDS), можно установить на любое количество компьютеров в корпоративной сети, но это тема уже следующего руководства.
Текст рассчитан на начинающих пользователей, поэтому объясняются и иллюстрируются порой простейшие вещи.
Ресурсы
Образ установочного диска Windows 8 в формате ISO
Я сделал свой выбор в пользу Windows 8 Enterprise x64.
Объясню почему. Выбор редакции Enterprise обусловлен максимальной функциональностью, которую обеспечивает эта редакция.
Но в принципе, для домашнего использования возможно использовать и редакцию Professional, тут по желанию.
Аппаратная платформа x64. Выбор 64-х битного варианта системы обусловлен несколькими критически важными факторами.
1. Для 32-х битной системы (x86) доступно только 3,24 Гб адресного пространства оперативной памяти. Сегодня, 4 Гб — это не так и много. И многие новые ноутбуки и стационарные ПК продаются с объемом памяти 6 Гб и выше. Поэтому выбор однозначен в пользу 64-х битной системы, которая не имеет таких ограничений. Более подробно о различиях редакций Windows 8 можно прочитать на сайте Microsoft.
2. Полученный нами образ скорее всего будет размером больше чем 4Гб. Мой установочный образ с «джентельменским» набором программ (включая и MS Office 2013) занимает 7,5 Гб. При установке 32-х битного варианта Windows, если размер образа будет занимает больше чем 4Гб, то будет выдаваться ошибка. При использовании установки 64-х битного варианта, таких проблем нет. Те, кто захочет создать свою сборку на основе 32-х битного образа установки Windows, имейте ввиду этот факт. В этом случае размер развернутого дистрибутива со всеми установленными программами должен занимать ориентировочно около 12 Гб, и тогда в дальнейшем, при его компрессии в конечный установочный образ, его размер будет не больше 4-х Гб.
Диспетчер виртуальных машин VirtualBox
Я использую виртуальную машину для установки первоначального образа системы и дальнейшей настройки программ, так как это наиболее удобный и быстрый способ который существенно позволяет сэкономить время.
Скачать VirutualBox можно на официальном сайте Oracle VM VirtualBox.
Сам установочный пакет диспетчера виртуальных машин, на текущий момент актуальная версия VirtualBox 4.2.12 for Windows hosts x86/amd64
И по желанию, можно скачать пакет дополнения VirtualBox 4.2.12 Oracle VM VirtualBox Extension Pack All supported platforms
Утилита Imagex
Конструктор RDS Boot KIT и комплект Recovery DiskSuite
Это очень мощный конструктор, позволяющий создать загрузочную флешку, на которой по желанию можно разместить одновременно различные реаниматоры такие как HirensBootCD, LiveCD, Kaspersky Rescue Disk, и др., а так же, дистрибутивы операционных систем — WinXP, Win7 и Win8. Главное чтобы хватило место на флеш-накопителе. Аналогов на текущий момент ему нет ни в рунете, ни на «загнивающем» западе :).
Необходимо скачать последнюю версию конструктора RDS Boot KIT с сайта http://disksuite.ru/ и по желанию, сам набор Recovery DiskSuite, включающий в себя iso образы различных реаниматоров и дистрибутивов. Я предпочитаю использовать собственные проверенные образы, а не те, что идут в комплекте с Recovery DiskSuite.
На всякий случай даю ссылку на версию конструктора, работа с которым описана в руководстве RDS Boot KIT.zip.
Флеш накопитель 8Gb и больше
Флешка объемом 8Gb — это минимум, но тут действует правило — чем больше, тем лучше. Такого объема, кстати, может и не хватить, если будет устанавливаться множество программ. Я приобрел объемом 32Gb, но теперь понимаю, что надо было 64Gb, чтобы поместилось больше собственных сборок дистрибутивов других версий Windows.
50Gb свободного места на HDD, как минимум
Одним и из преимуществ использования виртуальной машины, является то, что можно создавать моментальные снимки состояния виртуальной машины, и в дальнейшем возвращаться к любому из этих снимков. Своеобразная машина времени. Я делал снимки после прохождения каждого этапа создания собственной сборки. И если где-то делал ошибку, то возвращался к предыдущему снимку и уже делал без ошибок. Но платой за это удобство выступает дополнительное место на жёстком диске, которое требуется для снимков.
Если скачать все полные дистрибутивы, и не скупиться на снимках состояния виртуальной машины, то желательно иметь около 100GB свободного места на жестком диске.
Этапы работы
1. Подготовительный этап. Установка и настройка диспетчера виртуальных машин. Создание и настройка самой виртуальной машины;
2. Установка Windows на виртуальной машине и перевод установки Windows в режим аудита;
3. Работа в режиме аудита. На этом этапе необходимо произвести обновление системы, установку и настройку программ, системы и профиля пользователя. После завершения этих действий, следует осуществить выход и из режима аудита и перевести Windows в штатный режим установки;
4. Подготовка конечного образа собственной установочной сборки Windows;
5. Запись собственной установочной сборки на флешку.
#1. Подготовительный этап
1. Устанавливаем VirutualBox, следуя шагам мастера установки. После установки запускаем диспетчер витуальных машин, идем в настройки Файл->Настройки и настраиваем в соответствии со следующей презентацией:
(На данный момент Slidershare глючит, даю ее ссылку на эту презентацию в GoogleDrive)
Настройка диспетчера виртуальных машин
Сначала мы устанавливаем порядок загрузки, указав устройство CD/DVD-ROM в качестве первого устройства на котором будет искаться загрузочная запись и с которого будет осуществляться загрузка.
Далее мы в привод CD/DVD-ROM виртуальной машины подключаем ранее сказанный нами образ установки Windows 8 Enterprise x64.
И на третьем слайде мы подключаем к нашей виртуальной машине флеш-накопитель, который предварительно должны подключить к нашему основному компьютеру. В дальнейшем нам предстоит с ним работать из виртуальной машины. Его название может отличаться от того, что на скриншоте. Это зависит от модели флеш-накопителя.
2. Создаем новую виртуальную машину, следуя указаниям мастера. Процесс создания ВМ и настройки ее параметров можно посмотреть на следующей презентации.
Оперативную память виртуальной машине необходимо выделять в зависимости от объема ОЗУ доступного для основной системы, чем больше выделим, тем быстрее будет работать виртуальная машина. Но желательно оставить основной системе как минимум 2Гб ОЗУ. У меня, к примеру, 12Гб, 6 Гб я выделяю на виртуальную машину, 6 оставляю основной системе.
#2. Установка Windows
По окончании копирования файлов и завершению установки, произойдет автоматическая перезагрузка, появиться экран первоначальной настройки системы (Персонализация), где нам необходимо выбрать цвет оформления и наименование компьютера.
Здесь целесообразно создать снимок виртуальной машины, чтобы в дальнейшем мы могли в любой момент вернуться к этому состоянию, или скопировать его в новую виртуальную машину, чтобы не тратить лишний раз время на установку системы. Для этого переходим в окно диспетчера виртуальных машин, и нажимаем кнопки команд, указанных на скриншоте ниже. Я назвал полученный снимок «Windows установлена».
Далее нам необходимо перевести установку Windows в режим аудита. Для этого возвращаемся в окно виртуальной машины на экране настройки первоначальных параметров (Персонализация) мы должны нажать комбинацию клавиш Ctrl+Shift+F3.
Происходит перезагрузка виртуальной машины и установка Windows переходит в режим аудита, осуществляется вход в систему под встроенной учетной записью Администратора.
#3. Работа в режиме аудита
Режим аудита используется для добавления настроек в установочные образы Windows. В этом режиме доступна установка приложений, добавление драйверов устройств и проверка работоспособности установки.
При входе на рабочий стол будет выдаваться диалоговое окно Программы подготовки системы.
Это окно будет появляться каждый раз при входе на рабочий стол после перезагрузки системы, пока она находиться в режиме аудита. Его следует закрывать.
#2.1 Установка обновлений
Поиск и установку обновлений необходимо выполнить несколько раз, так как некоторые обновления появляются только после установки предыдущих.
До тех пор, пока не увидим сообщение о том что актуальных обновлений больше нет, как на скриншоте ниже:
Процесс поиска и установки обновлений довольно длительный и занимает немало времени, радует то, что его необходимо будет сделать всего один раз, так как теперь все необходимые обновления будут включены в нашу сборку.
После установки всех необходимых обновлений советую сделать очередной снимок виртуальной машины, я называл его «Windows обновлена».
#2.2 Установка приложений
Следующим шагом будет установка необходимых нам приложений, настройка системы и профиля пользователя.
Подробно на этом я останавливаться не буду, так как у каждого свой предпочитаемый набор программ, и их установка ничем не отличается от установки в обычном режиме работы Windows. Если какому-либо приложению необходимо перезагрузка системы, то можно это сделать какое угодно количество раз.
По завершении установки необходимых программ, настройки системы и профиля пользователя рекомендуется еще раз выполнить обновление системы, а после этого советую выполнить удаление временных файлов и исправление ошибок реестра с помощью какой-нибудь утилиты наподобие CCleaner.
Тут я рекомендую создать еще один снимок состояния виртуальной машины, и назвать его «Перед генерализацией»
#2.3 Генерализация Windows и переход в штатный режим установки
Дальше нам надо будет выполнить генерализацию системы, которая включает в себя очистку системы, удаление привязки к оборудованию и перевод установки Windows в штатный режим.
Прежде чем к этому приступать, нужно будет подготовить файл ответов автоматической установки Windows, в котором мы укажем, что при генерализации нужно будет скопировать данные профиля Администратора в профиль по умолчанию, на основе которого в дальнейшем будут создаваться профили пользователей нашей сборки.
Для этого в создадим в блокноте файл с именем CopyProfile.xml, в который необходимо будет вставить следующий текст:
Или можете скачать готовый файл здесь CopyProfile.xml
Этот файл необходимо записать на нашу флешку. И подключить эту флешку к виртуальной машине, как это показано на следующем скриншоте, где показан правый нижний угол окна виртуальной машины.
Правой кнопкой мыши кликаем по значку USB устройства и в выпадающем меню выбираем нашу флешку.
После подключения флешке заходим в проводник Windows и смотрим, какая буква ей присвоена. Запоминаем ее.
У меня флешка подключилась под буквой E:
Далее следует запустить командную строку: нажать комбинацию клавиш Win+R, в строке команд набрать cmd, после чего нажать кнопку ОК, как это показано на следующем скриншоте.
Откроется окно выполнения консольных команд, в котором необходимо запустить утилиту Sysprep c параметрами:
%systemroot%system32sysprepsysprep.exe /generalize /oobe /shutdown /unattend:E:CopyProfile.xml
Где вместо буквы E в параметре /unattend:E:CopyProfile.xml необходимо указать букву, присвоенную флешке подключенной к виртуальной машине.
Дальше идет процесс генерализации, по окончании которого виртуальная машина самостоятельно выключиться.
Если верить документации от Microsoft, то на этот теперь можно приступать к снятию образа, но делать этого не стоит (как верить документации, так и снимать образ. Доверяй но проверяй), так как полноценного копирования профиля администратора в профиль по умолчанию не происходит.
Поэтому придется сделать прыжок в подвывертом, и скопировать таки этот профиль.
Для этого снова включаем виртуальную машину и ждем загрузку Windows вплоть до появления диалога первоначальной настройки профиля пользователя (Персонализация). По ходу загрузки будет осуществлена установка обрудования, и перезагрузка. Следуя шагам мастера, создаем пользователя, тем самым завершая установку Windows как показано на следующей презентации
Затем нам необходимо войти под учетной записью Администратора, которую мы только что включили. Нажимает комбинацию клавиш Правый Ctrl+Del(или в меню окна виртуальной машины выбираем пункты «Машина»->«Послать Ctrl+Alt+Del»), и выбираем пункт «Выход».
Заходим в систему под Администратором, и открывыем как и в предыдущем действии список управления пользователями. На этот раз, нам требуется удалить созданного ранее нами пользователя. Выбираем его в списке, правой кнопкой мыши открываем выпадающее меню и в нем пункт Удалить. Два раза будет выдан запрос на подтверждение удаления, и два раза соглашаемся удалить этого пользователя.
Снова открываем консольное окно, и выполняем запуск утилиты sysprep со следующими параметрами:
%systemroot%system32sysprepsysprep.exe /generalize /oobe /shutdown
По окончании виртуальная машина выключиться.
Теперь все готово для того, чтобы снять окончательный образ установки Windows.
Следует сделать еще один снимок состояния виртуальной машины. И назвать его — «Перед снятием образа».
#4. Подготовка конечного образа установочной сборки Windows
На этом этапе нам необходимо создать файл install.wim, в котором будет находиться наша установочная сборка Windows.
Для этого включаем виртуальную машину. Тут надо быть внимательным и расторопным. Сразу после включения, в течении 5 секунд, появиться надпись «Press any key to boot from CD or DVD…», которая говорит нам о том, что необходимо нажать любую клавишу для загрузки установки Windows с виртуального CD/DVD привода. Надо успеть нажать любую клавишу, если вдруг не успеете, то можно закрыть виртуальную машину, восстановив снимок предыдущего состояния.
Если успели нажать вовремя, то загрузиться программа установки ОС Windows 8 с виртуального DVD. Ждем пока появиться окно приветствия и нажимаем комбинацию клавиш Shift+F10
Откроется окно ввода консольных команд. Теперь нам снова необходимо подключить нашу флешку к виртуальной машине, так как именно на нее мы будем записывать образ нашей сборки Windows.
Важно замечание — флешка должна быть отформатирована в формате NTFS, так как в отличие от FAT32, в этом формате файловой системы сняты ограничения на максимальный размер файлов в 4Gb, а скорее всего полученный нами образ будет занимать больше 7Гб.
Чтобы отформатировать флешку, необходимо выбрать ее в проводнике основной системы, нажатием правой клавиши мыши вызвать выпадающее меню, в котором выбрать пункт «Форматировать…», и настроить параметры в соответствии с теми что указаны на скриншоте
Также, на флешку, необходимо записать утилиту imagex.exe, ссылку на архив с этой утилитой я давал в начале этой статьи.
После того, как подключили флеш накопитель к виртуальной машине, необходимо определить буквы дисков, на которых находиться настроенная нами Windows, и букву подключенной нами флешки.
Если все делать как написано в этом руководстве, то диск с настроенной нами Windows будет находиться на диске D:, а подключенная нами флешка под буквой F:
Проще всего это проверить, перейдя на нужный диск, введя команду d: и нажав клавишу Enter, а после выполнив команду dir, которая покажет содержимое диска.
Так же следует проверить и диск F:
Чтобы снять образ, необходимо ввести в консоли команду
F:imagexx64imagex.exe /capture D: F:install.wim /flags «Enterprise» «Windows 8 Enterprise» «My Windows 8 Build» /compress maximum
Подробнее о Imagex можно прочитать на сайте Microsoft по этой ссылке — утилита Imagex.
Захват образа достаточно длительный процесс, и занимает продолжительное время, от одного часа до 4-х. В зависимости от мощности компьютера, оперативной памяти выделенной для виртуальной машины, и размера самой сборки.
После окончания снятия образа, у нас будет создан файл install.wim на флеш-накопителе. Можно выключить виртуальную машину, больше она нам не понадобиться.
Файл install.wim следует скопировать на жесткий диск основного компьютера, мы с ним будет работать на следующем этапе, когда мы будет создавать загрузочную флешку, предварительно ее отформатировав.
#5. Создание загрузочного флеш-накопителя с собственной сборкой Windows
Для создания загрузочной флешки с собственной сборкой нам понадобиться конструктор RDS Boot KIT с сайта http://disksuite.ru/
Подробно, на нюансах работы этого конструктора я останавливаться не буду, с его помощью можно сделать очень мощный инструмент диагностики, реанимации и восстановления программной части любого компьютера и все это уместить на одном флеш-носителе.
Нас же интересует непосредственно создание загрузочного носителя и запись на него созданной нами ранее установочной сборки Windows.
Создаем папку на жестком диске, я назвал ее RDS, скачиваем в нее конструктор, и запускаем его. При первом запуске создается структура каталогов конструктора, и на этом конструктор завершает свою работу, с сообщением, что необходимо разместить соответствующие ISO образы в предназначенные для этого каталоги.
Теперь необходимо разместить ISO образ установки Windows 8, с которого мы ранее устанавливали Windows на виртуальную машину, в папку конструктора по пути: RDSWindows8x64
Снова запускаем конструктор, и следуем его указаниям. Сначала указывает букву диска, назначенной флеш-накопителю, с которым мы собираемся работать, и обязательно необходимо после буквы поставить двоеточие. Соглашаемся на форматирование и в качестве файловой системы выбираем NTFS, после чего соглашаемся скопировать дистрибутив Windows8, и ждем окончания работы конструктора.
Теперь у нас есть готовая загрузочная флешка. На следует заменить стандартный файл стандартной сборки Windows на созданный ранее нами.
Для это на флешке по пути Windows8x64 заменяем файл install.wim тем, который мы создали ранее на этапе #4.
И еще один момент есть. Рядом с файлом Install.wim на флешке находится файл ответов автоматической установки Windows который называется AutoUnattend.xml. Его надо обязательно заменить, на созданный нами.
Для этого создаем в блокноте файл с именем AutoUnattend.xml и вставляем в него следующий текст:
Либо можно скачать уже готовый файл по этой ссылке AutoUnattend.xml
Вот и все, у нас есть готовая загрузочная флешка с собственным образом установки Windows. Который существенно сэкономит время на развертывание Windows.
Источник
Создаем новую OS. Действительно новую, реально операционную, и правда – систему
Общие характеристики системы
Основные принципы, лежащие в основе работы ОС
▍Знакомьтесь, Resource-Owner-Service (ROS) модель
Назовем экземпляры этих объектов «каналами». Канал – это разделяемый объект, содержащий как код, так и данные и предназначенный для передачи данных и управления между задачами. Заметьте, что здесь намеренно отсутствует разграничение на провайдера и потребителя услуг (то есть, сервер и клиент), так как каждая задача может и предоставлять, и потреблять определенный набор сервисов. Из исключительности каналов как средства взаимодействия задач следует еще одно свойство ROS-модели: коммуникационная синхронизация. Любая передача управления между задачами по определению может осуществляться только в связке с получениемпредоставлением услуги, то есть, каналы становятся синхронизационными объектами, однозначно определяющими место и назначение синхронизации задач.
ОС не имеет никакой информации и не делает никаких предположений о предназначении каждого канала. Так что каналы должны предоставлять идентификаторы, однозначно определяющие тип, цель или иную информацию, необходимую для конкретного взаимодействия.
Для обеспечения исполнения задач система создает для каждой задачи специальный системный канал.
Дизайн ОС включает в себя два вида каналов: дуальные и мульти. Как видно из названия, у первых число присоединенных задач не может превышать 2, а у последних ограничения по количеству подключенных задач отсутствуют (определяются исключительно объемом доступной памяти и особенностями конкретной реализации ОС). Каждый канал имеет два «противоположных» конца. Задачи, присоединенные к ним, называются экспортерами и импортерами канала, соответственно. Разница между этими двумя типами задач несущественна – оба должны создать экземпляр канала, то есть, выделить память и таким образом поместить канал в свое адресное пространство. Единственная цель разделения на экспортеров и импортеров – поддержка задач с традиционной семантикой клиент-сервер, т.е. производитель и потребитель услуг.
На рисунке ниже представлена принципиальная схема ROS OS:
Все крайне просто. Серо-голубым цветом помечены физические компоненты системы – процессоры (CPU), память (memory). Dev (Device) – это физическое устройство хранения данных.
Ядро ОС владеет ресурсами процессоров и памяти. Остальными ресурсами системы могут владеть привилегированные задачи (P-task), предоставляющие в свою очередь сервисы задачам пользовательского уровня (U-task) посредством коммуникационных каналов (channel).
ROS OS реализует: Менеджер Памяти (ME-M), Менеджер Каналов (CH-M), Менеджер Системных Каналов (SC-M), Менеджер Задач (TA-M), и Диспетчер Задач (TA-D). Ядро идентифицирует задачи и запросы на сервисы посредством системных каналов (syschan).
Управление задачами
▍Скоординированное вытеснение (cooperative preemption)
В отличие от Windows и Linux, которые сохраняют контекст задач при их переключении, потребляя при этом значительное количество памяти на размещение стека, а также теряя производительность на инструкциях сохранения регистров, предлагаемая OS дает возможность каждой задаче сообщить ядру, что сохранять ее контекст не требуется.
Вместо этого, задачи предоставляют окружение исполнения, состоящее из четырех указателей в форме , так что ядро может очистить стек задачи, а затем, непосредственно перед активацией, выделить задаче новый (или предоставить существующий пустой) стек, после чего позвать функцию func с данными параметрами. При этом, значения остальных, не используемых в передаче этого окружения регистров остаются неопределенными или обнуляются, что быстрее сохранениявосстановления корректного значения.
Непосредственно перед активацией задачи система очищает окружение из 4-ех указателей, чтобы исключить ошибочное преждевременное вытеснение задачи.
Заметим, что скоординированное вытеснение (при условии, что все задачи в системе ему следуют) означает, что при идеальных условиях исполнения для каждого ядра CPU будет существовать только один стек. Дополнительные стеки будут выделяться, только если задача будет вытеснена преждевременно, перед тем, как она инициализирует контекст из 4-ех указателей.
▍Модель передачи управления для потоков (Yield-To)
Дизайн ОС не предполагает явных функций ожидания (wait) или взаимного исключения для потоков. Вместо этого межпотоковая синхронизация достигается явной передачей управления другим задачам, идентифицируемым при помощи указателя на канал и номера задачи в канале. То есть, управление передается не конкретной задаче, а любому агенту, который предоставляет соответствующий сервис и проиндексирован в своем сервисном канале. При этом, за конкретную эффективную внутреннюю реализацию протокола для синхронизации отвечают сами коммуникационные агенты.
Операционная система может поддерживать множественные стратегии передачи управления задачами, такие как «уступить любой», «уступить заданной» и «разрешить исполнение заданной». Последняя стратегия подразумевает, что уступающая задача не намеревается отдавать контроль на «своем» CPU, так что новая задача должна быть активирована в параллель с текущей на другом CPU.
▍Детерминированное планирование задач
Каждая задача активируется системным таймером (как и в существующих ОС), но, с учетом применимости ROS OS к системам реального времени, каждая задача должна задать требования к планировщику задач в виде двух параметров: частоты и продолжительности активации. Помимо своего основного назначения, эти параметры используются для оценки предполагаемой загрузки системы, количества ожидаемых конфликтов задач и выделения в соответствии с этим необходимых ресурсов (тех же стеков)
В идеале, суммарная продолжительность активаций всех задач должна быть меньше или равна минимальному заданному периоду активации, а периоды должны быть кратны минимальному. Выполнение этих условий будет гарантировать отсутствие конфликтов планировки.
Но в нашем несовершенном мире некоторые задачи могут превысить свою заявленную продолжительность, в таком случае они могут быть вытеснены другими, готовыми к исполнению задачами и помещены в список «на будущее исполнение» в ближайшие свободные слоты.
▍Производительность
Так как в ROS модели может существовать несколько провайдеров одного и того же сервиса (по сети или даже локально), единственным критерием выбора между различными провайдерами будет их производительность в данных конкретных условиях.
Для управления производительностью программ системный канал имеет счетчики-таймеры активного времени и времени ожидания, предоставляющие информацию о состоянии текущей задачи. Так как обычно известно, какой задаче (каналу) было передано управление, производительность может быть оценена просто по значению соответствующего таймера по возвращении в вызывающую задачу.
Сравнив производительности нескольких каналов, задача может переключиться на использование более быстрых из них, что может оказаться особенно полезным в условиях динамической адаптации к меняющимся условиям (обширные сети, физически нестабильные окружения и т.д.).
▍Упрощение структуры кода
Поскольку каналы представляют собой динамические структуры данных, разделяемые между адресными пространствами задач и подверженные возможным перемещениям в памяти ядром ОС, код каналов, да и задач в общем случае должен быть написан так, чтобы не зависеть от статичного положения данных в памяти (или располагать их относительно вызывающего кода) и позиции самого кода. Отсутствие статичных структур, независимость от позиции и контекст из 4-ех указателей позволяют обойтись без сложных заголовков программ и определяет следующую простейшую структуру программы:
Каждая программа представляется в памяти в виде двух частей: кода и данных (с опциональным разграничением между ними для обеспечения защиты доступа). Начало куска кода – это стартовая функция задачи, принимающая на вход три указателя, как описано выше.
▍Создание и структура задач
Задача может быть создана из любого фрагмента кода. Адрес начала кода будет являться адресом стартовой функции задачи – той самой, с прототипом четырех указателей – func(chan, sys, loc), где chan и loc – опциональные (так, loc – может указывать на локальные данные), а sys – указывает на созданный для задачи системный канал. Заметим, что код задачи копируется на новое место в памяти для упрощения дальнейших операций с каналами – например, если часть кода будет экспортирована в качестве канала.
Внутренняя структура задач выглядит так:
Каждая задача содержит дескриптор, описывающий ее тип (type) – пользовательский или привилегированный, а также указатели на: таблицы страниц адресного пространства (address space), локальную память (heap), стек (stack) и обработчик исключений (exception handler).
Помимо этого, дескриптор задачи включает список отображенных каналов – (task2chan), т.е. список пар: «индекс-дескриптор канала, указатель на код данного канала».
В случае, когда задачи разделяют общее адресное пространство, указатели каналов могут пропускаться с целью оптимизации использования памяти.
Первый элемент списка отображенных каналов – это всегда системный канал задачи. Он хранит контекст исполнения и другие свойства, как описано дальше.
▍Диспетчеризация задач
Дизайн ОС предусматривает два типа активации задач: (а) по системному таймеру согласно запрашиваемому расписанию и (б) по явной передаче управления из другой задачи.
Расписание активации может быть запрошено в виде периода и продолжительности активации. Эти два параметра определяют следующую диаграмму состояния задачи
Граф изменения состояния задач.
Изначально, при активации задачи, она входит в защищенное (active-protected) состояние, то есть, она не подлежит вытеснению. После того, как задача превышает заявленную продолжительность, защита от вытеснения снимается. В случае, когда в листе готовых к исполнению задач (ready list) есть другая задача, система может вытеснить первую задачу, поместить ее дескриптор в ready list и активировать другую задачу. Вновь активированная задача возобновляет исполнение либо в активном состоянии (если она была вытеснена ранее), либо в защищенном состоянии (в случае запланированного исполнения или вообще для всех задач, в зависимости от конкретной реализации)
Важный момент: задание расписания исполнения на основе периода позволяет ядру системы гарантировать задачам реального времени определенную частоту активации, а не предельный срок ее начала. Таким образом, система может сдвигать задачи во времени, если это не нарушает частоту активации. Задание продолжительности позволяет избежать проблем, связанных с приоритетом задач, посредством определения для них предварительно запланированного (запрошенного) отношения активности/ожидания. Конкретные реализации ОС могут ограничить продолжительность максимальной длиной кванта времени, чтобы «жадные» задачи не занимали процессор бесконечно. Все вышесказанное упрощает схему планировщика и обеспечивает его быстрое функционирование.
Планировка на основе заданных периода и продолжительности активации позволяет планировщику определять неизбежные конфликты (см. рисунок ниже) и либо отклонять запрос на активацию, либо смягчать требования планировки реального времени.
Помимо вытесняющей многозадачности, система поддерживает и кооперативную. Явная передача управления может осуществляться с помощью специального системного метода yield(). Вызов этого метода приведет к передаче управления задаче, идентифицируемой при помощи указателя на канал и номера задачи в нем, и исполнению данной задачи на заданном процессоре. Также, как было сказано выше, возможно передать управление не конкретной задаче, а любому агенту, который предоставляет соответствующий сервис и проиндексирован в своем сервисном канале.
Каждый конфликт планировки (включая динамический, когда задачу вытесняют по превышению продолжительности исполнения) в общем случае приводит к выделению ядром ОС дополнительных ресурсов – нового стека для активированной задачи. Поэтому для оптимального использования системных ресурсов каждая задача может сообщить ядру ОС, что она не нуждается в сохранении регистров и данных стека. В этом случае ОС при вызове yield() может освободить стек задачи и сбросить содержимое регистров. При активации такой задачи система вызовет прототип на пустом стеке и неопределенном содержании регистров.
Для обеспечения запланированной или вытесняющей активации задачи диспетчер задач поддерживает список готовых к выполнению задач. Это – кольцевой буфер, содержащий индексы-дескрипторы (или указатели) задач и запланированное время активации, как показано на рисунке ниже. Для вытесненных задач это время будет, конечно, нулевым.
Время может выражаться в абсолютных или относительных единицах (по отношению к максимальному периоду), и обновляться в соответствии с запрошенными периодами активации. Когда задача вытесняется или уступает контроль, ее дескриптор помещается в первый свободный слот кольцевого буфера. Отметим, что так как список упорядочен по времени, задача может быть вставлена в список перед другими, если крайний срок ее активации наступает раньше.
Готовые к исполнению задачи могут выбираться из листа, начиная с конца (хвоста) или с указателей на листы задач (task list pointers), содержащихся в Блоках управления процессорами, которые описаны ниже.
Накладные расходы планировки задач разделяются на статические и динамические. Первые – это постоянное время инициализации процессорного контекста задачи (напомним, что именно это время уменьшает кооперативная многозадачность), а вторые – накладные расходы самого диспетчера задач, пропорциональные количеству операций поиска в листе готовности задач (как для поиска текущей готовой к исполнению задачи, так и для вставки новой). При этом, нет необходимости поиска задачи для активации, так как она всегда будет находиться в «хвосте» списка.
Накладные расходы на вставку задач будут минимальными, если все задачи запросили периоды активации одинаковой продолжительности. Если же периоды разные, то поиск займет логарифмическое число операций, так как лист готовности включает набор следующих друг за другом, по большей мере, сортированных данных, а несортированные элементы могут быть найдены по цепочке ссылок.
▍Управление каналами
Каждому каналу в системе присваивается дескриптор, который хранит информацию о топологии канала (type), его идентификатор (guid), а также указатели: на тело канала (body pointer) в общем адресном пространстве, где размещены все каналы; и на дескрипторы задач (chan2task), которые присоединены к данному каналу. То есть, система хранит таблицу дескрипторов каналов, показанную на рисунке ниже:
Обратные ссылки каналов на задачи необходимы для идентификации задач посредством указателя на канал и внутриканального индекса (для передачи управления между задачами). В этой схеме внутриканальный индекс – это позиция дескриптора задачи (task descidx) в соответствующем листе chan2task.
▍Системные вызовы и управление контекстом
Системные каналы – это комплекс средств для идентификации задач, сохранения их контекста, получения системной информации, генерации системных вызовов и передачи управления другим задачам.
На рисунке ниже показана структура системного канала.
Как видно, аргументы системных вызовов не передаются через стек или регистры, а копируются в соответствующие структуры системного канала.
В системном канале размещается информация о свойствах и возможностях компьютерной платформы, позволяя ее использование без дополнительных накладных расходов на системный вызов.
Комбинация в одном канале четырех-указательного окружения исполнения и контекста исполнения может быть удобной для целей удаленной отладкимониторинга.
Информация о хронометраже каждой задачи обновляется ядром ОС в реальном времени. Наличие полей, относящихся к каждому процессору системы, позволяет параллельную активацию задач (идентификация задач происходит на основе таблицы дескриптора канала).
Конкретные реализации системы могут выделить один регистр (доступный для чтения непривилегированным задачам – например, при наличии поддержки в железе, сегментный регистр) для хранения постоянного указателя на текущий системный канал задачи. В этом случае задачам не требуется сохранять указатель на системный канал, вместо этого они могут ссылаться на него через соответствующий макрос.
Системный канал должен обязательно поддерживать следующие функции, которые, фактически, будут являться системным API:
То есть, весь системный API состоит менее, чем из 10 функций!!
▍Управление процессорами
Каждому процессору в системе присваивается Блок Управления Процессором, который содержит некоторые свойства текущей выполняемой задачи, как показано на рисунке ниже.
Также в соответствие процессору ставятся некоторые другие управляющие таблицы – прерываний (включая межпроцессорные) и таблица системных дескрипторов.
Уровни сложности системы
Сложность определенной реализации системы может зависеть от доступного объема памяти, процессорных возможностей и производительности конкретной платформы. Ниже описаны возможности регулировки сложности ядра ОС.
▍Реализация управления каналами
Каналы, являясь основой дизайна ОС, допускают значительную вариативность. Например, разработчики ОС могут выбрать поддержку исключительно дуальных каналов, исключая таким образом необходимость динамического выделения списков членов каналов. Кроме того, система может не поддерживать каналы с кодом (или, по крайней мере, смешанные каналы для кода и данных), вследствие чего упрощается использование традиционных компиляторов и сред разработки, так как пропадает необходимость агрегирования кода и данных.
Каналы могут идентифицироваться уникальными 128-битными идентификаторами либо определенными индексами, валидность которых может контролироваться локальной (масштаба системы или сети) или глобальной службой.
Еще одна возможность – присвоение каналам имен, образованных в виде иерархических путей, подобных системным файловым путям существующих ОС.
▍Реализация управления задачами
Так же, как и в современных ОС, предлагаемый дизайн операционной системы подразумевает возможность реализации задач как в форме процессов, так и в форме потоков, то есть, задачи могут быть как изолированными (логически и физически, если это позволяют возможности процессорной системы), так и разделять одно адресное пространство, а значит, и передавать данные через разделяемые переменные.
Еще одна возможная, но очень важная особенность реализации – это уровень привилегий задач, то есть, доступность задачам определенных системных и процессорных ресурсов (например, межпроцессорных прерываний, таблиц дескрипторов процессоров, входных-выходных портов).
Возможное решение – это поддержка исключительно привилегированных задач, что приведет к экономии усилий по реализации изоляции задач, защите памяти и процессорных ресурсов.
Если же поддерживаются как привилегированные, так и непривилегированные задачи, дизайн ОС предусматривает две возможности для реализации привилегированных операций.
В первом случае, все привилегированные операции могут исполняться только ядром, то есть, все привилегированные программы становятся частью ядра ОС и исполняются в его контексте (или контексте запрашивающей стороны). Назовем это «общей схемой». Достоинства этого подхода – обслуживание привилегированных операций может не требовать переключения контекста задач (операции выполняются в контексте запрашивающей стороны) в случае, когда адресное пространство ядра ОС отображается на адресное пространство каждой задачи. Кроме того, так как системное ядро всегда распараллелено по числу процессоров системы, параллельные задачи, запрашивающие привилегированные операции, не будут простаивать даже при отсутствии возможности исполнения их контекста. Недостаток – запрашивающая задача не сможет продолжить исполнение до тех пор, пока запрос не будет обработан.
Во втором случае все привилегированные задачи могут быть отделены от ядра («раздельная схема»).
Это решает проблему параллельного исполнения запрашивающих и выполняющих запросы задач, но вносит дополнительное переключение контекста по каждому запросу и получению прерывания (так как прерывания, принадлежащие привилегированным задачам, могут произойти во время исполнения любой другой задачи).
Поэтому полезным решением может стать объединение общей и раздельной схем. По умолчанию, все привилегированные операции могут быть выполнены от лица запрашивающих их задач (как часть ядра), но, по мере необходимости, могут создавать другие привилегированные задачи, исполняемые отдельно, и передать им управление и данные с помощью каналов.
Для реализации комбинированного подхода может потребоваться дополнительное расширение к вышеописанной функциональности ядра – системный вызов, соединяющий вектор прерываний и его обработчик – сервисную функцию, вызываемую ядром системы при передаче управления привилегированному каналу, владелец которого – часть ядра, а не отдельная задача.
При вызове этой функции система проверяет привилегии инициатора запроса и текущий индекс задачи. Ядро ОС гарантирует при получении каждого прерывания из указанного вектора переключение контекста на привилегированную задачу – инициатора запроса. Нулевой параметр handler удаляет предварительно установленный обработчик прерываний.
Дескриптор канала в этом случае будет содержать функцию- обработчик прерываний.
Примеры коммуникаций посредством каналов
▍Дуальные каналы
Простейшая модель коммуникации задач – это дуальные каналы. Они гарантируют обслуживание только двух коммуницирующих агентов, хотя каждый из них может соединяться с более чем одним каналом того же ID. То есть, и один провайдер сервиса может предоставлять его нескольким клиентам (каждому – в отдельном канале), и один потребитель получать одну и ту же услугу от разных поставщиков.
Дуальные каналы являются эффективным средством передачи данных в случае, когда присоединенные к ним агенты копируют свои данные в разделяемое внутриканальное хранилище и извещают друг друга о завершении операции копированияобработки данных (так что ожидающие агенты не тратят попусту вычислительные ресурсы).
Дуальные каналы кода практически эквивалентны каналам с данными, единственное отличие – они предоставляют разделяемый интерфейс, который инкапсулирует операции обработки и передачи данных, что может оказаться более удобным в некоторых случаях объектно-ориентированного дизайна. В этом случае операции передачи управления могут осуществляться внутриканальным кодом по поручению текущей задачи.
Здесь и на последующих рисунках U-Task означает пользовтельскую задачу.
▍Мульти-каналы
Мульти-каналы могут использоваться для обеспечения вычислительного сервиса – то есть, для разделения кода между несколькими задачами (подобно динамическим библиотекам во многих традиционных ОС).
Разделяемый код при этом необязательно должен поддерживаться своей задачей-экспортером.
Задача может первоначально экспортировать канал и завершиться, а внутриканальный код при импорте разместит локальные данные в адресном пространстве импортирующей задачи и, таким образом, будет являться как полностью интегрированным с импортером, так и изолированным от других импортеров (для случаев, когда конкретная реализация ОС поддерживает изоляцию адресных пространств).
Ниже обсуждаются более сложные случаи мульти-канальных конфигураций.
▍Пулы задач
Предназначение пулов задач – поддержка синхронизационных моделей, традиционно используемых в симметричной многопроцессорности (SMP). Каналы данных, к которым присоединены несколько задач, могут быть как контейнером для разделяемых (обрабатываемых параллельно) данных, так и служить средством синхронизации, то есть, включать в себя счетчик числа задач-пользователей канала и, опционально, их индексов в канале.
Пулы задач могут использовать возможности планировки задач ОС и обеспечивать эффективную синхронизацию параллельных задач – в противоположность наиболее примитивным схемам опроса каналов для синхронизации.
Экспортер канала может взять на себя обязанности распределения работы и, так как количество процессоров и распределяемых задач известно, экспортер может передать управление определенным задачам на определенных ЦПУ. Когда задачи-исполнители завершат обработку данных, они могут вернуть управление распределяющей работу задаче.
▍Пулы запросов
Пулы запросов могут оказаться эффективными в условиях, когда создание отдельного канала для каждого клиента потребовало бы значительных затрат памяти – при разделении больших буферов памяти иили обслуживании большого числа клиентов.
Эти пулы обеспечивают интерфейсы, которые можно назвать арбитражными. Победитель арбитража может поместить запрос (передать данные), а другие инициаторы запросов могут быть переключены в неактивное состояние (прозрачным образом – с использованием внутриканального кода). Когда обслуживание победителя арбитража завершается, победитель извещается об этом, копирует свои выходные данные, и арбитражный процесс возобновляется – из остальных участников арбитража выбирается победитель, пробуждается операцией yield, и процесс полностью повторяется.
▍Маркеры доступа
Маркеры доступа (Access tokens) позволяют реализовать модель разделения данных (иили получения одинакового обслуживания ) между несколькими задачами без установки каналов передачи данных. Вместо этого, единственный провайдер сервисов управляет всеми ресурсами или обеспечивает сервисы всем активным агентам в системе. Каждый агент может запросить у него маркер доступа, который и будет являться ключом к разделяемым данным. Затем агенты могут «поделиться» маркером с другими доверенными агентами (посредством специального канала обмена), в результате чего доверенные агенты смогут получить тот же самый тип обслуживания или доступа к данным.
▍Параллельный доступ к устройствам
Прежде чем говорить о работе с физическими устройствами, заметим, что драйвера в ROS OS – это не особые выделенные сущности, а обычные привилегированные задачи, предоставляющие свои сервисы посредством каналов.
Во многих случаях необходимо обеспечить нескольким задачам одновременный доступ к потокам данных, производимым или потребляемым физическим устройством. На рисунке ниже показаны 2 типичных примера параллельной коммуникации с устройством.
Первый будет эффективным, если ядро ОС различает процессы и потоки. В этом случае специальная задача может обрабатывать все операции с устройством и буферизовать входящиеисходящие потоки данных, в то время как фактическое обслуживание задач-потребителей данных будет производиться потоками, имеющими полный доступ ко внутренним буферам и, соответственно, возможности проверить наличие данных и избежать ненужных задержек. На рисунке данная схема показана слева.
Второй вариант реализации может быть использован в случае пакетной обработки данных. В этом случае обслуживающая задача, непосредственно взаимодействующая с устройством, может выделить необходимые буфера в экспортируемых ей каналах (так как размер пакета известен и ограничен – так же, как и размер буферов). Обе стороны, подключенные к каналам, будут сообщать о готовности данных друг для друга – так, что обслуживающая задача сможет по получении одного запроса безотносительно от того, откуда он получен, обслужить все каналы, таким образом облегчая реализацию параллелизма в системе. Эту схему иллюстрирует правая сторона рисунка.
▍Удаленное использование каналов
В соответствии с дизайном ОC – независимостью работы с компонентами от их расположения, каждый агент в локальной системе может соединиться с каналом, экспортируемым удаленно. Для поддержки этого механизма в систему вводятся так называемые репликаторы каналов, которые помимо поддержки обычной функциональности экспортаимпорта каналов опрашивают свои локальные системы на предмет имеющихся каналов, проверяют наличие сетевых запросов на эти каналы, и, при их наличии, поддерживают пары (наборы) удаленно синхронизированных каналов максимально прозрачным образом для удаленных клиентов этих каналов. Иллюстрация описанному механизму – ниже.
Здесь и на последующих рисунках P-Task означает пользовтельскую задачу.
Отметим, что для эффективной поддержки удаленных репликаторов каналов необходим дополнительный системный вызов
Здесь guid[] – массив индексов каналов, size[]предоставляет размеры каналов, а type[] содержит типытопологию запроса канала (импортированный, экспортированный или мульти).
▍Поддержка со стороны языков программирования
Существующие языки программирования потребуют небольшого расширения для поддержки ROS модели и облегчения разработки для предлагаемой ОС. В случае C++, расширение, затрагивающее семантику языка, это модификатор типа – “channel”, показывающий тип содержимого, которое должно быть объединено в форму, пригодную для межпроцессной коммуникации. Оставшиеся проблемы, связанные с канальной коммуникацией, решаются с использованием функций ROS OS API, как показано ниже.
То есть, сначала требуется объявить тип вашего канала (используя модификатор типа channel), а также выделить стандартным способом области памяти для экспортера и импортера канала. После чего канал, очевидно, должен быть присоединен посредством экспорта с одной стороны и импорта с другой. Для этого используются специальные функции export() и import(), в которые передаются указатели на ваш канал, системный канал и указывается вид канала (мульти или дуальный).
Проверки указателей, приведенные после вызовов этих функций, приведены здесь для сред с разделяемым адресным пространством, где существует вероятность, что ядро ОС передвинет тело канала в памяти с выделенного ранее места.
Каждые агент, подсоединенный к каналу, имеет свой внутриканальный индекс, получаемый функцией self(), который остается неизменным де тех пор, пока агент не отключится от канала (вызовом disconnect()) и не присоединится к нему снова (посредством import() и export()). Остальные связанные с каналами функции в соответствии с дизайном ОС рекомендуется определить так, чтобы они принимали указатель на ваш канал, текущий системный канал, а также указатель на локальное хранилище данных или опциональный параметр.
Ниже приведен прототип функции chanfunc, которая может являться как функцией запуска задачи с семантикой (arg0, sys, arg1), так и функцией инициализации канала (которая выделит локальное хранилище данных и вернет его указатель loc), либо вообще любой служебной внутриканальной функцией
▍Генерация кода
При написании программ для ROS ОС с использованием существующих компиляторов, предназначенных для других ОС, надо соблюдать осторожность. Так, разработчик должен позаботиться о неиспользовании статических переменных и работать только с автоматически (стек) и динамически выделяемыми данными и/или пользоваться возможностями некоторых компиляторов по генерации кода, не зависящего от адреса загрузки. В идеале специальный компилятор для данной ОС должен быть способен обнаружить ссылки на статические данные и сгенерировать вычисление соответствующего адреса в памяти относительно к адресу использующей эти данные функции.
Еще одна проблема, которая не может быть решена традиционными компиляторами (кроме ассемблера) – это поддержание комбинированных каналов кода и данных. Специализированный компилятор данной ОС должен уметь объединять тела канальных функций и данные в единый монолитный объект, который может быть отображен, передвинут и обработан ОС.
Для процессорных архитектур, поддерживающих защиту исполнения данных, агрегация кода и данных должна проходить на базисе раздельных страниц, чтобы не компрометировать безопасность системы.
Выводы
Основа предлагаемой модели ОС – сервисно-ориентированный подход к параллельному исполнению программ реализует новые принципы передачи управления, планировки задач и управления ресурсами, а также новые логические топологии программной коммуникации и синхронизации, которые удовлетворяют потребности современных параллельных и распределенных компьютерных систем, включая как мощные сервера, так и сети беспроводных сенсоров.
При этом, система продумана с точки зрения связывания вместе железных и программных компонентов компьютерной системы, и максимально проста в реализации.
Многие из описанных принципов дизайна ОС были первоначально воплощены ее автором еще в прошлом веке (1999 году) как часть легковесной ОС, служившей предсказуемой и полностью контролируемой средой тестирования для исполняемых файлов Windows NT. И, конечно же, с тех пор многое было добавлено и улучшено.
Как видите, создать свою ОС на базе описанных принципов возможно. Было бы желание. Если оно у вас есть, то автор идеи, несомненно заинтересованный в ее реализации, с удовольствием вам поможет – проконсультирует и поддержит.
Источник
Как создать свою эталонную сборку Windows 10 – дистрибутив с проведенными настройками системы, внедренными твиками и установленным десктопным ПО? Этот процесс в деталях будет рассмотрен ниже, но прежде поговорим об особенностях собственных сборок системы.
1. Плюсы и минусы собственных сборок Windows
Какие плюсы у собственных сборок Windows? Своя сборка системы — это экономия времени и усилий при установке системы. Например, можно подготовить дистрибутив Windows 10 со стандартным набором программ для круга близких: браузер, архиватор, торрент-качалка, чистильщик, деинсталлятор и подобного рода софт для широкой аудитории будет устанавливаться вместе с системой. Выгоды по сравнению с обычным дистрибутивом Windows очевидны, а что получим в противовес прочим способам развертывания системы? Своя сборка Windows, эталонный образ которой создавался на GPT-диске, в дальнейшем может быть развернута на MBR-диске и наоборот. Тогда как перенос системы с помощью программ-бэкаперов или менеджеров дискового пространства не поможет при смене стиля разделов диска. В отличие от последних, собственная сборка на установочном носителе не будет привязана к файлу резервной копии на несистемном разделе диска или съемном устройстве, как и не нужно будет подключать жесткий диск назначения для клонирования Windows.
У собственных сборок Windows три минуса. Первый – дистрибутив своей сборки будет занимать больше места, чем чистый дистрибутив Microsoft. Но эта проблема решается использованием флешки с объемом как минимум 8 Гб. Второй минус – процесс установки Windows продлится немного дольше, чем обычно, что связано с развертыванием добавленного софта. Третий минус – это волокита с созданием сборки. Затраченные усилия вряд ли будут оправданы, если система переустанавливается редко.
2. Алгоритм действий
Процесс создания своей сборки Windows 10 будет проходить в несколько основных этапов:
- Создание эталонного образа системы – подготовленного к развертыванию идеального состояния системы (с проведенными настройками и внедренным ПО, без привязки к комплектующим компьютера);
- Захват эталонного образа в файл install.esd;
- Перепаковка оригинального установочного ISO-образа системы с подменой файла install.esd.
3. Эталонный образ Windows 10
Эталонный образ Windows 10 можно подготовить разными способами, это может быть:
- Наработанная система с удаленной привязкой к комплектующим при помощи утилиты Sysprep (см. п. 7 статьи);
- Новая Windows 10, установленная на другом разделе диска;
- Новая Windows 10 на борту виртуальной машины.
Наработанную систему необходимо тщательно почистить – удалить файлы в папках пользовательского профиля, почистить папки «Temp» и т.п. Иначе дистрибутив получится гигантских размеров. С новыми системами проще: во-первых, дистрибутив на их базе будет занимать меньше места, во-вторых, в процессе их установки эталонный образ Windows 10 можно создать с нуля в режиме аудита — специальном режиме работы системы без участия пользовательской учетной записи. Режим аудита предусмотрен компанией Microsoft для внедрения корпоративных настроек и софта OEM-поставщиками и крупными организациями перед поставкой компьютеров, соответственно, покупателям и наемному персоналу. На выходе получим нужным образом настроенною систему с установленным десктопным ПО, на этапе установки которой можно формировать новые учетные записи, задавать региональные параметры, отключать опции отправки данных компании Microsoft и т.п. При этом нигде не будет болтаться старая учетная запись.
В нашем случае эталонный образ Windows 10 создадим с нуля в режиме аудита при помощи Hyper-V. Этот гипервизор был выбран из-за удобства в работе и простоты переноса больших объемов данных с виртуальной машины в основную систему. Диски VHDX и VHD, используемые в работе виртуальных машин Hyper-V, монтируются в основную систему средствами проводника. Сторонники других гипервизоров — VMware Workstation и VirtualBox – могут использовать их. Чтобы упростить доступ к данным виртуального диска с основной системы и не возиться с дополнениями гостевых ОС, виртуальные машины можно создать на базе VHD-дисков. И VMware Workstation, и VirtualBox работают с дисками VHD.
Принявшим решение формировать эталонный образ Windows 10 на втором разделе диска реального компьютера на будущее в помощь инструкции по редактированию меню загрузки нескольких систем и полному удалению ненужной системы.
4. Нюансы с активацией
Понятие собственной сборки Windows необходимо отличать от пиратских сборок системы, поставляемых активированными или с активатором на рабочем столе. Цель этой статьи – упростить процесс установки Windows, но не решать вопрос с ее активацией. Эталонный образ Windows 10 будет создан с использованием средств, не противоречащих политике Microsoft — собственно, ее же инструментов. А их использование не гарантирует работоспособность активированных сборок системы. Напомним, требования Microsoft таковы: активация каждой копии Windows, с какого бы дистрибутива она ни устанавливалась, на каждом отдельном компьютере. Если в качестве эталонного образа выступает активированная наработанная Windows, в процессе удаления привязки к комплектующим с помощью утилиты Sysprep необходимо сбросить активацию (см. п. 7 статьи).
Ищущим способ переноса активированной Windows на другие компьютеры сюда.
5. Создание виртуальной машины Hyper-V
Итак, для подготовки эталонного образа Windows 10 создаем виртуальную машину. Условия работы с Hyper-V, активация гипервизора, а также процесс создания виртуальной машины в деталях описываются в статье сайта «Hyper-V в составе Windows 10». Только, в отличие от рассмотренного в п. 5 этой статьи примера, выбор поколения виртуальных машин не принципиален, можно создать и машину 1 поколения. Если не планируется внедрение ресурсоемкого софта типа игр, можем ограничиться объемом создаваемого жесткого диска VHDX в 50-60 Гб. Ну и избитый совет для владельцев SSD – путь хранения файлов виртуальной машины и VHDX-диска нужно указывать на разделе HDD. На последнем этапе создания виртуальной машины указываем ISO-образ со свежим дистрибутивом Windows 10, включаем машину и запускаем процесс установки системы. Последний будет отличаться от того, как это происходит обычно.
6. Установка и настройка Windows 10 в режиме аудита
Проходим процесс установки Windows 10 до этапа выбора типа установки и выбираем второй вариант.
Нам понадобится два раздела – один для Windows, другой несистемный, куда впоследствии будет сохранен файл install.esd. Формируем раздел С из 30-40 Гб.
Оставшееся место отдаем другому разделу.
Устанавливаем Windows.
По завершении этапа копирования файлов установочный ISO-образ не извлекаем из виртуальной машины, он нам еще понадобится. На этапе установки, где необходимо задать первые настройки, ничего не трогаем, просто жмем клавиши Ctrl+Shift+F3.
Войдем в режим аудита с подключением скрытой учетной записи администратора.
На входе в систему в режиме аудита нас встречает окно утилиты Sysprep. Утилита будет дожидаться своей участи, чтобы провести удаление привязки настроенной системы от комплектующих. Можно приступать к настройке системы. Один нюанс: в режиме аудита не работает Microsoft Edge, для доступа к Интернету нужно запустить Internet Explorer.
Что касается пределов вмешательства в систему, в режиме аудита можем работать со всем, что не относится к пользовательским учетным записям. Можем устанавливать десктопное ПО, менять системные настройки, применять твики, оставлять папки или файлы на рабочем столе. А вот универсальные приложения из Windows Store установить не получится. Как и Microsoft Edge, магазин не работает в режиме аудита. Не получится даже при условии активации системы сменить тему оформления или прочие параметры персонализации. Для установки универсальных приложений и применения настроек персонализации нужна пользовательская учетная запись, а не скрытая администратора.
Если понадобится перезагрузить систему, например, это требуется для доустановки каких-то программ, этот процесс нужно провести с помощью окна Sysprep: необходимо выставить значения «Переход в режим аудита» и «Перезагрузка». Затем нажать «Ок».
Параллельно с настройкой системы необходимо сделать важную вещь – отформатировать несистемный раздел диска.
7. Удаление привязки к комплектующим (Sysprep)
Итак, эталонный образ системы готов. Теперь можем приступать к процессу удаления привязки к комплектующим. Обращаемся к окну открытой утилиты Sysprep или запускаем ее нажатием клавиш Win+R и вводом:
sysprep
В открывшейся папке будет содержаться EXE-файл запуска утилиты.
В окне Sysprep выставляем действие «Переход в окно приветствия (OOBE)». Ставим галочку «Подготовка к использованию» для сброса активации. В параметрах завершения работы указываем «Завершение работы». И жмем «Ок».
Дожидаемся окончания работы Sysprep и выключения виртуальной машины.
8. Создание файла install.esd
Проверяем, стоит ли запуск виртуальной машины с ISO-образа установки Windows 10, и загружаемся с него. Установочный диск используем для доступа к командной строке. Если эталонный образ Windows 10 создавался на втором разделе диска реального компьютера, просто заходим в основную операционную систему и открываем там командную строку.
На первом этапе установки системы жмем клавиши Shift+F10.
С помощью утилиты DISM осуществим захват эталонного образа системы и сохраним его в файл install.esd. Но прежде посмотрим, под какими буквами значатся два нужных раздела – системный и раздел назначения, куда будет сохранен install.esd. Вводим:
diskpart
lis vol
exit
В нашем случае диск системы значится как D, а несистемный – как E. Потому команда захвата образа системы будет такой:
dism /capture-image /imagefile:E:install.esd /capturedir:D: /name:windows
В этой команде, соответственно, в каждом отдельном случае необходимо заменить буквы E и D на свои.
По завершении операции выключаем виртуальную машину. Она нам больше не понадобится.
9. Монтирование диска виртуальной машины в основной системе
Чтобы диск виртуальной машины отображался в основной системе, где будут происходить дальнейшие действия, открываем в проводнике файл диска этой машины VHDX (или VHD). В контекстном меню жмем «Подключить».
Все разделы виртуального диска отобразятся в проводнике как отдельные диски. В нашем случае выбираем последний диск M, именно там хранится файл install.esd. После перепаковки ISO-образа виртуальный диск нужно будет размонтировать, это делается с помощью опции «Извлечь» в контекстном меню любого из добавленных разделов виртуального диска.
Новоиспеченным файлом install.esd заменим оригинал в составе официального дистрибутива Windows 10.
10. Перепаковка ISO-образа дистрибутива Windows 10
Заменять одни файлы на другие в составе загрузочного ISO-образа могут многие программы, в нашем случае для перепаковки выбрана программа UltraISO. Запускаем ее. Жмем меню «Файл», затем – «Открыть» и в проводнике указываем путь к ISO-образу, с которого осуществлялась установка Windows 10 на виртуальную машину.
Содержимое ISO-образа отобразится в верхней части окна UltraISO. Здесь открываем папку «sources» и удаляем в ней исходный файл install.esd. В нашем случае он весил 3,7 Гб. Нижняя часть окна UltraISO – это системный проводник, здесь открываем подмонтированный раздел диска (или нужный раздел реального диска), на котором хранится новоиспеченный файл install.esd. В нашем случае он весит 4,09 Гб. Новоиспеченный файл либо перетаскиваем в верхнюю часть окна — туда, где был файл исходный, либо добавляем с помощью контекстного меню.
Проверяем: в папке «sources» образа диска должен находится не исходный install.esd с весом в 3,7 Гб, а новоиспеченный install.esd с весом в 4,09 Гб.
Перепаковываем образ: жмем меню «Файл», далее «Сохранить как» и сохраняем образ диска с отличным от исходника именем.
Дожидаемся завершения прогресса операции.
***
Теперь осталось только протестировать свою сборку Windows 10 на новой виртуальной машине.
Отличного Вам дня!
Содержание
- 1 Создание собственного настроенного дистрибутива Windows 10. Способ для опытных пользователей
- 2 Управление дисками ноутбука с установленной Windows 10.
- 3 Создание загрузочной флешки Live CD AOMEI PE Builder
- 4 Перезагрузка
- 5 WinToolkit 1.5
- 6 Процесс установки Windows 10
- 7 Вывод:
Информация к новости
- Просмотров: 119 684
- Автор: admin
- Дата: 27-01-2016
27-01-2016
Категория: Windows 10 / Сборки и дистрибутивы Windows
Привет, друзья. Сегодняшняя статья это продолжение статьи: — «Создание собственного настроенного дистрибутива Windows 10. Простой способ для начинающих пользователей». Отличие сегодняшней статьи от предыдущей в том, что использовать мы будем только встроенные в операционную систему средства, а точнее — командную строку и Комплект средств для развертывания Windows (Windows ADK).
Создание собственного настроенного дистрибутива Windows 10. Способ для опытных пользователей
Авторы — Владимир и АдминНе буду ещё раз разглагольствовать Вам о том, для чего нужен собственный настроенный дистрибутив Windows 10, думаю это всем и так понятно, скажу лишь коротко. Вы устанавливаете Windows 10 на ноутбук, простой компьютер или даже виртуальную машину, потом устанавливаете весь необходимый софт вместе с антивирусом и после всего этого создаёте дистрибутив операционной системы, по вашему мнению отвечающий всем требованиям современного времени.Установить Windows 10 с помощью такого настроенного дистрибутива можно на любой компьютер, после установки система будет уже настроена, а все программы установлены и вам останется инсталлировать только лишь драйвера.
- Примечание: Если статья покажется вам слишком сложной, то прочтите нашу статью «Создание собственного настроенного дистрибутива Windows 10. Простой способ для начинающих пользователей»
Итак, для осуществления задуманного нам понадобится два компьютера или один компьютер, но с установленной на нём виртуальной машиной. Если у вас один компьютер, то вариант с виртуальной машиной описан в конце статьи.Я обойдусь без виртуальной машины, так как у меня есть ноутбук и обычный стационарный компьютер. Начну с установки на ноутбук операционной системы Windows 10 со всеми драйверами и необходимыми мне программами, а также антивирусом. После установки на ноутбук Windows 10 с необходимым софтом, скачиваем на официальном сайте Майкрософт дистрибутив Windows 10 и создаём загрузочную флешку.
После создания загрузочной флешки с Win 10, запускаем встроенную в систему утилиту «sysprep», разработанную специально для подготовки настроенного образа Windows вместе с установленными программами к переносу на другой компьютер. Запускаем командную строку от имени администратора и вводим команду:
C:WindowsSystem32SysprepSysprep.exe
Запускается утилита «sysprep»В появившемся окне с параметрами выставляем всё так, как на скришнотеПеревод системы в режим (OOBE).Отмечаем пункт — Подготовка к использованию.Завершение работыи нажимаем ОК.
1. Перевод системы в режим OOBE — режим переноса операционной системы активируется при следующем запуске системы.2. Подготовка к использованию — из системы будут удалены все данные, которые не должны копироваться вместе с образом (идентификаторы безопасности (SID), сведения об активации и так далее), но установленное программное обеспечение должно перенестись без проблем.Windows 10 подготавливается утилитой «sysprep» несколько минут.
Затем ноутбук выключается.Создание файла-образа Windows 10 в формате ESD Подсоединяем к ноутбукупереносной жёсткий диск USB и загрузочную флешку с Windows 10.Загружаем с флешки ноутбук. В начальном окне установки Windows 10 жмём клавиатурное сочетание «Shift+F10»,
открывается командная строка, ввожу команды:diskpartlis vol (данной командой выводим список разделов жёсткого диска, видим, что разделу с установленной Windows 10 присвоена буква диска C:, а переносному жёсткому диску буква I:)exit (выходим из DiskPart)вводим следующую команду, которая произведёт захват диска (C:) с установленной Windows 10 в файл-образ формата ESD и сохранит его на переносном винчестере USB (буква диска (I:).Dism /Capture-Image /ImageFile:I:install.esd /CaptureDir:C: /Name:Windowsгде,install.esd: — это название будущего ESD-образа диска (C:) с Windows 10.I: — место сохранения ESD-образа.C: — раздел с установленной Windows 10.сжатие fast (параметр fast обеспечивает ускоренное сжатие образа, но получаемые файлы имеют больший размер, чем файлы, сжимаемые с параметром maximum, тип сжатия fastдействует по умолчанию, если не указан аргумент сжатия (у нас он не указан)).Прогресс операции 100%. Образ Windows 10 создан на разделе (I:). Сохранение образа[==========================100.0%==========================]Операция успешно завершена.
Выключаю ноутбук.
Compress:recovery
Включаю стационарный компьютер, подсоединяю к нему жёсткий диск USB.
На разделе (I:) переносного жёсткого диска USB находится файл-образ Windows 10 — install.esd размером 4,80 Гб.
Ещё больше сжимаю файл-образ Windows 10 — install.esd командой (делать это необязательно, просто я хочу дополнительно уменьшить образ Win 10)
Dism /Export-Image /SourceImageFile:I:install.esd /SourceIndex:1 /DestinationImageFile:I:install2.esd /Compress:recovery
то есть, этой командой мы создаём ещё один файл этого образа с именем файла install2.esd и сжатием recovery. Или умными словами — конвертируем файл install.esd в новый файл install2.esd, применив новый тип сжатия Compress:recovery (сжатие архива обычно называют конвертированием).
На разделе (I:) переносного жёсткого диска USB появляется второй файл-образ Windows 10 — install2.esd размером 3,5 Гб. Первый файл install.esd 4,80 Гб удаляем, а второй файл install2.esd 3,5 Гб переименовываем в install.esd.
Итого, на переносном винчестере USB (диск I:) находится один файл install.esd размером 3,5 Гб.
ISO-образ Windows 10
Скачиваем ISO-образ Windows 10.
Затем создаём папку на разделе (I:) переносного жёсткого диска USB и называем её 10, затем копируем в неё содержимое ISO-образа Windows 10.
После того, как файлы копировались, заходим на диск (I:) и копируем файл install.esd.
Заходим в папку I:10sources, щёлкаем правой мышью и выбираем Вставить.
Выбираем Заменить файл в папке назначения.
Оригинальный файл install.esd из дистрибутива Windows 10 заменён нашим файлом install.esd.
Комплект средств для развертывания Windows (Windows ADK)
Друзья, теперь нам осталось превратить папку 10 с файлами Windows 10 в установочный ISO-дистрибутив.
Если Вы опытный пользователь, то наверняка на вашем компьютере установлен Комплект средств для развертывания Windows (Windows ADK), если нет, то скачайте его по ссылке и установите
https://www.microsoft.com/ru-ru/download/details.aspx?id=39982
После установки запускаем среду средств развёртывания и работы с образами.
вводим команду:
Oscdimg /u2 /m /bootdаta:2#p0,e,bI:10bootEtfsboot.com#pef,e,bI:10efimicrosoftbootEfisys.bin I:10 I:Windows.iso
где:
u2, это файловая система UDF, а m — размер образа без ограничений.
b — загрузочный сектор записать etfsboot.com, путь к файлу etfsboot.com при указании b(boot) пишется без пробела bI:10bootetfsboot.com
bI: — где I: — буква диска.
I:10 — создать ISO-образ из файлов и папок, находящихся на разделе I: в папке 10
I:Windows.iso — созданный образ разместить на разделе I:
присвоить имя образу — Windows.
Дистрибутив Windows.iso на диске I: готов.
Создание загрузочной флешки
Предлагаю создать загрузочную флешку Windows 10 программой WinSetupFromUSB, с помощью неё можно создать универсальную флешку, с помощью которой получится установить Windows 10 на новый ноутбук с БИОСом UEFI, а также на простой компьютер с обычным БИОС. Подробно на этом останавливаться мне бы не хотелось, всё очень хорошо описано в этой статье.
Установка Windows 10Процесс установки собственного дистрибутива Windows 10 ничем не отличается от обычного процесса установки описанного в этой статье. Установить такую сборку вы можете на любой компьютер.Когда Windows 10 установится, Вам останется только установить драйвера, так как программы будут уже установлены, а система настроена.
Вместо заключения:
Если у вас всего один компьютер, то вы можете поступить так.
Устанавливаете в операционную систему виртуальную машину, затем инсталлируете в неё Windows 10 со всеми программами, подключаете второй виртуальный диск и используете его для сохранения файла-образа Win 10.
Потом просто подключаете виртуальный диск к «хостовой» операционной системе и копируете из него файл-образ Win 10.
Статьи по этой теме:
1. Создание дистрибутива Windows 10 с предустановленным программным обеспечением с помощью режима аудита
2. Как создать дистрибутив Windows 10 с интегрированными обновлениями операционной системы
3. Как создать свою сборку Windows с помощью программы NTLite
4. Создание своей сборки Windows с помощью Live-диска by Sergei Strelec. Установка Windows с Live-диска Стрельца
ВернутьсяКомментариев: 117 Дорогой посетитель, Вы можете задать на сайте любой вопрос и обязательно получите ответ!
Создание собственного настроенного дистрибутива Windows 10. Или идеальный способ переноса Windows на твердотельный накопитель SSD.
Управление дисками ноутбука с установленной Windows 10.
Создание загрузочной флешки Live CD AOMEI PE Builder
В первую очередь создадим загрузочную флешку Live CD AOMEI PE Builder. Данный Live CD создан на основе Windows 8.1 Enterprise.
Скачиваем Live CD AOMEI PE Builder и создаём из него загрузочную флешку {gcontent}скачать Live CD AOMEI PE Builder{/gcontent}
Скачиваем и запускаем утилиту WinSetupFromUSB-1-6, именно она создаст нам загрузочную флешку.
В главном окне WinSetupFromUSB выбираем название нашей флешки.
Ставим галочку на пункте Auto format it with FBinst и отмечаем галочкой пункт FAT32,
Отмечаем галочкой пункт Vista/7/8/Server 2008/2012 based ISO и нажимаем на кнопку, открывающую окно проводника.
Открывается проводник, находим на компьютере ISO образ Live CD AOMEI PE Builder и выделяем его левой мышью, жмём «Открыть».
Жмём «GO».
«Да»
«Да»
«ОК»
Начинается создание загрузочной флешки Live CD AOMEI PE Builder.
Загрузочная флешка готова.
«ОК»
Загружаем ноутбук с загрузочной флешки Live CD AOMEI PE Builder. Наша флешка универсальная, с неё можно загрузить ноутбук с интерфейсом UEFI, а также с обычным БИОС.
Жмём «Enter» на клавиатуре.
Загружается рабочий стол Live CD AOMEI PE Builder, представляющий из себя обычный Live CD на базе Windows 8.1.
Жмём на кнопку Windows Disk Management (Управление дисками).
Видим два раздела жёсткого диска (C:) и (D:). Windows 10 находится на диске (C:), создадим её полный образ и сохраним на разделе (D:).
Для создания резервного образа Windows 10 воспользуемся системой обслуживания и развертывания образов операционных систем — DISM. Данный инструмент командной строки разработан Майкрософт специально для создания и последующего развёртывания образов операционных систем Windows.
Запускаем командную строку.
и вводим команду:
Dism /Capture-Image /ImageFile:D:install.wim /CaptureDir:C: /Name:Windows
где,
install.wim: — это название WIM-образа диска (C:) с Windows 10.
C: — раздел с установленной Windows 10.
D: — место сохранения WIM-образа.
Прогресс операции 100%. Образ системы создан.
Образ Windows 10 находится в файле install.wim на диске (D:) и имеет объём 4,80 Гб.
Перезагрузка
Перезагружаем компьютер и входим в Windows 10.
Скачиваем на официальном сайте Майкрософт дистрибутив Windows 10 и сохраняем его на разделе (D:).
Создаём на разделе (D:) папку и называем её 10.
Копируем в эту папку все файлы дистрибутива Windows 10
После того, как файлы копировались, заходим в папку D:10sources и удаляем в ней файл install.esd.
Копируем вместо него файл install.wim, находящийся на разделе (D:)
Файл install.wim скопирован и находится в папке D:10sources
Примечание: Внимательный пользователь может спросить, почему мы удаляем файл install.esd и копируем вместо него файл install.wim, ведь файлы разные, не будет ли какого конфликта?
Друзья, дело в том, что начиная с Windows 8.1 (DISM 6.3) для установщика Windows и DISM расширение esd иwim, это одно и тоже, esd=wim и wim=esd.
WinToolkit 1.5
Скачиваем и запускаем программу WinToolkit 1.5.
Если на вашем компьютере не установлен NET Framework 3.5, то программа попросит его установить.
В главном окне программы жмём на кнопку Basic, а затем на ISO Maker.
В следующем окне программа просит нас открыть папку, в которую мы скопировали файлы дистрибутива Windows 10, в нашем случае D:10
Жмём на Browse.
Находим в открывшемся проводнике диск (D:) и на нём папку 10, выделяем её левой мышью и жмём Выбор папки.
В следующем окне нам нужно выбрать место сохранения будущего ISO-образа Windows 10.
Жмём на Browse.
Открывается окно проводника. Я сохраню ISO-образ Windows 10 на диске (D:). Образ так и назову Windows 10.
Сохранить.
Жмём на кнопку Create ISO
и начинается процесс создания собственного настроенного дистрибутива Windows 10.
ISO-образ готов.
«ОК»
ISO-образ Windows 10 получился размером 5 Гб.
Процесс установки Windows 10
Процесс установки Windows 10 с подготовленного нами дистрибутива можно назвать экспресс-установкой.
Загружаем с флешки наш компьютер, выходит меню загрузки, в котором можно выбрать Live CD AOMEI PE Builder или Windows 10, выбираем Windows 10.
Далее.
Установка.
Если у вас отсутствует лицензионный ключ, то жмите на кнопку «У меня нет ключа продукта».
Принимаем условия лицензии.
Выборочная: только установка Windows.
Если хотите, создайте разделы на жёстком диске, а я установлю операционную систему на нераспределённое пространство твердотельного накопителя.
Идёт процесс установки.
Загружается Windows 10.
Система вполне работоспособна, все программы работают.
Вывод:
Если устанавливать с такого дистрибутива Win 10 на свой компьютер, то никаких проблем с установкой и дальнейшей работой в операционной системе быть не должно. Также можно установить такую сборку и на другой компьютер, с отличным от вашего компьютера железом, в этом случае придётся устанавливать в систему драйвера на устройства, то есть делать всё то, что обычно делают после установки системы, единственное, вам будет не нужно устанавливать программы, так как они уже есть в вашей сборке.
Источник: remontcompa.ru
« » —>
Не секрет и то, что именно такие легкие сборки доставляют пользователям больше всего проблем.
Изначально в Windows закладывается больше возможностей, чем это может понадобиться среднему пользователю, система, если можно так сказать, дается на вырост. И вот, если некий юзер захочет к своей системе что-то прикрутить, ранее неиспользуемые им компоненты окажутся даже очень кстати. А теперь представьте, что у этого самого юзера установлена облегченная сборка. Интересно знать, кого помянет он недобрым словом, создателя этой сборки или самого себя, такого недальновидного, умудрившегося повестись на обещанную легкость и производительность Lite-системы.
Так как же быть, может быть пользоваться только официальными сборками? Необязательно, особенно если у вас маломощный компьютер, просто иногда лучше сделать всё самому, то есть собрать образ Windows самостоятельно с учетом ваших нужд. Как это сделать, как раз будет изложено в этой статье. Создавать сборку мы предлагаем с помощью программы NTLite. Она платная, цена домашней версии составляет 40 долларов, кто не хочет платить, могут поискать в интернете пусть и не самые новые, но «вылеченные» и вполне рабочие версии.
Что такое NTLite
Программа NTLite — это мощный инструмент для создания модифицированных сборок Windows. С ее помощью вы можете удалить с дистрибутива системы всё то, что вам покажется лишним либо же напротив, добавить в него то, чего в нём не было изначально. NTLite позволяет удалять из образов системные компоненты, отключать службы, задавать настройки, интегрировать сторонний софт, твики реестра, драйвера и обновления.
Требует ли NTLite от сборщика каких-то знаний? Да. Необходимо по меньшей мере знать, каким целям служат те или иные компоненты, иначе можно на выходе получить глючную систему. Но это, если вы собрались облегчать сборку. Интеграция сторонних компонентов намного менее рискованна.
Создание собственной сборки Windows
Конструирование сборки проходит в три этапа. На первом производится распаковка образа Windows, на втором — его настройка в программе NTLite, на третьем этапе выполняется упаковка файлов в установочный образ. Первым делом распакуем архиватором установочный ISO-образ с Windows в отдельную папку. Пусть он называется data.
Запускаем NTLite, жмем кнопку «Добавить» и указываем путь к папке с распакованным ранее образом ISO. При этом в окне программы вы увидите структуру образа, в котором, кстати, могут быть несколько редакций. Мы будем работать с редакцией Windows 10 Pro. Кликаем по ней ПКМ и выбираем опцию «Загрузить». Если программа попросит подтвердить преобразование образа WIM в ESD, подтверждаем операцию. Процедура преобразования (загрузки)WIM или ESD образа займет некоторое время. По завершении процедуры в левой части окна программы вы увидите панель с несколькими вкладками. Пробежимся по ним по-быстрому.
Удаление и отключение компонентов и служб
В разделе «Компоненты» содержатся модули Windows, которые можно отключить, сняв с них галочки. Сюда входят предустановленные универсальные приложения вкупе с Защитником, компоненты аппаратной поддержки некоторых периферийных устройств и их драйвера, модули мультимедиа — темы, звуки, обои и прочее, сетевые службы и приложения, например, менеджер платежей NFC, системные компоненты — Hyper-V, подсистема Linux, редактор символов, теневое копирование и многое другое. Некоторые компоненты заблокированы по совместимости, это означает, что их нельзя удалить, но можно отключить в разделе «Функции». При удалении компонентов необходимо проявлять осторожность, внимательно знакомиться с описаниями, благо, они даются на русском языке.
В разделе «Функции» отключаются недоступные для удаления компоненты, например, NET Framework. Среди доступных для отключения модулей — офисные игры, гаджеты, клиент рабочих папок, индексация и поиск, подсистема Linux, WMC, службы IIS, PowerShell 2.0, PDF-принтер и Internet Explorer, отключать который, кстати, не рекомендуется, поскольку это может привести к неправильной работе других программ.
Раздел «Настройки» отвечает за включение/отключение различных настроек, действующих для всех пользователей системы, раздел «Службы» — за включение/отключение системных служб. Здесь, как и в «Компонентах» нужно быть внимательным, чтобы не отключить важную службу, без которой Windows даже не сможет запуститься. Особенно это касается служб во вкладке «Дополнительные службы».
Интеграция обновлений, драйверов и твиков реестра
Следующие три вкладки содержат инструменты для интеграции в дистрибутив обновлений, драйверов и твиков реестра. Если нужно добавить, скажем, новое обновление безопасности или языковой пакет, жмем кнопку «Добавить» и указываем путь к файлу CAB, MSU или EXE. В этом же разделе отображаются уже установленные пакеты. С драйверами всё аналогично, только драйвер должен быть распакован, поскольку NTLite понадобится его конфигурационный inf-файл. Точно так же в систему интегрируются твики реестра: жмем кнопку «Добавить» и указываем путь к файлам REG.
Персональные настройки и установка сторонних программ
Если сборка создается для себя, не будет лишним заглянуть в раздел «Автоматическая». Здесь задаются персональные настройки пользователя: имя компьютера, локализация, часовой пояс, сетевые настройки, опции оболочки, сжатие, параметры лицензирования (установка ключа и т.д.), выполняется настройка WinPE.
Если вы хотите интегрировать в образ стороннее программное обеспечение, сделать это можно будет в разделе «После установки» с помощью функции Post-Install. В этом также нет ничего сложного просто жмем уже знакомую кнопку «Добавить» и указываем путь к исполняемым файлам приложений. Процедура их установки будет поочередно запущена на раннем этапе установки сборки Windows. Дополнительно поддерживается установка с параметрами, — в поле «Параметры» прописываются нужные ключи, например, для тихой установки.
Сохранение настроек и упаковка сборки в образ
По большому счету это всё, осталось только применить заданные настройки и упаковать файлы модифицированной сборки в установочный образ. Переключаемся на вкладку «Применить» и определяемся с параметрами образа. При создании сборки Windows 7 всё можно оставить по умолчанию, если это будет сборка Windows 8.1 или 10, необходимо выбрать формат образа «Высокое сжатие», при котором WIM-образ преобразуется в ESD. После этого отмечаем галочкой чекбокс «Создать ISO».
Почти всё готово, можно приступать к упаковке. Присвоив сборке подходящее имя, жмём кнопку «Обработка». Если в вашей системе включен Защитник, NTLite попросит его отключить, так дело пойдет быстрее. Время создания сборки будет зависеть от количества заданных операций, причем большую часть времени займет конвертирование WIM в ESD(в Windows 8.1 и 10), в среднем вся процедура занимает от 40 минут до часа или более. По завершении вы получите готовый установочный образ, который можно записать на флешку или оптический диск.
Спешить устанавливать полученную сборку на свой компьютер, а тем более выкладывать ее на торрент или другой ресурс, однако, не стоит. Сначала нужно убедиться, что сборка рабочая, для чего необходимо протестировать ее на виртуальной машине. Впрочем, можно обойтись и без виртуальной машины. Если у вас есть свободный компьютер, с помощью NTLite вы можете модифицировать установленную на него Windows, выбрав в главном окне «Живая установка» и проделав всё то же самое, о чём было сказано выше. Правда, сохранить в отдельный образ ISO или ESD«живую» систему не получится, зато тестировать ее можно будет тут же на физической машине, выявляя наиболее подходящие варианты модификации.
Официальный сайт разработчика: www.ntlite.com
Используемые источники:
- https://remontcompa.ru/windows/windows-10/978-sozdanie-sobstvennogo-nastroennogo-distributiva-windows-10-sposob-dlya-opytnyh-polzovateley.html
- https://servis2010.ru/windows-10/3703-sozdajom-sobstvennyj-nastroennyj-distributiv-windows-10.html
- https://www.white-windows.ru/kak-s-pomoshhyu-programmy-ntlite-sozdat-sobstvennuyu-sborku-windows/
Этот материал написан посетителем сайта, и за него начислено вознаграждение.
Совсем недавно тут была статья от товарища Nike3G, повествующая об ужасах кастомных сборок Windows. Я полностью согласен с тем, что ставить неизвестно чью сборку на свой ПК – это плохая идея. Но и с выводами автора статьи я не согласен, что надо устанавливать чистую сборку. Есть вариант поинтереснее.
Сегодня я расскажу, как сделать свою сборку Windows 11. Может возникнуть вопрос – а зачем вообще делать сборку, не лучше ли установить оригинальный образ или взять чужую сборку. У этих двух вариантов есть недостатки. Если вы ставите голую оригинальную Windows, то там все придется настраивать, устанавливать все обновления, ваши любимые программы, настраивать интерфейс. Если вы установите свою сборку, то сразу после установки вы получите настроенную под себя систему и сможете приступить к работе. Установка своей сборки будет занимать значительно меньше времени, и, кроме того, сразу после установки можно работать в системе, а не заниматься долгой и нудной установкой и настройкой программ.
Почему лучше сделать сборку самому, а не скачать уже готовую. Чужие сборки таят много опасностей. Вы не можете быть уверены, как именно была изменена сборка, какие программы и процессы были внедрены, а какие были удалены. Возможно, в такой сборке встроен троян, или шпион, или майнер, который будет добывать криптовалюту на вашем компьютере. А может так случиться, что горе-сборщик удалил какие-то важные компоненты и службы, и у вас такая сборка в один прекрасный момент откажется работать. Кроме того, не факт, что вам понравится то, как настроил систему сборщик, и вам все равно придется перенастраивать интерфейс под себя.
рекомендации
3070 Gigabyte Gaming за 50 тр с началом
Выбираем игровой ноут: на что смотреть, на чем сэкономить
3070 Gainward Phantom дешевле 50 тр
13700K дешевле 40 тр в Регарде
Ищем PHP-программиста для апгрейда конфы
3070 дешевле 50 тр в Ситилинке
MSI 3050 за 25 тр в Ситилинке
3060 Gigabyte Gaming за 30 тр с началом
13600K дешевле 30 тр в Регарде
4080 почти за 100тр — дешевле чем по курсу 60
12900K за 40тр с началом в Ситилинке
RTX 4090 за 140 тр в Регарде
Компьютеры от 10 тр в Ситилинке
3060 Ti Gigabyte за 42 тр в Регарде
Описанный мной метод не уникальный и не единственный, но один из многих вариантов. Главное то, что я покажу неподготовленному читателю, что это в принципе возможно – сделать свою сборку, было бы желание.
Скачать оригинальный образ нужно на официальном сайте — https://www.microsoft.com/ru-ru/software-download/windows11
Выбираете нужный язык и скачиваете. Далее нам понадобится виртуальная машина, в которой мы будем все устанавливать и настраивать. Я советую использовать бесплатную VirtualBox. Скачивайте ее с официального сайта — https://www.virtualbox.org/wiki/Downloads. Там же можно скачать пакет расширений, но он нам не понадобится при создании собственной сборки.
Устанавливаете VirtualBox, создаете виртуальный компьютер. Выделяете виртуальной машине ресурсов исходя из мощности вашего реального компьютера, на котором установлена виртуальная машина. Не менее 2 ядер процессора, не менее 4 гигабайт оперативной памяти, не менее 50 гигабайт для виртуального системного диска.
Заходите в настройки машины, и в виртуальный привод вставляете скачанный iso образ.
Запускаете виртуальную машину и устанавливаете операционную систему. Если у вас старый ПК, то вы получите сообщение об ошибке.
Кстати, еще одно преимущество нашего образа, который мы сейчас создаем – он не будет никогда выдавать такую ошибку и будет устанавливаться на любой компьютер.
Что делать? Возвращаетесь на начальный экран установки, нажимаете кнопки Shift+F10, появится командная строка. В ней пишете regedit.
Идете в раздел «HKEY_LOCAL_MACHINESYSTEMSetup» и создаете там новый раздел «LabConfig»
В этом разделе надо создать три параметра типа DWORD (32 бита) с названиями: BypassTPMCheck, BypassSecureBootCheck, BypassRAMCheck, и каждому из них присвоить значение 1.
После закрываете редактор реестра и командную строку, и установка продолжится без ошибок.
Во время начальной настройки системы, если у вас нет учетной записи Microsoft, можно выбрать автономную учетную запись.
Итак, наша система установлена. Можно узнать версию системы – нажмите комбинацию клавиш Win+R, введите команду winver и откроется окно с версией системы.
Как видно, на момент написания этой статьи актуальный образ, скачанный с сайта Microsoft, имел версию 22000.318. На сайте всегда будет лежать актуальная сборка. Далее нужно зайти в центр обновления и дать системе выкачать все доступные обновления.
После установки обновлений можно снова открыть окно с версией Windows и увидеть изменения. В моем случае версия системы изменилась на 22000.348.
Пока Windows скачивает и устанавливает обновления, можно подготовить программы. Можно заранее скачать все нужные программы, сделать из них и других нужных вам файлов iso образ и подсунуть его в виртуальную машину, а затем установить все программы с виртуального диска внутри машины. ISO образ можно создать при помощи программы UltraISO.
Я всегда стараюсь отдавать предпочтение портабельным версиям программ. Если у программы есть портабельный вариант, то я выбираю его. Я создаю в корне системного диска папку portable и складываю туда все портабельные версии программ. Можно поменять обои. Например, я взял зеленые обои из стандартной поставки Windows 7. Можно установить меню Пуск в стиле Windows 7, для этого понадобится программа StartAllBack. Одно из достоинств этой программы в том, что она позволяет разместить панель задач сверху, а стандартная панель задач Windows 11 может быть только внизу экрана. Теперь получился рабочий стол, напоминающий теплую ламповую семерку.
Еще можно установить пасьянсы из Windows 7. Они существуют в виде отдельного инсталлятора.
После того как вы установили все нужные программы, пришло время для оптимизаций. Лучшим вариантом будет использование утилиты Win 10 Tweaker. Актуальная версия на момент написания статьи 18.1. Программа имеет платную и бесплатную версии. Для большинства простых пользователей возможностей бесплатной версии хватит с головой. Каждый твик снабжен комментарием о том, что он делает и зачем он нужен. Вы можете самостоятельно решить, какие твики вам нужны. Автор программы предлагает применять сразу все твики. Я лично применяю лишь несколько.
Например, я не отключаю обновления через Win 10 Tweaker, потому как хочу регулярно получать системные обновления. А также не отключаю защитника. Если защитник ругается на какую-то вашу давно знакомую программу, то ее можно добавить в исключения в настройках защитника.
Я добавляю полезные функции контекстного меню, отключаю назойливые уведомления при запуске программ, автозапуск съемных носителей. В разделе приложения я отключаю не нужные мне стандартные программы Кино и ТВ, Люди, Музыка Groove, Sketch, Получение справки, Советы, Центр отзывов.
После того как вы сделаете все нужные вам настройки в этой программе, нужно перейти в раздел Очистка. Там я выбираю все галочки. Win 10 Tweaker удалит все лишние и ненужные файлы, это позволит уменьшить наш будущий образ системы. Например, у меня на свежей системе программа нашла 1 Гб мусора, который не нужен в составе образа.
Далее нам понадобится бесплатная утилита под названием DISM++. Программа имеет русский интерфейс и обладает большими возможностями по настройке системы. Вы можете самостоятельно изучить ее возможности, быть может вам пригодятся какие-то пункты меню. В этой программе я также выбираю пункт очистка. Вешаю галочки на очистку папки WinSxS и Кэша. Папка WinSxS содержит старые версии приложений на случай отката обновлений. Я очищаю эту папку при помощи DISM++ только при подготовке к созданию образа.
Уже после очистки Win 10 Tweaker программа DISM++ очистила еще 1,24 Гб на диске.
Теперь мы приступаем непосредственно к созданию образа системы. Я это делаю через программу DISM++. Идем в меню Файл – Сохранить образ как. Выбираем корень диска С, тип файла – Ультра сжатие образа. После нажимаем ОК.
Через некоторое время в корне системного диска виртуальной машины появится файл с расширением esd. Это образ системы. У меня он весил 5 Гб, у вас размер будет другой, в зависимости от количества установленных программ. Надо отметить, что образ создается долго, а распаковка образа происходит в десятки раз быстрее.
После того, как образ сохранен, выключаем виртуальную машину. Теперь нам надо вынуть из нее файл esd. Для открытия виртуальных дисков существует много способов. Например, диск виртуальной машины можно открыть в бесплатной программе DAEMON Tools Lite. Монтируете в ней образ виртуального диска, у вас появится новый накопитель, копируете с него файл esd на свой компьютер. На этом процесс создания образа завершен. Сохраните его в надежном месте, например, на флешке, чтобы можно было им воспользоваться при установке системы. Файлы формата esd понимает стандартный установщик Windows, так что при желании можно внедрить его в стандартный образ Windows, присвоив ему стандартное имя install.esd.
Для развертывания образа esd на реальном компьютере я пользуюсь двумя программами BOOTICE и WinNTSetup. Их можно запускать в среде Windows или с загрузочного образа WinPE. О том, что такое WinPE, можете почитать в Интернете.
Для подготовки будущего системного диска я использую бесплатную программу BOOTICE. Запускаем программу, выбираем накопитель, куда будем развертывать наш образ.
Нажимаем кнопку Управление разделами, затем «Переразбить разделы». Очищаем первые три раздела. Затем выбираем «Таблица раздела GUID (GPT)» и вешаем галочку «Создать ESP раздел». Затем ОК и за секунду диск будет подготовлен.
Теперь запускаем бесплатную программу WinNTSetup. В ней нужно указать три параметра. Путь к установочным файлам – указываем наш файл esd. Диск, на который будет установлен загрузчик – выбираем маленький ESP раздел на целевом системном диске. Диск, на который будет установлена ОС Windows – выбираем основной системный раздел, следующий за ESP. Жмем Установка и ОК.
Распаковка образа на накопитель m.2 занимает 2-3 минуты. Распаковка образа на HDD может занять 10 минут. В любом случае это будет гораздо быстрее, чем стандартная установка.
По окончании распаковки перезагружаемся в уже установленную и настроенную конкретно под ваши нужды операционную систему.
Этот материал написан посетителем сайта, и за него начислено вознаграждение.