Создание установочного дистрибутива программы. Собери свой собственный дистрибутив Linux

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

Существует два способа получения актуального дистрибутива Windows 7: интеграция обновлений непосредственно в образ и использование эталонной системы для скачивания и установки обновлений.

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

Использование эталонной системы позволяет получить все необходимые обновления в автоматическом режиме, установить их, проверить работу системы и только потом переходить к созданию дистрибутива. Поэтому мы будем рассматривать именно этот способ.

Создание эталонной системы

Для этих целей мы рекомендуем использовать виртуальную машину, в которой создадим гостевую систему для Windows 7 и установим ту версию ОС, для которой будем создавать дистрибутив. Если требуется создать дистрибутивы для нескольких версий или разрядностей, то потребуется также несколько эталонных систем.

По завершении установки не спешите, когда отобразится экран приветствия нажмите CTRL + SHIFT + F3

Это перезагрузит систему в режим аудита, если же вы успели создать пользователя и произвести вход, то выполните от имени Администратора команду:

C:\Windows\System32\sysprep\sysprep /audit /reboot

При загрузке в режиме аудита автоматически запускается утилита Sysprep , закрываем это окно, оно нам сейчас не требуется.

Следует помнить, что переведенная в режим аудита система продолжит загружаться в него до тех пор, пока мы снова не запустим Sysprep и не изменим режим. После загрузки открываем Центр обновления Windows и производим поиск и установку обновлений.

Важно! 17 мая 2016 года Microsoft выпустила накопительный пакет обновлений для Windows 7 SP1 KB3125574 , включающий в себя обновления с момента выпуска SP1 и до апреля 2016, в целях уменьшения объема скачиваемых обновлений рекомендуем скачать и установить данный пакет вручную. Для его установки требуется наличие обновления KB3020369 .

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

Если ваша цель состояла только в интеграции в дистрибутив всех последних обновлений, то на этом можно закончить. Однако режим аудита позволяет устанавливать и разнообразный софт, который также будет включен в дистрибутив. Этим широко пользуются OEM-производители, мы думаем, каждый сталкивался с дистрибутивами (обычно на ноутбуках) содержащими, кроме OC, разное количество софта сомнительной полезности.

Поэтому никто не мешает нам включить в свой дистрибутив нужный софт, чтобы не тратить время на его последующую установку. Мы обычно ограничиваемся "джентельменским набором": архиватор, Adobe Reader, Java, Silverlight. Вы можете включить в него весь набор необходимого софта, включая офисный пакет и иное ПО. Не стоит включать в образ программы устанавливающие собственные драйвера и собственно драйвера устройств, так как все сторонние драйвера будут удалены на стадии подготовки системы к захвату образа. Также не следует производить активацию ПО, эта информация также будет утеряна.

Закончив подготовку эталонной системы удалим все скачанные нами файлы и лишнее ПО (если есть), особое внимание следует уделить очистке системы от копий файлов обновлений, для этого воспользуйтесь инструментом Очистка диска :

Важно! После очистки обязательно перезагрузите систему для завершения работы с обновлениями, в противном случае вы рискуете получить неработающий образ.

Теперь подготовим ее к захвату образа при помощи утилиты Sysprep :

C:\Windows\system32\sysprep\sysprep /oobe /generalize /shutdown

Разберем ключи утилиты подробнее:

  • oobe - запускает компьютер в режиме экрана приветствия. Экран приветствия Windows позволяет конечным пользователям настраивать операционную систему Windows, создавать новые учетные записи, переименовывать компьютер и выполнять другие задачи.
  • generalize - подготавливает установку Windows перед созданием образа. Если этот параметр указан, все уникальные системные сведения удаляются из установки Windows. Идентификатор безопасности (SID) обнуляется, точки восстановления системы сбрасываются, журналы событий удаляются.
  • shutdown - завершает работу компьютера после завершения работы программы Sysprep.

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

Создание собственного дистрибутива

Для дальнейшей работы нам понадобится рабочая станция под управлением Windows 7 с установленным пакетом автоматической установки Windows (WAIK) . Разрядность и версия системы никакой роли не играют.

Установка WAIK не должна вызвать затруднений и производится с установками по умолчанию.

Теперь подготовим образ Windows PE для захвата образа эталонной системы. Разрядность WinPE должна соответствовать разрядности эталонной системы.

Откроем Пуск - Все программы - Microsoft Windows AIK - Командная строка средств развертывания и выполним команду для 32-битных систем:

Copype.cmd x86 e:\win_pe

или для 64-битных:

Copype.cmd amd64 e:\win_pe

где e:\win_pe желаемое расположение папки с образом. Предварительно папку создавать не надо, так как в этом случае вы получите ошибку, что папка уже существует.

Теперь перейдем в папку назначения и скопируем файл winpe.wim в папку ISO\sources и переименуем его в boot.wim . Затем скопируем в папку ISO из папки C:\Program Files\Windows AIK\Tools\amd64 или C:\Program Files\Windows AIK\Tools\x86 , в зависимости от разрядности, файл imagex.exe .

