sonyps4.ru

Как собрать свой дистрибутив Linux. Создание дистрибутивов с помощью InstallShield Express


Автор: Ben Everard
Дата публикации: 23 апреля 2015 года
Перевод: А. Кривошей
Дата перевода: июль 2015 г.

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

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

Быстрое создание своего собственного Ubuntu

Подходит также для mumbuntu и dadbuntu.

За долгие годы, прошедшие с момента выхода первого релиза Ubuntu, было придумано множество утилит, позволяющих создать собственную версию Ubuntu. Отчасти этим объясняется существование огромного количества его производных. Хотя большинство их быстро забрасывают, Ubuntu Customisation Kit (UCK) жив до сих пор.

Вы можете установить UCK в Ubuntu или любом другом дистрибутиве на его базе, например в Linux Mint. Утилита есть в официальных репозиториях, поэтому вы можете установить ее с помощью пакетного менеджера. Далее, вам понадобится ISO-образ того дистрибутива, который вы хотите изменить. Чтобы упростить этот процесс, желательно использовать образ дистрибутива, включающий графическую оболочку, которую вы собираетесь задействовать. Например, если вы хотите использовать в своем дистрибутиве локализированный декстоп Gnome, лучше использовать образ Ubuntu Gnome, а не стандартного Ubuntu. Если вы работаете на 32-битной машине, образ должен быть собран для архитектуры i386. Однако если у вас 64-битная система, вы можете настраивать 32-битный образ.

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

После выбора языка необходимо указать графическое окружение дистрибутива. UCK позже скачает для него файлы локализации, основываясь на вашем выборе языка. Затем необходимо будет указать местонахождение образа дистрибутива Ubuntu, который вы будете настраивать.

Затем UCK запросит у вас имя вашего дистрибутива и спросит, хотите ли вы вручную настроить свой дистрибутив. Если вы ответите положительно, откроется окно терминала, в котором корневая директория будет изменена на окружение сборки вашего дистрибутива. На последней стадии UCK предложит вам опцию удаления из вашего дистрибутива всех относящихся к Windows файлов, и создания гибридного ISO-образа диска, который можно прожечь на болванку, или скопировать на USB-флешку. После этого UCK распакует образ диска и скачает файлы локализации. Затем, вы сможете настроить дистрибутив вручную, если ранее выбрали эту опцию. Опция "Run Console Application" запустит окно терминала с оболочкой root.

Продвинутые настройки

В этом окне вы можете использовать менеджер пакетов apt-get для удаления и установки приложений. Например, вы можете установить поддержку мультимедиа с помощью apt-get install ubuntu-restricted-extras. Если ваш дистрибутив предназначен для использования на слабых машинах, вы можете удалить LibreOffice:

$ apt-get remove --purge libreoffice* /

и заменить его на AbiWord:

$ apt-get install abiword

Если вы хотите поместить на рабочий стол ярлыки для ваших программ, сначала создайте директорию Desktop:

$ mkdir -p /etc/skel/Desktop

Теперь вы можете скопировать туда ярлыки для всех установленных приложений:

$ cp /usr/share/applications/firefox.desktop /etc/skel/Desktop

и затем сделать их исполняемыми:

$ chmod +x firefox.desktop

Если вы хотите изменить обои для рабочего стола, откройте файл /usr/share/glib-2.0/schemas/10_ubuntu-settings.gschema.override в текстовом редакторе и измените параметр picture-uri на путь к вашему изображению:

Picture-uri="file:///usr/share/backgrounds/Partitura_by_Vincijun.jpg" /

Аналогично вы можете изменить тему и иконки, отредактировав соответствующие параметры в этом файле. Например, если вы хотите заменить тему Ambiance на Radiance и использовать набор иконок HighContrast:

Gtk-theme="Radiance"icone-theme="HighContrast"...theme="Ambiance"

После редактирования этого файла не забудьте скомпилировать модифицированные темы оформления:

$ glib-compile-schemas /usr/share/glib-2.0/schemas

Вы таже можете копировать файлы на свой live CD. Для этого запустите еще один терминал и перейдите в директорию ~/tmp/remaster-root/, которая является корневой для нашего live CD. Например, вы хотите скопировать определенные ярлыки и папки в Desktop:

$ sudo cp -r ~/Documents/README.txt ~/remaster-root/etc/skel/Desktop

