Как сделать сборку linux

Live-build

Back in 2012, I was trying everything I could do to get a customised Live CD put together so that I could start installing Debian on other PC’s. I spent a long time learning how to use Live build, and I tweaked it so that I could make a Live CD with about 95% of the apps and config I wanted. But then how about updating the Live CD? It required another build process over the internet that could take hours (it’s a lot faster with apt caching though).

But what if you install a heap of apps that a user will want to remove? That could be a waste of time. Better, I think, to make a basic Live CD to install a base system with the bare minimal needed for a desktop and internet connectivity, and then install other packages later on, per user requirement. You could even include some guides to installing software.

If you want to install with a much larger choice of software ready to go, it would be better to build that system in a real desktop, with all your menus and other tweaks, and then run refractasnapshot (see my system backup page) on it, to make a Live CD from the installed system.

So my strategy would be: 1. Initially, Netinstall/Server ISO or Live Build or Debootstrap followed by system backup with dd — minimal base install (easy to keep cleaning and re-building it) 2. Later, Refractasnapshot — a grander Live CD with much more choice installed.

1. install

2. Congfigure the live cd build

The command is run with options to build what you want:

The «chroot» mirror is where packages will come from and the «binary» is what the Live CD will be set to (chroot mirror should default to —mirror-bootstrap). See http://manpages.ubuntu.com/

The 686 flavour with amd64, is essential for the live installer to work, or else you will just have a Live CD without installer, so the man page says.

Or use an auto script All config options can be put into an auto script so that you only need to run `lb config` and the options are set from the script. http://live-systems.org/manual/.

edit auto/config to look something like this -adapt to your preference, with amd64/686 or whatever. Here’s how it looks with my example 3,

The script is read when lb config is run. but you may need to run `lb config —conffile auto/config`

I set the mirrors to devuan and lb config still set up for a Debian Jessie build. So following that you will need to edit the files in config/ to enable a devuan build.

config/binary LB_BOOTAPPEND_LIVE=»boot=live components keyboard-layouts=us,us keyboard-variants=colemak username=bob»

to set the keyboard to colemak and change username for live

The proxy line is for Apt-cacher-ng APT proxy.

Note: to speed up the process and avoid downloading all the packages again and again with each new build attempt, it is highly recomended that you set up a good APT caching proxy that live-build will retrieve packages from (and being downloaded already through the proxy they are kept in the proxy cache to be retrieved much faster the next time).

See my APT proxy page for notes how to do that.

3. Add package name lists before the build

su to root and run these in the build directory, to create lists which will be used to install whatever you need added to the build:

First of all, those needed for successful build as some are possibly excluded by the «no-recommends» option, and the dependencies for live-build (need to be installed into the chroot system before creation of the squash filesystem and ISO).

then do either 1. minimal LXDE install

or 2. plain openbox install The problem with a plain -no DM- install is that the live ISO may have problems at login or launching Xorg. So it might be advisable to add a DM, such as lightdm.

If you are making a Live CD for a basic install (further packages to be added post-install) then no point in making the build too complex or over-sized, and I would leave it at that.

but if you have ny othe specific areas of packages needed, such as samba, then you can create more package lists like these.

4. Add other/customised packages

You can put .deb archives in config/packages.chroot, such as any packages made from source (compton, checkinstall etc)

Some packages might snag the chroot stage, giving an error such as: /usr/bin/env: ‘gpg’: No such file or directory

Therefore it was necessary to pin it to the experimental repository, with all other packages defaulting to the config repository, like this

add this content

Omit a package from the build -say, if it is a recommended package or installed by a metapackage, you give it a negative Pin-Priority in config/apt/preferences, see: . /customizing-package-installation.en.html#466

5. Add files to be included in the Live cd

If you’d like to customize the Live CD environment, with autostart, no recommends files etc, you simply add the files to config/includes.chroot directory with the same dir tree as they need in a real file system.

  • apt files > config/includes.chroot/etc/apt
  • LXDE autostart file > config/includes.chroot/etc/xdg/lxsession/LXDE
  • openbox files > config/includes.chroot/etc/skel/.config/openbox
  • ranger files > config/includes.chroot/etc/skel/.config/ranger
  • home dot files > config/includes.chroot/etc/skel

Set groups for the Live user make a file and fill with [include whatever groups you require]

6. Building the live cd

The iso file will be created (if successful) in the «my_live_build» directory, which just needs (renaming and) burning to disk or sending to a usb stick.

remember that to login the live CD, user=user, passwd=live

You can make a live build from your installed system with (haven’t tested it myself) But this won’t build a devuan system

Build Notes

  • if a build has been interrupted, lb build might fail, if so do but it will clean out the cache!

Another error I had was aptitude failing to download packages and reporting:

E: Cannot get debconf version. Is debconf installed?

  • No ext3 or ext4 partitioning option! So I had to select «Use free space automatically». this made ext4 partitions for / and /home and a swap of 4Gb. Later, with Gparted, I removed the /home and swap partitons and made new ones (smaller). After booting the system, and logging in as root, /etc/fstab needed making and /dev/sda? mounting to /home. Then I could log in as my user.
  • with one install I still couldn’t log-in the user, so logged in as root, deleted that user with deluser bob and then added it again with adduser bob , and bob was then added to /home and I could log-in
  • GRUB did not install and, as I was installing to a Win7 machine and needed it to dual-boot, I used Super Grub (Rescatux) to boot the new OS, then I ran
  • Grub Recover CD does a good job too, automatically searches for OS and installs GRUB with options -see my GRUB page
  • In fact, if I attempted GRUB install the installer terminated early without finishing (set up users and passwords etc) so I found I had to use the «Go back» button at Configure Mirrors stage in order to select «Continue without installing GRUB».

Simple-CDD

Статья Простой способ создания дистрибутива Linux на базе Debian с установленными приложениями и обновлениями на примере Linux Mint

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

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

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

Теперь переходим на вкладку Actions: Нажимаем кнопку Dist. Появится окно: image Жмем ОК. Появится окно: Всё, теперь можете спокойно и не торопясь попить чай или кофе. Минут через 15 — 60 (всё зависит от мощности ПК) появится сообщение: Поздравляю Вас с первой Вашей сборкой! Файл сборки находится по адресу /home/remastersys/remastersys и имеет то имя, которое Вы дали своей сборке. В моем случае это файл 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. Если вы видите похожее на следующее:

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

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

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. Я постарался максимально понятно написать комментарии к строкам. Почти вся информация в интернете на английском языке и очень краткая, поэтому много времени потратил на эксперименты, чтобы узнать, что и как работает.

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

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

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

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

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

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

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

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

6. СОВЕТЫ И РЕКОМЕНДАЦИИ

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

Как создать свою сборку Linux?

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

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

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

Есть еще инструмент для резервного копирования и создания собственных пользовательских образов — Systemback, но он тоже не поддерживается, и в 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, выполните следующие команды в терминале:

Как создать пользовательскую сборку 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»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Установка прошла успешно, и в целом система работает как будто я ее скачал с официального сайта.

Ссылка на основную публикацию
Похожее