Затем в Командной строке средств развертывания дадим следующую команду:

Oscdimg -n -be:\win_pe\etfsboot.com e:\win_pe\ISO e:\win_pe\winpe.iso

Результатом работы команды будет образ winpe.iso с которого следует загрузить эталонную систему.

Если вы не выполняли дополнительной разметки диска эталонной системы, то раздел для захвата будет иметь букву D: , а загрузочный диск E: , на всякий случай проверяем командой dir .

Теперь приступим к захвату образа, так как образ создается пофайлово, то его можно сохранять на тот же самый раздел. Введем следующую команду:

E:\imagex /capture d: d:\install.wim "Win7_ULT_x64" /compress maximum /boot /verify

В качестве параметров указываем захватить диск D: и сохранить его в образ D:\install.wim , в кавычках указываем собственное название образа, также ставим максимальное сжатие, возможность загрузки и проверку созданного образа. После чего можем сходить выпить кофе, данная операция занимает в среднем около получаса.

Перезагружаем эталонную систему в обычный режим и копируем созданный образ на ПК с установленным WAIK. Перейдем в e:\win_pe и очистим папку ISO, затем скопируем туда содержимое оригинального диска Windows 7, который мы использовали для установки эталонной системы.

После чего заменим файл install.wim в папке sources на захваченный нами образ. Теперь можно приступать к сборке собственного ISO-образа, для этого выполните команду:

Oscdimg -u2 -m -o -lWIN7ULTx64 -be:\win_pe\etfsboot.com e:\win_pe\iso e:\win_pe\Win7_ULT_x64.iso

разберем ключи команды подробнее:

  • u2 -создает образ, который имеет только файловую систему UDF.
  • m - снимает ограничения на размер образа.
  • o - заменяет дублирующиеся файлы одним экземпляром, позволяет сократить размер образа.
  • l - метка тома, вводится без пробелов, необязательный параметр.
  • b - расположение загрузочного файла, также без пробелов.

Образ собирается довольно быстро, единственный момент - с большой долей вероятности его размер превысит 4,7 ГБ и записать его на обычную DVD болванку не удастся. В этом случае можно использовать двухслойные болванки DVD9, но они реже встречаются в продаже и могут поддерживаться не всеми моделями дисководов. В этом случае можно разбить дистрибутив на две части, каждый из которых будет помещаться на DVD-диск стандартной емкости. Также следует помнить об ограничении 32-х разрядных систем, которые не умеют работать с wim-образами размером более 4 ГБ.

Разделить образ можно следующей командой:

Imagex /split e:\win_pe\install.wim e:\win_pe\install.swm 3000

В результате будет создано два или более swm-файла максимальным размером в 3000 МБ. Затем удалим из папки ISO\sources install.wim и поместим туда install.swm, после чего соберем образ первого диска:

Oscdimg -u2 -m -lWIN7ULTx64DVD1 -be:\win_pe\etfsboot.com e:\win_pe\iso e:\win_pe\Win7_ULT_x64_DVD1.iso

После этого удалим install.swm и скопируем на его место install2.swm. Второй диск нет смысла делать загрузочным, поэтому соберем его более простой командой:

Oscdimg -u2 -m -lWIN7ULTx64DVD2 e:\win_pe\iso e:\win_pe\Win7_ULT_x64_DVD2.iso

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

Таким образом можно не беспокоиться о размере создаваемого образа, особенно если в него, кроме обновлений, планируется включать объемное ПО, например, пакет MS Office и т.п. Также мы рекомендуем перед тем, как перейти к развертыванию рабочих станции из созданного дистрибутива, всесторонне проверить его работу на тестовой системе.

  • Теги:

Please enable JavaScript to view the

Сегодня давайте обсудим, как создать пользовательскую сборку live cd image (ISO). И есть много инструментов для этих целей, но все они давно уже не поддерживаются.

Когда-то был инструмент , который отлично делал свою работу, но сейчас он уже долгое время не поддерживается и не развивается, хотя пользоваться им все еще можно(смотрите мою , которая была создана этим инструментом).

Ему на смену пришел Pinguy Builder. Но, похоже, он тоже уже давно не обновлялся. Ведь я не вижу никаких обновлений в последнее время на официальном сайте Pinguy.

Есть еще инструмент для резервного копирования и создания собственных пользовательских образов – , но он тоже не поддерживается, и в Linux Mint работает через раз.

К счастью, я нашел альтернативный инструмент для создания пользовательских live cd-образов.

Встречайте – Cubic, который расшифровывается как C ustom U buntu I SO C reator, это GUI приложение для создания пользовательского загрузочного образа Ubuntu Live CD (ISO).

Cubic активно развивается и предлагает множество возможностей для создания индивидуального компакт-диска Ubuntu. Он имеет интегрированную среду chroot командной строки, где вы можете выполнять все настройки, такие как установка новых пакетов, ядра, добавление дополнительных фоновых обоев, добавление дополнительных файлов и папок.