После завершения закройте терминал chroot и выберите опцию "Continue Building" в мастере UCK. Теперь начнется сборка вашего нового дистрибутива.

Системы быстрой сборки дистрибутивов

Сборка дистрибутива в браузере с помощью SUSE Studio

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

Можно также сэкономить себе время, установив утилиту Kickstart Configurator.

$ yum install system-config-kickstart

Эта программа предлагает простой графический интерфейс для создания файла Kickstart.

Вы можете задать требуемые вам пакеты, перечисляя их в секции %packages. Вместо отдельных пакетов здесь также можно добавить определенные группы пакетов, например gnome-desktop. Вы также можете указывать здесь пакеты из других файлов Kickstart, задавая их имя и расположение с параметром %include:

%include /usr/share/spin-kickfedora-live-base.ks

Если вам нужно после загрузки дистрибутива запустить на выполнение какую-либо команду, например для настройки сети, необходимо задать ее в секции %post. Например, если вы хотите автоматически запускать Firefox, можете поместить его ярлык в папку ~/.config/autostart, добавив в секцию %post следующие строки:

%post # autolaunch Firefoxmkdir -p /etc/skel/.config/autostartcp /usr/share/applications/firefox.desktop /etc/skel/.config/autostart/%end

Убедитесь, что конец секций %packages и %post обозначен с помощью %end. Если вы хотите запустить какую-либо команду за пределами своего live-окружения, например скопировать файлы хоста в свой дистрибутив, добавьте параметр -nochroot в секцию %post, как показано ниже:

%post --nochroot #copy resolv.conf from host to the custom distrocp /etc/resolv.conf $LIVE_ROOT/etc/%end

Переменная $LIVE_ROOT указывает на live-окружение. Аналогичным способом вы можете копировать файлы с хоста в свое live-окружение, например:

$ cp -r /home/bodhi/Music $LIVE_ROOT/

Если вы используете графическую утилиту для задания репозиториев, вы должны вручную добавить в файл Kickstart одну важную строку. Она указывает на список зеркал для репозитория Fedora (а также содержит информацию о версии и архитектуре сборки), откуда будут скачиваться пакеты. Например, если вы хотите получать пакеты для 64-битной Fedora 21, эта строка будет иметь следующий вид:

Repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-21&arch=x86_64

После того, как вы закончили с файлом Kickstart, откройте его с помощью livecd-creator для сборки дистрибутива. Предположим, файл сохранен в ~/custom-kickstarts/Custom-Fedora.ks, тогда команда будет иметь вид:

$ sudo livecd-creator --config=/home/bodhi/custom-kickstarts/Custom-Fedora.ks--fslabel=FedoraUltimate--cache=/var/cache/live--verbose

Ключ -fslabel задает имя вашего дистрибутива. После выполнения всех инструкций в файле Kickstart утилита собирает ISO-образ вашего дистрибутива, который сохраняется в вашей домашней директории.

Создание собственного дистрибутива для Raspberry Pi

New Out Of the Box Software, или NOOBS - это официальный инсталлятор для Raspberry Pi. Он упрощает и стандартизирует процесс установки дистрибутивов на Raspberry Pi. Хотя главной целью создания NOOBS является упрощение установки операционных систем на Pi, эта утилита может также использоваться для создания собственных дистрибутивов.

Сначала скачайте инсталлятор NOOBS с сайта и установите его в любом поддерживаемом дистрибутиве, на основе которого вы хотите сделать свою систему. Мы советуем использовать дистрибутив Raspbian, который рекомендуется и создателями NOOBS.

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

$ sudo apt-get install openbox-themes

Вы также можете устанавливать или удалять с помощью apt-get, или установив графический менеджер пакетов Synaptic.

Вы можете скопировать в этот дистрибутив Raspbian любые файлы.NOOBS позволяет создать раздел размером 512 Мб, в котором вы будете хранить свои файлы. Или вы можете воспользоваться командой raspi-config, чтобы расширить корневой раздел на всю SD-карту.

Кроме того, не забудьте настроить работу с сетью. Например, вы можете настроить беспроводный адаптер для подключения к вашей точке доступа Wi-Fi, а также доступ к различным сетевым службам.

После завершения настройки дистрибутива необходимо упаковать его в архив. Перейдите в корневую директорию с помощью команды cd / и выполните следующую команду:

