Как создать свой дистрибутив линукс. Как собрать свой дистрибутив Linux. Приступая к работе

Для Windows 10.03.2019
Для Windows

Сегодня давайте обсудим, как создать пользовательскую сборку 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 Мб. Но это уже совсем другая история.

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

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

Для создания дистрибутива используется пункт меню «Разработка | Дистрибутив конфигурации» главного меню. При вызове этого пункта меню появится пошаговый диалог, в результате которого будет создан дистрибутивный пакет.

Шаг 1. Здесь Вам необходимо выбрать нужную конфигурацию из списка и нажать Далее > для продолжения создания дистрибутива.

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

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

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

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

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

Шаг 2. Здесь необходимо установить версию конфигурации. Название конфигурации и номер ее версии играют важную роль. Название конфигурации проверяется при ее установке. Программа помнит, какие конфигурации, и каких версий ставились. Установить ту же конфигурацию, но более ранней версии программа не позволит, а выведет сообщение об ошибке:

Устанавливаемая конфигурация имеет более старую версию, чем та, что уже установлена у Вас.

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

Это обновление уже устанавливалось ранее. Продолжить?

Для продолжения нажмите Далее > , а для возврата к Шагу 1 - < Назад .

Шаг 3. Здесь Вы можете установить дополнительные параметры дистрибутива. В графе Версия указывается версия программы (исполняемого модуля), на которой может работать эта конфигурация. Если при установке выяснится, что версия программы ниже, то будет выведено сообщение об ошибке:

Для обновления и правильной работы конфигурации необходима более новая версия программы (исполняемого модуля).

После этого установка будет остановлена. Также здесь можно установить следующие опции:

Упаковать дистрибутив - по умолчанию включена. Это означает, что все файлы дистрибутива будут помещены в архив (файл с расширением pak ). Без этой опции файлы не будут упаковываться и займут больше места.

Шаг 4. При установке обновления можно сделать так, чтобы программа дополнительно выполнила определенные SQL-скрипты при обновлении, до и после изменения структуры базы данных. Рекомендуется чтобы скрипты имели явное указание на кодировку, диалект, терминальный символ и т.д.

Пример:

SET NAMES WIN1251;

SET SQL DIALECT 3;

SET AUTODDL ON;

SET TERM ^;

Помимо стандартных SQL-запросов, скрипты могу содержать следующие служебные запросы:

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

ERROR_ON - включает выдачу ошибок, отключенную при помощи ERROR_OFF .

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

Если в каталоге с файлом скрипта *.sql содержится файл с таким же именем с расширением *.blb, программа считает его бинарным файлом с блобами для скрипта и также включит его в дистрибутив. Только один из скриптов (либо до, либо после изменения структуры) может иметь файл с блобами.

Нажмите Готово для создания дистрибутива.

Важно знать.

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

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