Он имеет интуитивно понятный графический интерфейс, который позволяет легко перемещаться (с помощью мыши) во время процесса создания live-образа. Вы можете создать новый пользовательский образ или изменить существующие проекты. Поскольку он используется для создания live-образов Ubuntu, я считаю, что он может использоваться в других дистрибутивах основанных на Ubuntu, таких как Linux Mint.

Для кого это пригодится?

Это пригодится для тех людей, которые после установки новой системы, еще много чего до-устанавливают, или удаляют, и хотят при этом иметь актуальную систему.

Как установить Cubic

Существует официальный репозиторий для облегчения процесса установки. И чтобы установить Cubic в вашу систему Ubuntu, выполните следующие команды в терминале:

Sudo apt-add-repository ppa:cubic- wizard/ release sudo apt-key adv --keyserver keyserver. ubuntu. com --recv-keys 6494C6D6997C215E sudo apt update sudo apt install cubic

Как создать пользовательскую сборку linux с помощью Cubic

После установки найдите и запустите Cubic из меню приложений.

Создайте каталог для вашего нового проекта. Это будет каталог, в котором будут сохранены ваши файлы, а также образ новой системы.

Перед процессом создания, вы должны заранее скачать официальный образ Ubuntu, или другой системы которую вы хотите переделать. Например я скачал KDE NEON с официального сайта, и хочу сделать свою сборку на основе этой системы.

После нажатия “Next”, вы должны выбрать путь, по которому вы сохранили ISO-образа системы. Cubic автоматически заполнит все детали вашей пользовательской ОС. Вы можете изменить все это, если конечно хотите. Нажмите «Далее», чтобы продолжить.

Начнется распаковка iso-образа, и все файлы будут сохранены в вашу созданную директорию

Как только файловая система будет извлечена, вы автоматически попадете в среду chroot. Если вы не видите терминал, несколько раз нажмите клавишу ENTER.

И вот здесь начинается самое интересное. Вы можете установить любые дополнительные пакеты, добавить фоновые изображения, добавить новые репозитории, установить последнее ядро ​​Linux и любую другую настройку. Настолько, насколько вы разбираетесь в GNU/Linux в целом.

Например, я хочу, чтобы google-chrome был установлен в моем live CD, я просто беру, и устанавливаю его как обычное приложение Ubuntu.

Нам не нужно вводить «sudo», потому что мы уже находимся в корневой среде.

Кроме того, вы можете обновить свою систему до актуального состояния введя команду “apt update && apt upgrade”

Но и это еще не все, вы можете просто копировать файлы и папки, а далее вставлять в это окно терминала.

Например я хочу скопировать несколько изображений для рабочего стола. Я создаю новую директорию

Mkdir /usr/share/backgrounds

Перехожу в нее

Cd /usr/share/backgrounds

Открываю свой менеджер файлов, выделяю нужные мне файлы и просто перетаскиваю их

Внимание! У вас не должно быть кириллических символов в вашем пути. Например программа не распознает вот такой путь – /home/linuxthebest/Загрузки /, лучше просто скопируйте файлы в вашу домашнюю директорию(если название на латинице)

Примечание для пользователей Ubuntu 17.10:

В системе Ubuntu 17.10 поиск DNS может не работать в среде chroot. Если вы создаете пользовательский образ Ubuntu 17.10 в реальном времени, вам нужно указать правильный файл resol.conf:

Ln -sr /run/systemd/resolve/resolv.conf /run/systemd/resolve/stub-resolv.conf

Чтобы проверить работу разрешения DNS, выполните:

Cat /etc/resolv.conf ping google.com

Когда вы внесете все изменения, нажмите «Далее»

В следующем разделе выберите версию ядра Linux, которая будет использоваться при загрузке новой версии ISO. Если вы установили какие-либо дополнительные ядра, они также будут перечислены в этом разделе. Просто выберите Ядро, которое вы хотите использовать в своем реальном компакт-диске.

В следующем разделе выберите пакеты, которые вы хотите удалить из своего live-образа. Выбранные пакеты будут автоматически удалены после установки операционной системы с использованием пользовательского образа в реальном времени. Будьте осторожны при выборе пакетов для удаления, возможно, вы случайно удалите пакет, который зависит от другого пакета.

Теперь начнется процесс создания live-образа. Это займет некоторое время в зависимости от характеристик вашей системы.

После завершения процесса создания образа, нажмите «Готово». Cubic отобразит только что созданные пользовательские детали образа.

Если вы хотите в дальнейшем изменить только что созданный образ, снимите галочку напротив «Удалить все файлы проекта, кроме генерируемого образа диска и соответствующей контрольной суммы MD5 файла». Cubic оставит пользовательский образ в рабочем каталоге проекта, вы можете вносить любые изменения в будущем.

Чтобы создать новую сборку, используйте другой каталог проекта.

Как изменить уже созданную сборку

Запустите Cubic из меню и выберите существующий каталог проекта. Нажмите кнопку «Далее», и вы увидите следующие три варианта:

  • Создать образ диска из существующего проекта.
  • Продолжить настройку существующего проекта.
  • Удалить существующий проект.