$ sudo tar -cvpf root.tar /bin /boot /cdrom /dev /etc /home /initrd.img /initrd.img.old /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var /vmlinuz /vmlinuz.old --exclude=proc/* --exclude=sys/* --exclude=dev/pts/*

Упаковка займет примерно полчаса, в зависимости от количества сделанных вами изменений.
Теперь у вас есть файл root.tar в корневой директории. Аналогично упаковываем загрузчик. Сначала переходим в директорию boot.

Затем создаем архив.

$ tar -cvpf boot.tar

Это не займет много времени. Теперь у вас есть файл boot.tar в директории boot.

NOOBS требует сжатые версии этих файлов. Но у Raspberry Pi недостаточно ресурсов для сжатия этих файлов, поэтому вам необходимо переместить их на PC и сжать с помощью команд xz -9 -e boot.tar и xz -9 -e root.tar. При этом исходные файлы будут заменены на их сжатые версии, boot.tar.xz и root.tar.xz соответственно.

Теперь отформатируйте SD-карту и разверните на ней свежую копию NOOBS. С помощью файлового менеджера перейдите в директорию os, которая, в свою очередь включает множество директорий, в каждой из которых имеются файлы для одного из поддерживаемых дистрибутивов, включая Arch, Pidora, Raspbian и других. Так наш дистрибутив сделан на базе Raspbian, мы можем удалить все другие директории. Назовите директорию Raspbian именем, которым вы хотите назвать свой дистрибутив.

Перейдите в эту директорию и откройте файл os.json в текстовом редакторе. Заметите текст рядом с полями name и description на свой. Удалите файл flavours.json.

И наконец, удалите имеющиеся в этой директории файлы root.tar.xz и boot.tar.xz, заменив их на свои. Это все. Теперь загрузите Pi с этой карты.

Сборка пользовательского дистрибутива на базе Arch с нуля

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

Вы можете создать пользовательский дистрибутив на базе Arch с помощью утилиты командной строки Archiso, которая представляет собой набор скриптов Bash и достаточно сложна в освоении, но при этом дает вам полный контроль над конечным результатом.

Настройка среды для сборки дистрибутива

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

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

После того, как вы настроите свой дистрибутив, откройте терминал и установите зависимости для Archiso:

$ pacman -S make squashfs-tools libisoburn dosfstools patch lynx devtools git

Теперь скачайте последнюю версию пакета archiso из репозитория Git с помощью команды:

$ git clone git://projects.archlinux.org/archiso.git

Она скопирует файлы в директорию ~/archiso. Перейдите в эту директорию и установите утилиту с помощью команды make install. После окончания установки вы можете без всяких опасений удалить директорию ~/archiso. Далее, создадим директорию, в которой мы будем настраивать файлы для нашего будущего дистрибутива:

$ mkdir ~/archlive

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

Теперь вам нужно скопировать один из двух профилей Archiso. Профиль baseline хорош для создания базовой live-системы без предустановленных пакетов. Мы будем использовать профиль releng, который позволяет создать полностью настроенный под свои нужды Arch Linux с предустановленными приложениями. Для использования этих скриптов просто скопируйте их в директорию ~/archlive:

$ cp r /usr/share/archiso/configs/releng/ ~/archlive/

Добавление пакетов

Добавлять пакеты в ISO-образ с помощью Archiso также просто, как добавлять их в текстовый файл, по одному пакету на строку. В директории ~/archlive у нас три файла: packages.i686, packages.x86_64 и packages.both. Вы можете открыть их в текстовом редакторе и добавить названия пакетов, которые вы хотите включить в дистрибутив. Archiso будет считывать содержимое файла для соответствующей архитектуры и затем упаковывать их в образ, который будет работать как на 32-х, так и на 64-битных машинах. Тем не менее, для обеспечения согласованности, мы рекомендуем вам добавлять название пакетов в файл packages.both, чтобы они были доступны для обеих архитектур.

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

И затем скопировать те, которые вам нужны. Вы можете создать базовую систему с рабочим столом Mate, менеджером входа в систему и браузером Firefox, добавив в файл packages.both следующие пакеты:

Xorg-server xorg-xinit xorg-server-utils xf86-video-vesa slim mate firefox

Вы также можете скопировать в файл packages.both все пакеты, установленные в системе, с помощью команды:

$ pacman -Qqe >> ~/archlive/packages.both

Настройка корневой директории

Директория airootfs внутри ~/archlive/ служит оверлеем для того, что будет находиться в корневой директории нового дистрибутива. Любые файлы, которые вы поместите в эту директорию, будут добавлены в файловую систему дистрибутива, поэтому, если вы используете менеджер входа Slim, скопируйте его конфигурационный файл:

$ cp /etc/slim.conf ~/archlive/airootfs/etc/

Аналогично, вам необходимо скопировать файл /etc/systemd/system/display-manager.service в соответствующее место внутри ~/archlive/airootfs/, а также директории, в которых хранятся темы оформления, а именно /usr/share/backgrounds, /usr/share/icons и /usr/share/themes.

Если вы хотите, чтобы новый дистрибутив имел тот же набор пользователей, скопируйте соответствующие файлы:

$ cp /etc/{shadow,passwd,group} ~/archlive/airootfs/etc/

Перед тем, как копировать любые файлы из домашней директории пользователя, необходимо создать директорию skel:

$ mkdir ~/archlive/airootfs/etc/skel

Эта директория отображает домашнюю директорию пользователя во время подготовки системы. Теперь вы можете копировать файлы из домашней директории:

Таким образом, вы можете скопировать любые файлы или папки из своей домашней директории в директорию skel, включая ~/.xinitrc и ~/.config.

Для того, чтобы автоматически авторизовываться в системе от имени обычного пользователя, а не root, откройте файл ~/archlive/airootfs/etc/systemd/system/[email protected]/autologin.conf в текстовом редакторе и отредактируйте следующую строку:

$ cp ~/.bashrc ~/archlive/airootfs/etc/skel/

ExecStart=-/sbin/agetty --autologin bodhi --noclear %I 38400 linux

Замените bodhi на свое имя пользователя.

Заключительные настройки

В домашней директории root (~/archlive/airootfs/root) есть файл customize-root-image.sh. Любая задача по администрированию систему, которую вы хотели бы выполнять после установки Arch, может быть добавлена в этот файл. Помните, что инструкции в этом файле должны составляться для нового окружения, то есть / в скрипте должна относиться к корневой директории собираемого дистрибутива.

Откройте файл в текстовом редакторе, найдите строку с /etc/localtime и задайте свой часовой пояс:

$ ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime

Также убедитесь, что в качестве командной оболочки установлен Bash:

$ usermod -s /usr/bin/bash root

Затем скопируйте содержимое директории skel в свою пользовательскую домашнюю директорию:

$ cp -aT /etc/skel/ /home/bodhi/

и задайте правильного владельца этих файлов:

$ chown bodhi:users /home/bodhi -R

В двух последних командах замените bodhi на свое имя пользователя.

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

Systemctl enable pacman-init.service choose-mirror.service systemctl set-default graphical.targetsystemctl enable graphical.target

Это все. Теперь вам нужно собрать образ дистрибутива. Перейдите в директорию ~/archlive и запустите нижеприведенную команду для запуска процесса сборки:

$ ./build.sh -v -N EduArch -V 1.0 -L EduArch_1.0

Ключ -v включает режим вывода подробной информации о процессе, -N задает имя ISO-образа, -V задает версию, в а -L добавляет метку в сгенерированный ISO.

Обратите внимание, что процесс сборки достаточно медленный, и может занять до нескольких часов в зависимости от мощности вашего компьютера. После завершения вы найдете ISO-образ в директории ~/archlive/out.

Обновление образов

Через некоторое время после сборки образа вы захотите обновить его. Возможно выйдут новые версии приложений, или вам понадобится изменить какие-либо файлы, которые вы добавляли в образ вручную.
Для этого перейдите в директорию ~/archlive/work. Директории i686 и x86_64 внутри work содержат файловые системы для соответствующих архитектур. Вы можете сменить корневую директорию на одну из них с помощью команды:

$ arch-chroot ~/archlive/work/x86_64/root-image

$ arch-chroot ~/archlive/work/i686/root-image

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

$ pacman-key --init $ pacman-key --populate

После чего можете обновить систему с помощью команды:

Сделав необходимые изменения, выйдите из окружения chroot.

Не забудьте сделать эти изменения для обеих архитектур. Теперь необходимо заново собрать образ. Однако скрипт build.sh, так как мы уже в директории work. Чтобы заставить его все-таки собрать новый образ, откройте файл build.sh в текстовом редакторе. Перейдите в конец файла и удалите параметр run_once из начала команд make_prepare и make_iso:

For arch in i686 x86_64; do make_preparedonemake_iso

Сохраните файл и запустите скрипт для создания образа:

$ ./build.sh -v -N EduArch -V 2.0 -L EduArch_2.0

Сборка дистрибутивов Linux для встраиваемых систем

Linux - это популярный выбор на рынке встраиваемых решений. Однако это поле занято различными специализированными встраиваемыми дистрибутивами Linux. Чтобы упорядочить этот рынок, Linux Foundation вместе с такими лидерами отрасли, как Intel, AMD, Freescale, Texas Instruments, Wind River и другими, создали проект Yocto.

Главной целью проекта является создание и распространение окружения и инструментов для создания и сборки встраиваемых дистрибутивов Linux. Проект поддерживает 32- и 64-битные встраиваемые архитектуры, такие как ARM, PPC и MIPS. С помощью этих инструментов разработчики могут собирать полнофункциональные системы Linux для встраиваемых устройств.

В помощь разработчикам проект предлагает программу Hob, которая представляет собой графический фронтенд к движку сборки проектов BitBake. Hob читает инструкции и, следуя им, скачивает пакеты, собирает их и компилирует результат в виде загрузочного образа. Вы можете установить его во всех популярных дистрибутивах, включая Fedora, Ubuntu, Debian, OpenSUSE и CentOS.

Для начала вы можете загрузить систему сборку с сайта проекта, используя git:

$ git clone -b daisy git://git.yoctoproject.org/poky.git

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

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

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

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

Подготовка

Понадобится дистрибутив ОС, который можно скачать на сайте Microsoft.

Создаем загрузочную флешку, используя этот дистрибутив, и запускаем встроенную в систему утилиту «sysprep». Задача этой утилиты – подготовка образа системы, в который входят все настройки и установленные программы, к переносу на другой компьютер.

Командную строку надо запустить и ввести команду:

C:\Windows\System32\Sysprep\Sysprep.exe

В открывшемся окне все параметры выставляются так, как показано на скриншоте:

Немного объясним, что означают некоторые пункты:

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

Утилита «sysprep» будет работать несколько минут, продолжительность зависит от объема данных, которые будут переноситься на новый компьютер.

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

Создание образа в формате ESD

Теперь надо подключить внешний диск, вставить подготовленную ранее загрузочную флешку, и загрузиться с нее. Когда появится окно установки Windows 10, надо нажать комбинацию клавиш «Shift+10».

  1. «Diskpart» (утилита, позволяющая работать с разделами жесткого диска),
  2. «lisvol» (просмотр разделов дисков, так, Windows 10 установлена в раздел C:, а подключенный USB-диск получил букву I:),
  3. «еxit» (выходим из утилиты. Мы узнали данные о разделах).

Теперь надо запустить процесс сохранения диска C:, где находится установленная ОС Windows 10, в файл-образ в формате ESD на подключенный USB-диск. Команда выглядит так:

Dism /Capture-Image /ImageFile:I:\install.esd /CaptureDir:C:\ /Name:Windows

Поясним команду:

  • Install.esd – имя создаваемого файла с образом системы,
  • I: — диск, на котором будет создаваться этот файл В нашем случае это переносной диск I:),
  • C:\ — диск, на котором установлена исходная ОС Windows 10.

Можно еще указать степень сжатия получаемого файла. В данной строке этот параметр не указан и будет использоваться значение «по умолчанию» — fast. Если нужен иной режим работы, то можно использовать другое значение. Следует помнить, что чем сильнее сжатие, тем больше времени надо на работу.

По завершении работы на съемном диске появится готовый файл с образом.

Теперь можно выключить тот компьютер, на котором была установлена ОС Windows 10, и который использовался для создания образа. Остальная работа будет производиться на втором компьютере.

Дополнительное сжатие файла-образа

Данный раздел не обязателен к выполнению. Полученный на прошлом этапе файл «Install.esd» можно сжать еще больше, уменьшив его размер. Проверяем наличие файла на съемном диске.

Вводим команду:

DISM /Export-Image /SourceImageFile:I:\install.esd /SourceIndex:1 /DestinationImageFile:I:\install2.esd /Compress:recovery

Это командой мы создаем второй файл с именем «Install2.esd», который должен отличаться от исходного только размером. При этом используем новый тип сжатия — Compress:recovery.

После завершения операции на диске будут 2 файла, отличающиеся размером. Теперь можно удалить исходный файл с образом («Install.esd»), а новый переименовать из «Install2.esd» в «Install.esd».

В результате опять остается только один файл с прежним именем «Install.esd», но уменьшенного размера.

Редактирование ISO-образа Windows 10

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



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

Затем вставляем его в папку «sources» дистрибутива Windows 10.

Необходимо заменить оригинальный файл нашим.

Создание ISO-образа

Осталось сделать немного. Из папки, в которую скопировали содержимое оригинального дистрибутива Windows 10, и где произвели замену одного файла своим, опять создать ISO-образ. Для этого воспользуемся Windows ADK (Комплектом средств для развертывания Windows). Обычно он устанавливается вместе с ОС. Если же его нет, то можно скачать с сайта Microsoft и установить.

Запускаем среду средств развёртывания и работы с образами.

В открывшемся окне вводим команду:

Oscdimg /u2 /m /bootdata:2#p0,e,bI:\10\boot\Etfsboot.com#pef,e,bI:\10\efi\microsoft\boot\Efisys.bin I:\10 I:\Windows.iso

Поясним команду:

    • u2 — файловая система UDF,
    • m – образ не имеет ограничений по размеру,
    • b загрузочный сектор записать etfsboot.com , путь к файлу etfsboot.com при указании b(boot) пишется без пробела: bI:\10\boot\etfsboot.com,
    • I:\10 –указываем папку, в которой находятся файлы для создания образа,
    • I:\Windows.iso – указываем, что итоговый файл образа должен иметь имя Windows.iso и располагаться на диске I:.

После завершения операции на диске появится файл-образ дистрибутива Windows.iso.

Создаем загрузочный носитель

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

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

Установка ОС Windows 10

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

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

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

На сегодняшний день 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

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

Как уже говорилось ранее, Access не позволяет сделать исполняемый файл, способный работать без Access. Но в то же время, Microsoft предлагает для решения проблемы воспользоваться пакетом Microsoft Office Developer , в состав которого входит и лицензия на распространение программы Microsoft Access runtime . Остановлюсь на этом подробнее.

Программа Microsoft Access runtime - это версия Access, которая позволяет пользователям выполнять, но не модифицировать приложение Access. Устанавливать Microsoft Access runtime вместо полной версии есть смысл только в том случае, когда нужна лицензионная чистота, а у клиента, у которого исполняется Ваша база, нет лицензии на Access. В этом случае придется покупать ODE (Оffice Developer Edition). Тогда вместе с его покупкой Вы получаете некоторые дополнительные инструменты и самое главное ПРАВО устанавливать клиентам вместе с разработанной вами базой еще и Run-time версии Аccess. В этом случае к клиенту не будет притензий по поводу незаконного использования Аccess. Иначе каждому клиенту необходимо купить лицензию MS AАccess.

В пакет ODE входит "создатель дистрибутивов" который включает в диистибутив Вашу MDB и Run-time версию. Все библиотеки необходимые для создания Run-time уже есть в полной версии Аccess (даже без ODE). Но тут есть одно НО (это для тех, кого беспокоит лицензионная "читота"):

Если Вы его не купите официально, то у клиентов все равно не будет права использовать даже Run-time версию.

Может возникнуть такая мысль: А что, если узнать какие файлы нужны Access для работы и включить их в установочный дистрибутив? Можно, но это не решает проблемы с лицензией. К тому же придется создавать достаточно сложную программу установки с проверкой имеющихся компонентов и установкой/регистрацией отсутсвующих. Причем в последнем случае можно при неумелых действиях даже разрушить систему.

Вообще, если рассматривать реальные ситуации с продажей приложений на Access, то лишь немногие разработчики (речь идет о России) действительно покупают лицензионные пакеты. Как правило это те, для кого "при определенном уровне развития бизнеса вопрос покупать - не покупать теряет свою актуальность" - или говоря проще, кто может себе позволить купить лицензионный пакет за 600$ - 1000$. Интересно потом выслушивать их чертыхания на форумах по поводу работы таких программ. Насколько я понял там те же самые "косяки", что и в пиратских версиях. Поэтому призывать Вас использовать только бесплатные или пиратские версии Office для Ваших программ я не буду, но и рекомендовать пользоваться лицензионным тоже не стал бы (см. выше).

Интересно, что полную версию Access можно запустить в runtime - режиме, задав в командной строке ключ /runtime. Например, создайте на рабочем столе ярлык, кликнете по нему правой кнопкой мыши, в появившемся диалоговом окне в поле объект напишите примерно так: (это для Office 2000 - XP, а для 2003 нужно будет исправить вместо Office10 - Office11)

"C:\Program Files\Microsoft Office\Office10\MSACCESS.EXE" "D: \Базы\Моя База.mdb"/runtime

а в поле «Рабочая папка»:

Теперь запустим приложение через этот ярлык. Откроется окно проекта Access, но ярлыка Access, а так же стандартных панелей инструментов уже там не будет. Это и есть runtime - режим.

Для начинающих разработчиков распространение приложений Access через пакет Microsoft Office Developer вряд ли приемлемо. Ведь он стоит денег, и не малых. Мы рассмотрим другой способ, при помощи бесплатного инсталлятора Inno Setup . Есть конечно и другие как платные, например InstallShield , так и бесплатные инсталляторы. Различаются они по удобству работы, размеру создаваемого дитсрибутива.

Inno Setup - свободно распространяемый инсталлятор для программ Windows. Английские версии появились ещё в 1997, теперь Inno Setup переводится на несколько языков, а инсталляторы может создавать более чем на 20 языках. Inno Setup превосходит многие коммерческие инсталляторы по возможностям, стабильности и размеру создаваемых файлов.

Основные характеристики:

  • программа может сравнивать информацию о версии файла
  • перемещать используемые файлы
  • регистрировать DLL/OCX/FNT/TLB и типовые библиотеки
  • инсталировать шрифты
  • проверяет, активны ли определенные программы
  • создание ярлыков быстрого доступа (например, через старт-меню или на рабочем столе)
  • осуществление записи в ini-файлы
  • встроенная машина для написания скриптов на языке Pascal
  • поддерживает многоязыковую инсталяцию
  • инсталяция и деинсталяция по умолчанию
  • весь код доступен (Borland Delphi 2.0-5.0)
  • защита пароля для setup
  • в случае отмены во время исполнения, все действия будут приведены в исходное состояние
  • поддерживает все 32-х битные версии Windows (95, 98, 2000, 2003, XP, Me, NT 4.0)
  • создает создание одного файла exe, что значительно облегчает процесс инсталяции Вашей программы
  • стандартный интерфейс Windows 2000/XP
  • ориентирован на пользователя (например, полный, минимальный, пользовательский вариант)
  • все инструменты для деинсталяции
  • инсталирование файлов: встроенная поддержка "deflate", bzip2, 7-zip LZMA файлы сжатия

Так же начиная с версии 2.0.6 Inno Setup включает в себя полную поддержку для MBCS. В более ранние версии последнее свойство не входит. А вот Web-инсталяцию не поддерживает.

Особенность создания инсталлятора в Inno Setup - это то, что инсталляторы создаются при помощи скриптов - простых текстовых файлов ASCII, напоминающих.INI файлы. Скрипты редактировать легче, чем, например, работать с интерфейсом Installshield. Скрипты имеют расширение ".iss" (inno setup script). В нём указываются все параметры инсталлятора, и при установке, программа ассоциирует себя с этими файлами. Скрипт разделен на секции, имена которых пишутся в квадратных скобках . Внутри секций существуют ключевые слова и указания, которые компилятор может читать и выполнять.

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

; -- Sample1.iss --
; Demonstrates copying 3 files and creating an icon.

Порядок секций не имеет значения. Все они (за исключением ) являются произвольными. Ключевому слову значение присваивается при помощи знака равенства (=).

Указания состоят из одного или нескольких параметров и их опций, а также флагов flags . Параметр же в свою очередь состоит из имени, за которым следует двоеточие : и значения. Параметры, опции и флаги отделяются друг от друга точкой с запятой ;

Рассмотрим в кратце основные секции:

Секция

Значение

сoдержит указания по поведению инсталяционной рутины, а также, как это должно выглядеть. Ключевые слова AppName, AppVerName и DefaultDirName являются обязательными. Все остальные - по необходимости
Здесь содержатся файлы для setup
ярлыки (иконки)
Соотношение компонентов к типу инсталяционной рутины
разрешает создать новые пустые папки
делает записи в INI- файлы
первое действое при инсталяции, cистаксис соответствует секции
разрешает специфические изменения в тексте
делает запись в регист
выполняет другие программы после того как данные успешно были исталированы, но еще до того как будет закрыто диалоговое окно
разрешает дополнитекльные действия в setup
устанавливает тип setup-а
последняя операция при деинсталяции. Таким образом папки и/или файлы будут удалены
первая операция при деинсталяции. Систаксис соответствует секции
содержит информацию о языке. как правило, не используется

Inno Setup работает внутри скрипта с различными предопределеными константами, которые, как правило, содержат пути (path). Способ написания: {имя} . Некоторые константы, такие как {app} и {group} могут/должны быть предопределены пользователем. Тот, кто сам желает определить константы, должен обратиться к припроцессеру Алекса Якимова (Alex Yackimoff).

Вот основные константы Inno Setup:

константа

пример

{win} путь в директорию/папку Windows C:\Windows
{sys} путь в системную папку Windows, в частности папку System32 C:\Windows\System или C:\Windows\System32
{app} путь к собственной аппликации (программе)
{pf} путь к программной папке C:\Programme
{cf} путь к общим данным C:\Programme\Gemeinsame Dateien
{dao} cоответствует{cf}\Microsoft Shared\DAO C:\Programme\Gemeinsame Dateien\Microsoft Shared\DAO
{src} путь к папке инсталявионной рутины, в момент выполнения setup R:\
{group} группа программ для стартового меню

Итак, рассмотрим задачи, которые нужно решить (определим только минимальные). Наш инсталлятор должен сделать следующее:

Распаковать файлы в нужные места
Создать папку в каталоге программы (папка «Коп» - для хранения резервных копий базы)
Создать меню запуска приложения в Пуск - Все программы, а так же иконку на рабочем столе

Это необходимый минимум. Но, разумеется, это далеко не все возможности Inno Setup. Ведь не зря его используют многие разработчики. Но в данной статье я ограничусь только этим, желающие глубже изучить возможности программы могут обратиться к справочной системе. В Интернет есть множество ссылок как на программу, так и на переводы справки. Например, Inno Setup 5.1.6. и справку к нему Вы можете скачать здесь… Английский сайт программы http://www.innosetup.com

Для начала попробуйте поэкспериментировать, создавая инсталлятор при помощи мастера, а затем изучая структуру полученного скрипта. В принципе, я думаю нет нужды подробно описывать, что где нажимать. Inno Setup настолько прост в освоении, что без проблем изучается, что называется «методом научного тыка». Вот например скрипт инсталятора, который делает определенные ранее задачи (все файлы дистрибутива находятся в каталоге D:\Setup.)


AppName=Моя программа
AppVerName=Моя программа. Версия 1.0.
AppPublisher=MyProgram, Inc.
AppPublisherURL=http://MyMySoft.ru/
AppSupportURL=http://MyMySoft.ru/
AppUpdatesURL=http://MyMySoft.ru/
DefaultDirName={pf}\MyProgram
DisableDirPage=no
DefaultGroupName=Моя программа
DisableProgramGroupPage=yes
LicenseFile=D:\Setup\license.txt
InfoAfterFile=D:\Setup\readme.txt
AlwaysCreateUninstallIcon=yes


Name: "desktopicon"; Description: "Создать ярлык на &Рабочем столе"; GroupDescription: "Дополнительные ярлыки:"


Source: "D:\Setup\Сервер.mdb"; DestDir: "{app}"; DestName: "Сервер.mdb";
Source: "D:\Setup\license.txt"; DestDir: "{app}";
Source: "D:\Setup\readme.txt"; DestDir: "{app}";
Source: "D:\Setup\Log.JPG"; DestDir: "{app}";
Source: "D:\Setup\Log.ico"; DestDir: "{app}";
Source: "D:\Setup\База.mdb"; DestDir: "{app}";


Filename: "{app}\MyProg.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://MyMySoft.ru/"


Name: "{app}\Коп"


Name: "{group}\Моя программа"; Filename: "{app}\База.mdb" ;WorkingDir: "{app}";IconFilename:{app}\Log.ico
Name: "{group}\Сайт программы"; Filename: "{app}\MyProg.url"
Name: "{userdesktop}\Моя программа"; Filename: "{app}\База.mdb" ;WorkingDir: "{app}"; IconFilename:{app}\Log.ico;Tasks: desktopicon

Пример, как это все работает, Вы можете скачать ниже.

  • Обратиться в "Интерфейс" за дополнительной информацией/по вопросу приобретения продуктов

Файлы для загрузки

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

Я хочу создать ОС на базе 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 Мб. Но это уже совсем другая история.



Загрузка...