3. Архив конфигурации может быть распакован и заново запакован при помощи утилиты ARC . Если необходимо сделать сложные преобразования данных, не укладывающиеся в существующие возможности программы по созданию дистрибутивов, редактирование пакета обновления может быть произведено вручную (см.

Прежде чем делать свою сборку, Вы должны определить цель и задачи своего творения. Иначе сборка может не получить своё предназначение в этом мире и остаться малоизвестной.Итак, цели и задачи определены и Вы решились сделать сборку своей системы.
Для начала Вы должны либо в Virtualbox (или в другой виртуальной машине), либо у себя на компьютере установить операционную систему со всеми настройками, со всеми программами, которые считаете нужными иметь в Вашей сборке.
Теперь, когда всё настроено и установлено, будем создавать свою сборку. Для этого нам в первую очередь необходимо свободное место на разделе с папкой /home не менее 6 ГБ.
Для создания сборки есть несколько инструментов. Мы будем говорить о Remastersys , который позволяет создать полноценную сборку даже не очень продвинутому пользователю.
Все действия дальше описаны для Ubuntu, но подходят для всех Debian совместимых дистрибутивов.

1. УСТАНОВКА

Для установки Remastersys необходимо скачать и установить вручную, например, через программу gdebi, 2 пакета: remastersys_3.0.x-2_all.deb и remastersys-gtk_3.0.x-2_all.deb
Для Ubuntu 10.04 - 14.04 скачать отсюда
Для Ubuntu 16.04 - 17.04 скачать отсюда
Для Ubuntu 17.10 скачать отсюда
Для Ubuntu 18.04 скачать отсюда

2. ПЕРВЫЕ ШАГИ

Запускаем Система ⇒ Администрирование ⇒ Remastersys (Я использую Мате 1.6. С другими рабочими столами расположение может отличаться). Видим вот такое окно:

Коротко об основных кнопках:
Backup - полная резервная копия установленной системы, включая пользовательские данные и настройки. Сохраняется полностью все файлы в домашних каталогах пользователей системы.
Dist - резервная копия только установленной системы, БЕЗ пользовательских данных. Самый оптимальный вариант для создания сборки системы. Создается структура загрузочного диска и образ диска(iso).
Distcdfs - то же, что и Dist, но создается структура загрузочного диска без создания образа диска(iso).
Distiso - создает образ диска(iso), при условии готовой структуры загрузочного диска. Применяется только после Dist или Distcdfs.
Очистить - очистить временную папку программы. Используется для очищения папки перед созданием нового образа.

Переходим во вкладку Settings:


Здесь мы видим параметры нашей будущей сборки. Рассмотрим самое необходимое.
Username - имя пользователя по-умолчанию при входе в систему LiveCD.
CD Label - метка диска. Высвечивается название при загрузке диска в CD-привод. Ограничение 32 символа, учитывая пробелы.
Filename - имя файла созданного образа.
Остальное пока трогать не будем.
Итак зададим:
- Имя пользователя в строке Username, скажем, alex ;
- Придумаем название нашей сборки и запишем в CD Label, допустим, AlexBuntu ;
- В строке Filename запишем имя файла сборки, AlexBuntu-12.04-x32.iso.
Должно получится следующее:


Галочка в строке Show install icon on Backup mode desktop создает иконку установки Вашей системы на рабочем столе. Опция работает на всех основных рабочих столах.

Теперь переходим на вкладку Actions:

Нажимаем кнопку Dist. Появится окно:


Жмем ОК. Появится окно:


Всё, теперь можете спокойно и не торопясь попить чай или кофе. Минут через 15 - 60 (всё зависит от мощности ПК) появится сообщение:


Поздравляю Вас с первой Вашей сборкой!
Файл сборки находится по адресу и имеет то имя, которое Вы дали своей сборке. В моем случае это файл AlexBuntu-12.04-x32.iso . В этой же папке есть еще текстовый файл контрольной суммы образа с расширением md5, в моем случае файл AlexBuntu-12.04-x32.iso.md5 .
Теперь Вы можете записать свою сборку на диск и насладиться своим творением. Возможно при входе в систему с LiveCD придется ввести имя пользователя, которое было выбрано при создании образа, в моем случае это alex . Пароль оставьте пустым.

3. РАСШИРЕННЫЕ ВОЗМОЖНОСТИ

Многих устроят выше описанные главы. Если Вы всё еще читаете, то Вы действительно хотите познать все тонкости создания сборки, приближенной к профессиональной.
В первую очередь коснемся вкладки Settings и рассмотрим остальные нужные строки.
Working directory - рабочая папка программы. Вы можете ее переназначить в любое место и на любой раздел.
Ну и самая важная строчка настроек Squashfs options .
Remastersys использует для создания дистрибутива возможности SquashFS. Чтобы понять весь смысл данной строки предлагаю Вам рускоязычный блог , в котором прекрасно изложен весь смысл этого мощнейшего инструмента.
После изучения всех возможностей добавим в нашу строчку Squashfs options следующие опции: -comp xz .
Строчка должна иметь вид:

Эта опция устанавливает алгоритм компрессии xz вместо gzip по-умолчанию, что сожмет нашу сборку примерно на 20-25% лучше.Эта опция доступна с версии squashfs 4.2 и, например, в Ubuntu 10.04 она не доступна. В версии Ubuntu 12.04 установлена нужная версия 4.2 squashfs.
Чтобы проверить, доступна ли эта опция, наберите в терминале mksquashfs . Если вы видите похожее на следующее:

mksquashfs
SYNTAX:mksquashfs source1 source2 … dest [-e list of exclude dirs/files]

Filesystem build options:
-comp select compression
Compressors available:
gzip (default)
lzo
xz

то всё в порядке и использовать опцию -comp xz можно смело.

С версии 3.06 включение компрессии xz вместо gzip заменено на вкл./выкл. флажка

4. ЗАГРУЗОЧНОЕ МЕНЮ

По-умолчанию Remastersys создает загрузочное меню сборки довольно-таки скучное и однообразное. Одно только радует, что меню достаточно функциональное. Я долго искал простой способ включения своего меню без пересборки всего образа. Все дальнейшие действия не были задуманы авторами Remastersys и являются своего рода моими уловками и обходными способами, к которым я шел несколько месяцев различными экспериментами. Поэтому этот раздел не претендует на правильную инструкцию по Remastersys.
Итак. Вот такое загрузочное меню мы имеем в стандартной установке:


Вот такое меню можно получить после некоторых манипуляций:


Такое загрузочное меню используется в одной из моих сборок. Как видим, картинка изменена и меню русифицировано. Кроме всего прочего я убрал название дистрибутива из меню и написал его в GIMPe яркими красками. Сейчас мы с Вами и займемся заменой картинки и русификацией меню. Для этого нам потребуется обратить внимание на содержимое файлов в папке /home/remastersys/remastersys :


Здесь нас интересует папка ISOTMP. В этой папке хранятся временные файлы программы Remastersys. Этим мы и воспользуемся. Переходим в эту папку:


Структура данной папки очень похожа на структуру образа диска. Не хватает только папки.disk. В папке isolinux хранятся файлы загрузочного меню. Заходим в нее:


Рассмотрим файлы загрузочного меню:
splash.png - фоновое изображение. Размер изображения 640х480 точек на дюйм.
isolinux.cfg - конфигурационный файл загрузочного меню.
vesamenu.c32, isolinux.bin - системные файлы.
Смело меняем фон загрузочного меню на свой. Тип файла и название должно остаться таким же. Размер изображения обязательно 640х480 точек на дюйм.
Далее я выложил листинг отредактированного конфигурационного файла isolinux.cfg. За основу взят стандартный конфигурационный файл Remastersys. Я постарался максимально понятно написать комментарии к строкам. Почти вся информация в интернете на английском языке и очень краткая, поэтому много времени потратил на эксперименты, чтобы узнать, что и как работает.

Default vesamenu.c32 prompt 0 timeout 100 font cyr_a8x16.psf # Фон загрузочного меню menu background splash.png # Цвет имеет первые два регистра прозрачности значение от 0 (прозрачно) до 255 (непрозрачно) в HEX. # Остальные 6 цифр цвет в режиме HEX (код цвета можно взять из GIMPa). Сначала пишется цвет букв, потом фона, потом 3 режима тени (none, std, all) # Цвет заголовка menu color title * #ff00923F #00000000 none # Цвет оконтовки меню (бордюра) menu color border * #00000000 #00000000 none # Цвет выбранной строки меню menu color sel * #7fffffff #00000000 none # Цвет невыбранной строки меню menu color unsel * #ffC4613B #00000000 none # Цвет неактивной строки (отключенной но отображающейся на экране) menu color disabled * #ffC4613B #00000000 none # Цвет строки tabmsg расположенной под меню (с надписью Нажмите ENTER для загрузки или TAB для редактирования меню) menu color tabmsg * #ffCC623E #00000000 none # Цвет строки timeout (с надписью Автоматическая загрузка начнется через) menu color timeout_msg * #ffCC623E #00000000 none #Отступ с верху, строк menu vshift 1 #Количество строк меню menu rows 6 # Положение строки tabmsg menu tabmsgrow 11 # Положение строки timeout menu timeoutrow 12 menu AUTOBOOT Автоматическая загрузка начнется через # сек menu tabmsg Нажмите ENTER для загрузки или TAB для редактирования меню menu cmdlinerow 11 #Ширина меню, количество символов menu width 80 #Отступ символов слева от края (как табуляция) menu margin 12 #menu title Ubuntu 12.04 Desktop Mate 1.6 label live # menu label live - boot the Live System menu label Загрузить систему с LiveDVD диска kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz quiet splash -- label install menu label Установить Ubuntu 12.04 LTS Mate 1.6 kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper only-ubiquity initrd=/casper/initrd.gz quiet splash -- # Сделать строку меню не активной # menu disable label check menu label Проверить диск на ошибки kernel /casper/vmlinuz append boot=casper integrity-check initrd=/casper/initrd.gz quiet splash -- label memtest menu label Проверить память kernel /install/memtest append - label hd menu label Загрузиться с первого жесткого диска\\ localboot 0x80

Кодировка файла isolinux.cfg должна быть обязательно CP 866. Можно сохранять и редактировать в Cooledit (текстовый редактор Midnight Commandera), в OpenOffice и др. Взять мой отредактированный файл isolinux.cfg можно .
Кроме этого нужно положить в папку isolinux шрифты поддерживающие русский язык. Взять можно отсюда .
В папке должно получится следующее:


Проверьте права доступа файлов должно быть следующее для всех 5 файлов:


Теперь все приготовления закончены. Запускаем Remastersys:

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

5. ОЧИСТКА СБОРКИ ОТ "ЛИШНЕГО"

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

Sudo apt-get autoremove sudo apt-get clean

Первая команда автоматически удалит все неиспользуемые пакеты.
Вторая команда удалит скачанные файлы пакетов в архиве.

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


Здесь же в этой группе фильтров удалите пакеты под фильтром «Установленные (авто удаляемые)«
Если фильтры «Не установленные (остались файлы настроек)» и «Установленные (авто удаляемые)» отсутствуют, значит система уже прошла чистку и под данные фильтры ничего не попадает.

Следующий инструмент очистки - программа BleachBit из стандартного репозитория. Интерфейс программы на русском языке, очень доступен для понятия, что Вы будете делать. Также перед очисткой есть кнопка «Предпросмотр», которая покажет, что будет удаляться, и позволяет сделать изменения до удаления. Программа очень эффективно чистит систему от ненужных файлов, а также умеет удалять неиспользуемые языковые файлы. В моей сборке программа удалила около 300 МБ.


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

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

С версии 3.06 и выше временные файлы удаляются автоматически

/var/backups
/var/cache/apt/ - не удалять папку archives
/var/cache/apt/archives
/var/cache/apt-xapian-index
/var/cache/flashplugin-installer
/var/crash
/var/lib/apt/lists - не удалять папку partial и файл lock
/var/lib/update-notifer/ - не удалять папки package-data-downloads и user.d
/var/lib/update-notifer/package-data-downloads - не удалять папку partial и файл lock
/var/lib/update-notifer/user.d - удалять все файлы обязательно, иначе выдает окно ошибки
/var/tmp

Remastersys в начале установки копирует содержимое папки /var в свою временную папку , откуда потом и включает в сборку файлы. Учитывая, что после копирования Remastersys проводит еще подготовительные операции, у нас есть примерно 5 минут удалить лишнее из папки /home/remastersys/remastersys/dummysys/var . Тем более, что даже, если мы удалили из папки /var/cache/apt файлы, они всё-равно создаются и копируются в папку /home/remastersys/remastersys/dummysys/var/cache/apt , утяжеляя сборку.
В эти же 5 минут у Вас есть возможность почистить папку /root . В ней оставляйте только те файлы, которые есть в папке /etc/skel и папку Desktop.

    Настройки новых пользователей хранятся в папке /etc/skel . Если Вы хотите, чтобы все пользователи имели какие-то одинаковые настройки отличные от по-умолчанию(дефолтных), то копируйте нужные файлы из своей папки /home/[ваш логин входа в систему] в эту папку, не забывая менять права со своих на права root. Всё подряд копировать туда не нужно, это может привести к определенным конфликтам. Обычно для каждой программы это 2-3 файла настроек. Помните, чем меньше вы туда скопируете, тем профессиональнее будет сборка и меньше проблем у пользователей.

    Программы запуска для всех пользователей отредактировать, добавить, удалить лучше в папке /etc/xdg/autostart , не засоряя папку /etc/skel

    Если Вы хотите сделать сборку с рабочим столом отличным от имеющегося в дистрибутиве, то лучше воспользоваться минимальной сборкой без графического окружения, включающей в себя ядро и самый минимум пакетов, который позволяет запускает систему в режиме консоли. И уже поверх этой системы доустанавить нужные пакеты и проводить нужные настройки. Такой метод имеет меньше ошибок, чем если брать готовую полную сборку и пытаться выпилить из нее ненужное.
    Здесь все возможные mini.iso для Ubuntu от релиза 12.04 до 16.04 https://help.ubuntu.com/community/Installation/MinimalCD

Удачи! И пусть мир узнает Ваши творения!

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

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

Создаем дистрибутив Windows 7 с включенными в него обновлениями

Чтобы выполнить эту работу, понадобится компьютер с установленной «чистой» ОС Windows 7. Можно воспользоваться виртуальной машиной, чем мы и воспользуемся. Создадим ее в VirtualBox, для чего сначала проинсталлируем ее.

Теперь надо создать виртуальную машину, содержащую Windows 7. Понадобится виртуальный диск формата VHD.

Теперь надо проинсталлировать Windows 7 на созданную виртуальную машину.

После успешной установки надо в созданной системе создать раздел «D», на котором впоследствии мы создадим install.wim – файл-образ системы. Для этого следует воспользоваться «Управлением дисками».

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


Теперь надо перезагрузить установленную систему и установить еще одно обновление — Windows6.1-KB3102810. В зависимости от того, какая система была проинсталлирована, 32-х или 64-х разрядная, надо скачать соответствующее обновление.



Теперь надо опять перезагрузить систему. При запуске появится сообщение о процессе установки обновлений.

.

После того, как система, наконец, загрузится, надо открыть «Панель управления».

Затем зайти в раздел «Система и безопасность».

Если режим обновления был выключен, то следует нажать кнопку «Включить автоматическую установку обновлений». Запустится процесс поиска на сайте Microsoft обновлений для установленной версии Windows, и скачивание их.

Если скорость вашего интернет-канала стабильная и высокая, то процесс загрузки не должен занять много времени. Наверняка не более 20-30 минут. После загрузки всех обновлений надо нажать кнопку «Установить обновления».

Появится окно с требованием ознакомиться с лицензионным соглашением. Соглашаемся и нажимаем кнопку «Готово».

Теперь начнется процесс установки обновлений.

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

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

Когда все будет выполнено, система перезагрузится.

Теперь Windows содержит все обновления. Чтобы убедиться в этом, можно заглянуть в журнал обновлений. Его найти можно по адресу «Панель управления»->«Система и безопасность»->«Центр обновления Windows»->«Просмотр журнала обновлений.

Теперь необходимо правильно вычистить папку C:\Windows\WinSxS, в которой хранятся резервные копии системных файлов системы. Очистка этой папки позволит сделать компактным дистрибутив системы, исключив из него лишнее.

Выполнить это можно, например, использовав встроенное средство «Очистка диска». Делать это следует только после установки пакета SP1 и обновления KB2852386. Последовательность действий такова: нажать «Пуск»->«Компьютер». Затем надо выделить диск «С», нажать на нем правую кнопку мыши, в появившемся меню выбрать раздел «Свойства».

В открывшемся окне на вкладке «Общие» нажать кнопку «Очистка диска».

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

После завершения анализа нажать на кнопку «Очистить системные файлы».

Теперь последовательно нажать кнопки «Ок» и «Удалить файлы».

Следующий шаг – включение пользователя «Администратор», неактивного по умолчанию, и удаление текущего профиля пользователя.

Надо открыть командную строку с правами администратора.

В открывшемся окне ввести «net user Администратор /active:yes».

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

В окне выбора пользователя надо нажать на иконку, принадлежащую пользователю «Администратор».


После того, как загрузится профиль и появится привычный рабочий стол, необходимо пройти по адресу «Панель управления»->«Учётные записи и семейная безопасность»->«Учётные записи пользователей».



В открывшемся окне со списком пользователей выделить тот профиль, под которым устанавливали все обновления.

Теперь надо эту четную запись удалить, для чего нажать ссылку «Удаление учётной записи».

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

В ответ на подтверждение нажать «Удаление учётной записи».

Профиль удалится, и в списке останутся только «Администратор» и гостевая учетная запись.


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

Надо ввести команды:

  1. cd \Windows\system32\sysprep
  2. sysprep

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

При этом система завершит работу.

Теперь можно загрузить виртуальную машину, используя дистрибутив какой-либо другой версии ОС. Воспользуемся Windows 8.1. Необходимо нажать «Shift» + «F10» когда появится начальное окно, чтобы вызвать командную строку. Надо точно знать букву диска, на котором установлена ОС, т. к. в процессе предустановки маркировка диска может отличаться от «С». В командной строке ввести команду «notepad» и затем нажать «Enter». Откроется «Блокнот». Выбрать пункт меню «Файл» и затем «Открыть».

Откроется окно, в котором нажать на значок «Компьютер». Можно увидеть, что диск «C» занят служебным разделом. Тогда следует зайти на диск «D». В нем увидим файлы ОС Windows 7.

Надо зайти в папку «Пользователи», чтобы быть уверенным, что никаких пользователей, кроме «Администратора», там нет.


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

Dism /Capture-Image /ImageFile:E:\install.wim /Capturedir:D: /name:7update /compress max

С помощью этой команды произойдет архивация Windows 7 в файл-образ WIM, расположенный на диске «E».


Размер получившегося файла составляет примерно 4.74 Гб. Уменьшить его можно, если использовать установочный образ, например, Windows 8.1. Понадобится такая полезная функция, как сжатие в формат ESD.

Теперь надо выключить виртуальную машину, которую до сих пор использовали. Т. к. мы использовали виртуальный диск VHD, то теперь надо смонтировать его в основной ОС, воспользовавшись оснасткой «Управление дисками». Открыв это окно, нажать «Действие»-> «Присоединить виртуальный жёсткий диск».

Затем нажать «Обзор».

Воспользовавшись «проводником», найти виртуальный диск VHD, выделить его и нажать «Открыть».

Затем нажать «Ок».

В списке дисков появится новая запись. Этому разделу надо присвоить букву, любую из свободных. Мы присвоим «F».

Теперь в проводнике можно зайти на диск «F». В нем должен находится файл с образом системы Windows 7.

Теперь на этом диске надо создать папку с любым именем, например, «7».

В эту новую папку надо поместить необходимые установочные файлы.

После завершения копирований из папки «F:\7\sources» надо удалить файл «install.wim».

На его место поместим наш собственный файл с таким же именем, расположенный в корне того же диска «F».

Проверяем, что в папке «F:\7\sources» этот файл теперь есть.

Теперь надо скачать программу «WinToolkit 1.5», разархивироваться и запустить. Для работы программы необходимо наличие пакета «NET Framework 3.5». Если он не установлен, то программа предложит сделать это.

Когда программа проинсталлировалась, то запустить ее, нажать «Basic» в главном окне, и после этого «ISO Maker».

Программа попросит указать путь к дистрибутиву. Указываем «F:\7».

Откроется «Проводник», в нем выделить папку «7» и нажать «Выбор папки».

Теперь надо указать место, где будет храниться созданный дистрибутив в виде ISO-образа.

В окне открывшегося «Проводника» выбрать нужный диск. Пусть это будет тот же диск «F», а самому образу можно дать любое название, например, «Windows7».

Теперь осталось нажать на кнопку «Create ISO».

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


После завершения появится окно, уведомляющее об успешном создании образа. Нажать «Ок».

Осталось совсем немного. Для начала убедимся, что образ действительно существует, открыв диск «F».

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



Рекомендуем почитать

Наверх