Первый вариант позволит вам создать новый live образ ISO из существующего проекта, используя ту же настройку, что и ранее. Если вы потеряли образ ISO, вы можете использовать первый вариант для создания нового.

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

Третий вариант удалит существующий проект, чтобы вы могли начать все сначала.

Я создал пользовательскую сборку на основе KDE NEON с помощью Cubic. Вот как выглядит система загруженная с флешки

Рано или поздно каждый пользователь Линукса задумывается над созданием собственного дистрибутива. Некоторые аргументируют это тем, что можно «все настроить под себя». Другие сетуют на то, что среди уже представленных дистрибутивов в Ветке нет идеального. А у них, якобы, есть суперконцептуальные идеи для собственной системы. Зачем я всю эту психологию затеял? Для того, чтобы сразу перекрыть кислород играющимся с Линуксом новичкам, которым делать нечего. Если уж задумались над созданием ОС, думайте до конца. Итак,

Я хочу создать ОС на базе Linux.
Сразу предупреждаю: был бы XVIII век, всех тех, кто для основы своей будущей системы выбирает другой развитый дистрибутив (и, не дай Бог, популярный...) ждала бы виселица. Пост именно про создание системы с нуля, а значит, всякие Slax и Linux Mint мы трогать не будем.

Шаг 1. Выбор носителя
Вариантов немного: либо ваша ОС запускается с LiveCD, либо с жесткого диска, либо с флеш-устройства. Сразу оговорюсь: не скажу в посте ни слова про жесткий диск, потому что гораздо удобнее создавать гибкий дистрибутив из серии «все свое ношу с собой», либо залоченный дистрибутив на оптическом диске. Если вы научитесь создавать LiveCD или LiveUSB систему, с установкой на жесткий диск проблем не будет.

На всякий случай, приготовьте чистую флешку, CD-диск, и установите, наконец, Virtualbox.

Шаг 2. Компиляция ядра
По поводу выхода третьего ядра Linux, этот шаг воодушевляет на дальнейшие разработки… Итак, нам нужны исходники ядра. Каждый пользователь знает, что их можно достать на сайте kernel.org. Ни в коем случае, слышите?, никогда не прикручивайте к своей системе постороннее ядро, скомпилированное не вами!

Поскольку лень моя зашкаливала, я создал папку /linuxkernel и распаковал туда архив с исходниками. Залогинившись под рутом, я сделал следующее:

Cd /linuxkernel
make menuconfig

В принципе, ядро можно конфигурировать тремя способами: make config (диалоговая конфигурация), make menuconfig (псевдографическая конфигурация через ncurses), а также make xconfig (графическая конфигурация). Суть в том, что make config испортит вам настроение надолго, т.к. он задаст все возможные вопросы по всем аспектам всех тем. Проблема с make xconfig встречается не у всех, но вот у меня встречалась и встречается. Если приспичило сделать через X, разбирайтесь сами. Оптимальный вариант - make menuconfig. Эта штука откроет вам псевдографический интерфейс, через который вы сможете настроить ядро на свой лад. Штука требует библиотеки ncurses, которая легко устанавливается.

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

Однако, направить вас все же придется. Перейдите по адресу File Systems ---> и поставьте необходимые звездочки. Буква M означает, что поддержка того или иного драйвера осуществляется с помощью подключения к ядру внешнего модуля (ненавижу их!). Нам понадобится также поддержка isofs, для чтения дисков. File Systems ---> CD-ROM/DVD Filesystems ---> ISO 9660 CDROM file system support. Можно еще поддержать древнедосовские системы.

Чмошные разработчики Mandriva забыли разрешить File systems ---> DOS/FAT/NT Filesystems ---> NTFS write support, и на одном из их дистрибутивов я мучился с доступом к древневиндовскому разделу.

Посмотрите Processor type and features ---> Processor family, мне порекомендовали выбрать Pentium-MMX.

Еще поройтесь в Device Drivers, полезно. Можете шутки ради понавыбирать там все и скомпилировать ядро весом > 50 Мб.

Далее. Ядро после загрузки себя должно загружать, собственно, систему. Либо из скомпилированных в себе файлов (используются во встраиваемых системах), либо из CPIO архива, сжатого чем-нибудь, либо из Initrd. Здесь вам не DOS, здесь не получится сразу сослаться на какой-нибудь init"овый файл в корневом каталоге диска или флешки. На самом деле получится, не слушайте дядю Анникса! Неправильно это, хоть в Интернете по этому поводу уже нехилая полемика ведется. В своей системе мы будем использовать initrd, т.к. это удобно, и не вызовет нецензурных выражений от сторонних разработчиков, в отличие от CPIO архива.

Ах, да, скомпилируйте ядро командой

Если у вас x86, найдете его по адресу /linuxkernel/arch/x86/boot/bzImage.

Для суровых челябинских программистов можно использовать Кросс-компайлинг…

Создание Ramdisk.

Теперь нам нужен initrd с установленной там простейшей оболочкой. Мы будем использовать busybox, потому что эта няша может все. Способ мы украдем у Роберто де Лео, создателя Movix (я бы даже уважать его начал, если бы не запредельная любовь к Perl):

Dd if=/dev/zero of=/dev/ram0 bs=1k count=5000 - Создаем Ramdisk в оперативной памяти нашего компьютера.
mke2fs -m0 /dev/ram0 5000 - Форматируем Ramdisk в системе Ext2
mkdir /distro - Создаем папку
mount /dev/ram0 /distro - Монтируем в папку /distro

Все, теперь у нас есть Ramdisk, емкостью в 5 Мб. Можно и больше, только не нужно. В отличие от Томаса Матеджисека, я не собираюсь пичкать initrd модулями в Squashfs, сжатыми LZMA. Все, что необходимо, будет скомпилировано вместе с ядром. Да, это не очень логично и правильно, но мороки в сто раз меньше. А специально для тех, кто осуждает такой подход, можно разрешить опцию модульности в ядре: Enable loadable module support.

В нашем Ramdisk"е, смонтированном в /distro, есть такая папка, lost+found. Это потому, что мы отформатировали его в ext2. Ни в коем случае нельзя ее удалять, хоть она здесь вряд ли поможет, образ-то фиксированный. Нам бы busybox сначала поставить…

Установка Busybox
Вот почему у таких классных проектов такие отстойные сайты? Хотя… это уже не суть важно, если исходники скачаны и успешно распакованы в папку /busybox.

Сконфигурировать busybox можно так же:

Cd /busybox
make menuconfig

Если вы еще не поняли, что это, объясню. Busybox заменяет тонны UNIX приложений, хранящихся в папках /bin, /sbin, /usr/bin, /usr/sbin. Вместо этого, создается только одно приложение: /bin/busybox, а на него создается куча ссылок в указанных выше папках. Установим busybox следующей командой:

Make CONFIG_PREFIX=/distro install

Еще Busybox создаст файлы /sbin/init и зачем-то /linuxrc, чтобы ваша система корректно запустилась. Но не все необходимые папки были созданы. Так что завершаем все руками и создаем:

/distro/etc
/distro/lib
/distro/dev
/distro/mnt
distro/proc
/distro/root
/distro/tmp
/distro/root

Если что забыл - вспомните, т.к. директории эти забыть сложно.

Все бы хорошо, вот только busybox для работы требует библиотеки, которые нужно скопировать в наш дистрибутив. Очень легко узнать, какие:

Ldd /distro/bin/busybox

Программа покажет нам библиотеки, требуемые для нашей оболочки. Сразу говорю: linux gate создается ядром и скопирован быть не может.

При копировании библиотек можно отсекать отладочную информацию (так Роберто советует):

Objcopy --strip-debug откуда куда

Делаем из Линукса Линукс

Надо создать несколько системных текстовых файлов:

Нам нужен /etc/inittab. Удивлю вас: в начале жизни система даже не знает, что такое Root. У нас даже пользователь безымянный, но вот файл общесистемных низкоуровневых фич (ОНФ) должен присутствовать. Пилотное содержание файла следующее:

::sysinit:/etc/rc.d/rc.S

# Запустить оболочку в консоли.
::respawn:-/bin/sh

# Команды, выполняемые перед выключением и перезагрузкой.
::shutdown:/sbin/swapoff -a >/dev/null 2>&1
::shutdown:/bin/umount -a -r >/dev/null 2>&1

Следующий файл - /etc/fstab. Это таблица, в которой описано, что и куда монтировать при загрузке. Вещь бесполезная! Нам нужно обязательно смонтировать proc, иначе вообще ничего работать не будет, так что в файле пишем:

None /proc proc defaults 0 0

Для mount нужен также файл /etc/mtab. Создайте его и оставьте пустым.

Но mount сделает все необходимое только тогда, когда мы явно его об этом попросим. А просить мы будем в том самом первозагрузочном файле /etc/rc.d/rc.S (rc.d - папка). Вежливо попросим:

/bin/mount -av -t nonfs

Еще нам необходим файл профиля (b)(a)sh, тут вообще раздолье для фантазии. Создаем файл /etc/profile и заполняем следующим:

PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:"
LESS=-MM
TERM=linux
HOME=/root
PS1="> "
PS2="> "
ignoreeof=10
export PATH DISPLAY LESS TERM PS1 PS2 HOME ignoreeof

Понадобится также файл /etc/shell, в котором указано, что есть оболочка:

/bin/sh
/bin/ash
/bin/bash

Вот собственно и все. Можно записывать наш Ramdisk в файл.

Mkdir /os - папка для "готового".
umount /dev/ram0 - размонтируем кусочек оперативной памяти.
dd if=/dev/ram0 of=/os/initrd bs=1k count=5000 - создаем файл.
gzip /os/initrd - сжимаем файл initrd

Создание загрузочной флешки

«Финишная прямая» нашей маленькой разработки. Берем флешку, вставляем, форматируем в vfat (можно и в ext, но не забывайте, что еще не все пользователи Windows застрелились).

На флешке создаем папку boot, в ней папки initrd и kernel.

Из папки /os копируем сжатый Ramdisk в папку boot/initrd на флешке, называем «main.gz». Из папки с исходниками ядра копируем bzImage в папку boot/kernel на флешке, называем «main.lk». Достаем файлы загрузчика Syslinux (в Интернете, либо из другого дистрибутива: тут не принципиально), а именно syslinux.bin, syslinux.boot, syslinux.cfg. Копируем их в корневой каталог нашей флешки. В файле syslinux.cfg пишем что-то подобное:

Default mm
prompt 1
timeout 100
label mm
kernel /boot/kernel/main.lk

label mc
kernel /boot/kernel/main.lk

label cm

append initrd=/boot/initrd/main.gz load_ramdisk=1 ramdisk_size=5000 rw root=/dev/ram0
label cc
kernel /boot/kernel/custom.lk
append initrd=/boot/initrd/custom.gz load_ramdisk=1 ramdisk_size=5000 rw root=/dev/ram0
label hd
localboot 0x80

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

Узнаем, каким девайсом в системе является наша флешка (можно запустить mount без параметров и посмотреть). Это либо /dev/sdb1, либо /dev/sdc1, либо /dev/sdd1. Стоит отмонтировать флешку перед началом установки.

Устанавливаем syslinux (если пакета в системе нет, apt-get install syslinux):

Syslinux -d путь_к_устройству

В корневом каталоге флешки должен появиться файл ldlinux.sys. Если он есть, значит syslinux.bin, syslinux.boot больше не нужны.

Как настроить BIOS на загрузку из флешки, я вам рассказывать не буду - это легко. Скажу только, что очень удобно создать папку /boot/initrd/init, в которую можно будет смонтировать /boot/initrd/main, для последующей работы с ним. Только не забудьте разжимать и сжимать его gzip"ом.

Ну вот и все.

Как-бы я только что рассказал вам, как создать с нуля систему на Linux. Легко, не правда ли? Далее вы можете редактировать скрипт /sbin/init, ведь у вас еще много работы! Вы должны будете написать скрипт для монтирования флешки, который делает chroot в корневой каталог. В противном случае, вы вынуждены будете работать с ReadOnly разделом, величиной в 5 Мб. Но это уже совсем другая история.

Как создать свою эталонную сборку 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, активация гипервизора, а также процесс создания виртуальной машины в деталях описываются в статье сайта . Только, в отличие от рассмотренного в п. 5 этой статьи примера, выбор поколения виртуальных машин не принципиален, можно создать и машину 1 поколения. Если не планируется внедрение ресурсоемкого софта типа игр, можем ограничиться объемом создаваемого жесткого диска VHDX в 50-60 Гб. Ну и избитый совет для владельцев SSD – путь хранения файлов виртуальной машины и VHDX-диска нужно указывать на разделе HDD. На последнем этапе создания виртуальной машины указываем ISO-образ , включаем машину и запускаем процесс установки системы. Последний будет отличаться от того, как это происходит обычно.

6. Установка и настройка Windows 10 в режиме аудита

Проходим процесс установки Windows 10 до этапа выбора типа установки и выбираем второй вариант.

Нам понадобится два раздела – один для Windows, другой несистемный, куда впоследствии будет сохранен файл install.esd. Формируем раздел С из 30-40 Гб.

Оставшееся место отдаем другому разделу.

Устанавливаем Windows.

По завершении этапа копирования файлов установочный ISO-образ не извлекаем из виртуальной машины, он нам еще понадобится. На этапе установки, где необходимо задать первые настройки, ничего не трогаем, просто жмем клавиши Ctrl+Shift+F3.


5

Войдем в режим аудита с подключением скрытой учетной записи администратора.

На входе в систему в режиме аудита нас встречает окно утилиты Sysprep. Утилита будет дожидаться своей участи, чтобы провести удаление привязки настроенной системы от комплектующих. Можно приступать к настройке системы. Один нюанс: в режиме аудита не работает Microsoft Edge, для доступа к Интернету нужно запустить Internet Explorer.


7

Что касается пределов вмешательства в систему, в режиме аудита можем работать со всем, что не относится к пользовательским учетным записям. Можем устанавливать десктопное ПО, менять системные настройки, применять твики, оставлять папки или файлы на рабочем столе. А вот универсальные приложения из Windows Store установить не получится. Как и Microsoft Edge, магазин не работает в режиме аудита. Не получится даже при условии активации системы сменить тему оформления или прочие параметры персонализации. Для установки универсальных приложений и применения настроек персонализации нужна пользовательская учетная запись, а не скрытая администратора.

Если понадобится перезагрузить систему, например, это требуется для доустановки каких-то программ, этот процесс нужно провести с помощью окна Sysprep: необходимо выставить значения «Переход в режим аудита» и «Перезагрузка». Затем нажать «Ок».

Параллельно с настройкой системы необходимо сделать важную вещь – отформатировать несистемный раздел диска.

7. Удаление привязки к комплектующим (Sysprep)

Итак, эталонный образ системы готов. Теперь можем приступать к процессу удаления привязки к комплектующим. Обращаемся к окну открытой утилиты Sysprep или запускаем ее нажатием клавиш Win+R и вводом:

В открывшейся папке будет содержаться EXE-файл запуска утилиты.

В окне Sysprep выставляем действие «Переход в окно приветствия (OOBE)». Ставим галочку «Подготовка к использованию» для сброса активации. В параметрах завершения работы указываем «Завершение работы». И жмем «Ок».

Дожидаемся окончания работы Sysprep и выключения виртуальной машины.

8. Создание файла install.esd

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

На первом этапе установки системы жмем клавиши Shift+F10.

С помощью утилиты DISM осуществим захват эталонного образа системы и сохраним его в файл install.esd. Но прежде посмотрим, под какими буквами значатся два нужных раздела – системный и раздел назначения, куда будет сохранен install.esd. Вводим:

В нашем случае диск системы значится как D, а несистемный – как E. Потому команда захвата образа системы будет такой:

Dism /capture-image /imagefile:E:\install.esd /capturedir:D:\ /name:windows

В этой команде, соответственно, в каждом отдельном случае необходимо заменить буквы E и D на свои.


12

По завершении операции выключаем виртуальную машину. Она нам больше не понадобится.

9. Монтирование диска виртуальной машины в основной системе

Чтобы диск виртуальной машины отображался в основной системе, где будут происходить дальнейшие действия, открываем в проводнике файл диска этой машины VHDX (или VHD). В контекстном меню жмем «Подключить».


13

Все разделы виртуального диска отобразятся в проводнике как отдельные диски. В нашем случае выбираем последний диск M, именно там хранится файл install.esd. После перепаковки ISO-образа виртуальный диск нужно будет размонтировать, это делается с помощью опции «Извлечь» в контекстном меню любого из добавленных разделов виртуального диска.


14

Новоиспеченным файлом install.esd заменим оригинал в составе официального дистрибутива Windows 10.

10. Перепаковка ISO-образа дистрибутива Windows 10

Заменять одни файлы на другие в составе загрузочного ISO-образа могут многие программы, в нашем случае для перепаковки выбрана программа UltraISO . Запускаем ее. Жмем меню «Файл», затем – «Открыть» и в проводнике указываем путь к ISO-образу, с которого осуществлялась установка Windows 10 на виртуальную машину.


15

Содержимое ISO-образа отобразится в верхней части окна UltraISO. Здесь открываем папку «sources» и удаляем в ней исходный файл install.esd. В нашем случае он весил 3,7 Гб. Нижняя часть окна UltraISO – это системный проводник, здесь открываем подмонтированный раздел диска (или нужный раздел реального диска), на котором хранится новоиспеченный файл install.esd. В нашем случае он весит 4,09 Гб. Новоиспеченный файл либо перетаскиваем в верхнюю часть окна - туда, где был файл исходный, либо добавляем с помощью контекстного меню.


16

Проверяем: в папке «sources» образа диска должен находится не исходный install.esd с весом в 3,7 Гб, а новоиспеченный install.esd с весом в 4,09 Гб.


17
18

Дожидаемся завершения прогресса операции.

***

Теперь осталось только протестировать свою сборку Windows 10 на новой виртуальной машине.

Отличного Вам дня!

Сегодня мы разберем как создавать свой дистрибутив Windows 7 . Чтобы в нем было предустановлено необходимое ПО и система включала установленные обновления на текущий момент.

Проделывать все операции мы будем на виртуальных машинах (я использую VirtualBox ), т.к. это самый удобный и оптимальный вариант для создания своего образа системы. Для работы нам понадобится две виртуальные машины. На одной мы будем подготавливать эталонный образ системы, а на второй мы будем собирать его непосредственно в готовый образ для дальнейшего использования его.

Создание эталонной системы

На первой виртуальной машине устанавливаем систему Windows 7 (разрядность на ваше усмотрение, я буду делать образ х64 ). По завершении установки не спешим!, когда отобразится экран приветствия нажмите CTRL+SHIFT+F3

Информация : Если же вы успели создать пользователя и произвести вход, то выполните от имени Администратора команду: C:\Windows\System32\sysprep\sysprep /audit /reboot

При загрузке в режиме аудита автоматически запускается утилита Sysprep , закрываем это окно, оно нам сейчас не нужно.

Информация : Система в режиме аудита, будет загружаться в него до тех пор, пока мы снова не запустим Sysprep и не изменим режим.

После загрузки первым делом открываем Центр обновления Windows и производим поиск и установку обновлений до актуального состояния.

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

После того как система была обновлена, можно выполнить установку всего необходимого по вашему мнению ПО.

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

Закончив подготовку эталонной системы удалим все скачанные нами файлы и лишнее ПО (если есть), особое внимание следует уделить очистке системы от копий файлов обновлений. Воспользуемся расширенной очисткой диска. Запускаем от Администратора командную строку и вбиваем следующее

Cmd.exe /c cleanmgr /sageset:65535 & cleanmgr /sagerun:65535

Отмечаем галочками все пункты и нажимаем ОК. После очистки системы подготовим ее к захвату образа при помощи утилиты Sysprep , запускаем от Администратора командную строку и вбиваем следующую команду

C:\Windows\system32\sysprep\sysprep /oobe /generalize /shutdown

Описание ключей:

oobe — запускает компьютер в режиме экрана приветствия. Экран приветствия Windows позволяет конечным пользователям настраивать операционную

систему Windows, создавать новые учетные записи, переименовывать компьютер и выполнять другие задачи.

generalize — подготавливает установку Windows перед созданием образа. Если этот параметр указан, все уникальные системные сведения удаляются из

установки Windows. Идентификатор безопасности (SID) обнуляется, точки восстановления системы сбрасываются, журналы событий удаляются.

shutdown — завершает работу компьютера после завершения работы программы Sysprep.

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

Создание собственного дистрибутива

На второй виртуальной машине устанавливаем систему Windows 7 (разрядность не имеет значения). После установки системы необходимо скачать и установить Пакет автоматической установки Windows (WAIK) для Windows 7 .

Установка тривиальная, не должна вызвать сложностей.

Подготовим образ Windows PE для захвата образа эталонной системы. Разрядность WinPE должна соответствовать разрядности эталонной системы.

Запускаем от имени Администратора Пуск Все программы Microsoft Windows AIK

Выполняем команду в соответствии разрядности эталонной системы

для 32-битных систем:

Copype.cmd x86 с:\win_pe

или для 64-битных:

Copype.cmd amd64 с:\win_pe

Информация: где с:\win_pe желаемое расположение папки с образом. Папка создастся автоматически.

Теперь перейдем в папку назначения и скопируем файл winpe.wim в папку ISO\sources и переименуем его в boot.wim. Затем скопируем в папку ISO из папки C:\Program Files\Windows AIK\Tools\amd64 или C:\Program Files\Windows AIK\Tools\x86, в зависимости от разрядности, файл imagex.exe.

В Командной строке средств развертывания выполняем

Oscdimg -n -bс:\win_pe\etfsboot.com с:\win_pe\ISO с:\win_pe\winpe.iso

Создастся образ winpe.iso с которого следует загрузить эталонную систему. Т.к. эталонная система у нас находится на другой виртуальной машине и нам нужно скопировать образ winpe.iso в любое удобное для нас место на физической машине чтобы потом можно было указать данный файл в качестве загрузчика эталонной системы.

В свойствах виртуальной машины указываем что грузится надо с winpe.iso образа и запускаем виртуальную машину с эталонной системой. Процесс загрузки системы остановится на открытой командной строке.

Чтобы узнать какая буква назначена на диск с эталонной системой, выполним команду

Diskpart

List volume

Видим что эталонная система находится на D . Выходим из diskpart . Выполним захват эталонной системы:

E:\imagex /capture d: d:\install.wim "Win7_ULT_x64" /compress maximum /boot /verify

данная операция занимает длительное время, поэтому можно смело заняться другими делами.

По окончании процесса захвата, перезагружаем систему в обычном режиме. Копируем полученный образ c:\install.win на виртуальную машину с установленным WAIK . Далее заходим в с:\win_pe и очистим папку ISO , затем скопируем туда содержимое оригинального диска Windows 7 , который мы использовали для установки эталонной системы.

Заменим файл install.wim в папке sources на захваченный нами образ. Теперь можно приступать к сборке собственного ISO -образа. Запускаем от имени Администратора Пуск Все программы Microsoft Windows AIK Командная строка средств развертывания

Oscdimg -u2 -m -o -lWIN7ULTx64 -bc:\win_pe\etfsboot.com c:\win_pe\iso c:\win_pe\Win7_ULT_x64.iso

Информация по ключам :

u2 -создает образ, который имеет только файловую систему UDF.

m — снимает ограничения на размер образа.

o — заменяет дублирующиеся файлы одним экземпляром, позволяет сократить размер образа.

l — метка тома, вводится без пробелов, необязательный параметр.

b — расположение загрузочного файла, также без пробелов.

Дополнительная информация : Если необходимо разделить полученный образ на несколько частей, то запускаем от Администратора Командную строку средств развертывания и вводим imagex /split c:\win_pe\install.wim c:\win_pe\install.swm 3000

Создастся два или более swm -файла максимальным размером в 3000 МБ . Затем удалим из папки ISO\sources install.wim и поместим туда install.swm , после чего соберем образ первого диска:

Oscdimg -u2 -m -lWIN7ULTx64DVD1 -bc:\win_pe\etfsboot.com c:\win_pe\iso c:\win_pe\Win7_ULT_x64_DVD1.iso

После этого удалим install.swm и скопируем на его место install2.swm . Второй диск делаем не загрузочным, собираем его командой:

Oscdimg -u2 -m -lWIN7ULTx64DVD2 c:\win_pe\iso c:\win_pe\Win7_ULT_x64_DVD2.iso

Установка с разделенного образа производится обычным путем, начиная с первого диска, в процессе работы установщик сам попросит сменить диск:

На этом все. Мы рассмотрели как создать свой дистрибутив Windows 7 .