Сборка образа Manjaro с помощью buildiso

From Manjaro Linux
Revision as of 21:54, 15 January 2017 by Jacobtey (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Это подробное руководство для начинающих о том, как собрать и при желании изменить образы Manjaro ISO.

В качестве основного примера в данном руководстве использован вариант Manjaro Openbox. Тем не менее доступно множество преднастроенных профилей Manjaro ISO: cinnamon, enlightenment, gnome, i3, kde, kde5, lxde, lxqt, lxqt-openrc, mate, net, net-minimal, netbook, net-openrc, openbox, openbox-legacy, pantheon, pekwm-openrc, xfce, xfce-minimal и xfce-openbox-openrc.


Подготовка

Прежде всего необходимо установить ядро linux44 и выше.

Рекомендовано также установить последнюю версию Manjaro Distribution.

Установка manjaro-tools-iso

Сначала следует установить следующие пакеты.

  • manjaro-tools-base
  • manjaro-tools-iso
  • manjaro-efi-shell
  • manjaro-isolinux

Установка manjaro-tools-iso-profiles

Также необходимо установить пакет профилей manjaro-iso-profiles с помощью пакетного менеджера.

Можно выбрать один из трех профильных пакета manjaro-iso-profiles.

  • manjaro-iso-profiles-official
  • manjaro-iso-profiles-minimal
  • manjaro-iso-profiles-community

В примере будет выбран пакет manjaro-iso-profiles-official, содержащий XFCE, чтобы доходчиво объяснить порядок действий.


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

Дайте собственное название своей сборке Manjaro

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

/usr/share/manjaro-tools/isolinux/gfxboot.cfg

Найдите product=Manjaro Linux и измените значение Manjaro Linux на любое понравившееся.

Пример:

; Sections are read in the order given in base::layout, with section 'base'
; implicitly added at the end. If a config value is given more than once,
; the first entry wins.
;
; If a screen resolution can't be set, 640x480 is used as fallback (and
; section '640x480' added to the layout list).
;
; Setting livecd=1 implicitly adds section 'live' to the layout list.
;
; Color values: 24 bit RGB (e.g. 0xff0000 = red).
;

[base]
; theme name
theme=artwork-gfxboot
; product name
product=ВВЕДИТЕ СВОЕ НАЗВАНИЕ СБОРКИ MANJARO СЮДА
; other sections to read
layout=800x600,live,install
; sound volume (0..100)
volume=70
; menu background transparency (0..255)
menu.transparency=0x0
; default font
font.normal=16x16.fnt
; main menu font
font.large=16x16.fnt
; max. visible main menu items
mainmenu.entries=8
; minimal main menu selection bar width
mainmenu.bar.minwidth=300
; main menu selection bar transparency (0..255)
mainmenu.bar.transparency=0
; main menu colors
mainmenu.bar.color=0xffffff
mainmenu.normal.fg=0xffffff
mainmenu.selected.fg=0x000000
; boot option colors
bootopt.label.fg=0xffffff
bootopt.text.fg=0xffffff
; progress bar color
progress.bar.color=0x295202
; menu colors
menu.normal.bg=0xd8deed
menu.normal.fg=0x000000
menu.normal.alt.fg=0x606060
menu.selected.bg=0x6c6c6c
menu.selected.fg=0xffffff
; window colors
window.bg=0xd8deed
window.fg=0x000000
window.title.bg=0x217b05
window.title.fg=0xffffff
window.title.error.bg=0xc00000
; help system colors
help.link.fg=0x0000a0
help.link.selected.fg=0xffffff
help.link.selected.bg=0x0000a0
help.highlight.fg=0x009000
; panel colors
panel.fg=0xffffff
panel.title.fg=0xffffff
panel.f-key.fg=0xffe050
; default keymap (e.g. de-latin1-nodeadkeys or cz-lat2-us)
keymap=
; replace underscores ('_') with space in menu entries
_2space=1

[800x600]
; screen size
screen.size=800,600
; background image
background=back800x600.jpg
; upper left corner, if x = -1, center horizontally
mainmenu.pos=-1,240
; boot option input field position
bootopt.pos=263,480

[640x480]
; screen size
screen.size=640,480
; background image
background=back640x480.jpg
; upper left corner, if x = -1, center horizontally
mainmenu.pos=-1,170
; boot option input field position
bootopt.pos=263,380

[live]
; show welcome animation
welcome=1
; set livecd flag
livecd=1
; main menu items where user can't add boot options
nobootoptions=hdt,memtest
; move down one menu entry the first time an F-key is used
autodown=0
; F-key assignments, see install section for doc
; serial line setup (up to four lines)
; format: port,baud,dev
;   - port: 0-3: first four BIOS serial lines (COM1-COM4); >=4: I/O port (0x3f8)
;   - baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates >= 9600)
;   - dev: linux device name (e.g. ttyS0)
; - all lines are set up with 8 bits, no parity, 1 stop bit
; - if the bootloader also has a serial line setup, the port is
;   automatically used
serial.line0=0,0,ttyS0
serial.line1=1,0,ttyS1
serial.line2=
serial.line3=
key.F2=lang
key.F3=video
key.F4=kernelopts
key.F5=
key.F6=
key.F7=
key.F8=
key.F11=
key.F12=
; show keymap menu as submenu in lang dialog
keymap.submenu=1
; add 'keytable' option with current keymap
addopt.keytable=1
; add 'lang' option with current locale
addopt.lang=1
; add 'layout' option with current keyboad layout
addopt.layout=1

Профиль ISO

Обзор профиля ISO

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

/usr/share/manjaro-tools/iso-profiles/official/xfce/

Рассмотрим содержимое папки профилей XFCE подробнее:

xfce-overlay
mkinitcpio.conf -> ../shared/mkinitcpio.conf
root-overlay -> ../shared/root-overlay/
live-overlay -> ../shared/live-overlay/
Packages-Root -> ../shared/Packages-Root
Packages-Live -> ../shared/Packages-Live
Packages-Xfce
Packages-Mhwd -> ../shared/Packages-Mhwd
profile.conf
  • xfce-overlay: After every successful installation of your ISO (XFCE) the files and folders in here will get copied over.
  • mkinitcpio.conf содержит информацию обо всех необходимых модулях ядра.
  • root-overlay: То же, что xfce-overlay, но содержит файлы и папки, необходимые всем образам и живым дискам Manjaro.
  • live-overlay: Similar to xfce-overlay. Files and folders in here will only get copied over to the LiveCD of your ISO.
  • Packages-Root: This file contains base packages important to all Manjaro installations and LiveCDs.
  • Packages-Live: This file contains packages, which will only get installed on the LiveCD.
  • Packages-Xfce: This file contains packages specific to your ISO (XFCE) installation. All packages will also get installed on LiveCDs.
  • Packages-Mhwd: This file contains Mhwd packages important to all Manjaro installations and LiveCDs.
  • profile.conf contains basic settings for your ISO installation and LiveCD.

As you have probably noticed, most files and folders are only symlinks to the shared ISO profile. It is good practice to never change files or folders in the shared ISO profile. If you ever want to change them, first copy them to your ISO profile folder and delete the symlink.

All folders and files specific to your ISO (in this example XFCE) are marked. You can change them to your liking.

Изменение профиля ISO

Чаще всего для изменения профиля ISO правят 3 папки, указанные выше, а именно xfce-overlay, profile.conf, Packages-Xfce:


xfce-overlay

Содержимое папки xfce-overlay выглядит так (скрытые файлы не показаны):

├── etc
│   ├── lightdm
│   │   └── lightdm-gtk-greeter.conf
│   ├── mdm
│   │   └── custom.conf
│   └── skel
└── usr
    └── share
        ├── backgrounds
        │   └── lightdm
        │       └── manjaro-lightdm-gtk-greeter.jpg
        ├── icons
        │   └── default
        │       └── index.theme
        └── xfce4
            └── backdrops
                └── default.jpg -> /usr/share/backgrounds/manjaro.jpg

После того, как образ XFCE ISO успешно установлен, все файлы и папки из папки xfce-overlay копируются в установленную систему. В ней содержаться файлы настроек и конфигураций, а также темы и фоновые изображения.

Есть еще особая папка (помеченная выше):

manjaro-tools-iso-profiles/xfce/xfce-overlay/etc/skel

Все фалы и папки в ней будут скопированы в домашнюю директориюr. Большинство скрытых файлов и их структура в manjaro-tools-iso-profiles/xfce/xfce-overlay/etc/skel/ уже знакомы вам, так как ваша домашняя папка имеет схожий вид.


profile.conf

##########################################
###### use this file in the profile ######
##########################################

# possible values: openrc,systemd
initsys="systemd"

# use multilib packages; x86_64 only
# multilib="true"

displaymanager="sddm"

# Set to false to disable autologin in the livecd
# autologin="true"

# nonfree xorg drivers
# nonfree_xorg="true"

# use plymouth; initcpio hook
# plymouth_boot="true"

# use pxe boot; initcpio hook
pxe_boot="false"

################ install ################

# unset defaults to given value
# kernel="linux318"

# unset defaults to given value
# efi_boot_loader="grub"

# set uefi partition size
# efi_part_size=31M

# unset defaults to given value
# plymouth_theme=manjaro-elegant

# unset defaults to given values
# names must match systemd service names
# start_systemd=('bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep')
 
...

Этот конфигурационный файл содержит настройки. Все дефолтные настройки закомментированы. Если хотите их изменить, раскомментируйте их (удалите символ # в начале строки) и внесите изменения.

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

  • initsys= позволяет выбрать между systemd и OpenRC. Эта настройка связана с меткой >systemd и >openrc в вашем списке пакетов.
  • multilib= настройка соответствует метке >multilib в списке пакетов. multilib установит основные 32-битные библиотеки на 64-битную систему. Эта настройка повышает совместимость 32-разрядных приложений с 64-разрядной системой.
  • displaymanager= устанавливает экранный менеджер и менеджер входа в системе. Необходимо также включить свой дисплейный менеджер в список пакетов.
  • nonfree_xorg= относится к проприетарным видео-драйверам.
  • plymouth_boot= дает возможность активировать Plymouth (графику, отображаемую во время загрузки). Не забудьте включить пакет playmouth в свой список пакетов.
  • pxe_boot= активирует PXE загрузку в системе.
  • kernel= позволяет указать устанавливаемые ядра. Не надо включать ядра в свой список пакетов! Этой настройки достаточно.
  • start_systemd= активирует сервисы systemd, запускающиеся на установленной системе и на живом образе. Похожие настройки доступны и для OpenRC.

Packages-Xfce

### Manjaro Packages

## XFCE Main Packages
ffmpegthumbnailer
gconf                    # fix qt-theme
gnome-keyring            # fix wlan segfault
gufw                     # firewall
# mdm-themes
accountsservice
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
light-locker
manjaro-settings-manager
>i686 gcc
>x86_64 gcc-multilib

...

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

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

Знак # комментирует строку. Сторка следующая за этим знаком игнорируется.

i686 указывает на то, что пакеты будут установлены только в 32-битную версию вашего ISO (XFCE).

x86_64 то же самое для 64-битной версии ISO (XFCE).

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

Если нужно добавить пакеты AUR в свой ISO, надо создать локальный репозиторий и добавить его в правильный файл pacman-XXXXX.conf fсвоего профиля ISO.


Есть два разных способа это сделать. Второй - рекомендованный:

  • Buildiso with AUR packages: Using yaourt: Этот способ проще и быстрей, но имеет ряд недостатков: во-первых, все те же пакеты также будут установлены в текущую систему; во-вторых, можно собирать пакеты толко в разрядности текущей системы. То есть, нельзя собирать 32-битные пакеты в 64-битной системе.
  • Buildiso with AUR packages: Using buildpkg: Данный способ несколько сложнее и длится дольше. Можно запросто собрать и включить 32-битные пакеты, даже если сборка происходит на 64-битной системе. Все пакеты устанавливаются в отдельном окружении и не влияют на систему, в которой собираются.

manjaro-tools.conf

manjaro-tools.conf корневой конфигурационный файл для всех инструментов, входящих в набор manjaro-tools. Only edit the general and the "buildiso" part to not exceed the scope of this tutorial. Если вы не уверены в том, что это и как его редактировать, не делайте этого. Впоследствии с командой buildiso можно использовать различные аргументы.

По умолчанию, общесистемный кофигурационный файл установлен в

/etc/manjaro-tools/manjaro-tools.conf

Кроме того, пользовательский конфигурационный файл manjaro-tools.conf может находиться в домашней директории:

~/.config/manjaro-tools/manjaro-tools.conf

Если имеется в наличии пользовательский конфигурационный файл, manjaro-tools/buildiso будут загружены с применением пользователских значений. Однако, общесистемные конфигурационные файлы имеют приоритет перед пользовательскими. Лучшим решением будует вообще не трогать общесистемные файлы. По умолчанию они закоментированы и отражают только возможные значения в коде.

Сборка своего ISO

Перейдите в папку manjaro-tools-iso-profiles:

cd manjaro-tools-iso-profiles


Начните сборку своего ISO с помощью команды:

sudo buildiso -p openbox

Нужно указать название своего профиля ISO после аргумента -p. В нашем случае, это openbox.

Если сборка окончилась неудачно, повторите ее.

Внимание: В среднем процесс сборки длится минут 10 или дольше, если используются диски HDD, медленный процессор или образ больших размеров.

После успешного завершения сборки, файл образа и список пакетов появится в папке:

/var/cache/manjaro-tools/iso/


Пример:

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

sudo buildiso -p xfce-minimal -a i686 -b unstable
  • -a дает возможность сборки для других архитектур. В примере иет сборка 32-битного образа на 64-битной системе. То же самое можно указать в своем файле manjaro-tools.conf.
  • -b дает возможность указать ветку. Также можно указать это в своем файле manjaro-tools.conf.

Прочие примеры сборок с использованием различных аргументов команды buildiso здесь.

Очистка жесткого диска

После успешной или безуспешной сборки у вас может образоваться большой объем файлов данных ("сырой" ISO и все загруженные пакеты). Избавиться от них можно удалением папки:

sudo rm -r /var/lib/manjaro-tools/buildiso/openbox/


Для очистки системы от пакетов, не устанавленных в системе (включает все пакеты загруженные для модифицированного образа ISO):

paccache -ruk0


Можно вручную открыть и заглянуть в

/var/cache/manjaro-tools/

и удалить папки и файлы по желанию. Если нужно удалить все образы ISO, списки пакетов и кэшированные пакеты Xorg выполните:

sudo rm -r /var/cache/manjaro-tools/


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

Что еще почитать

Есть определенные темы форума по Manjaro-Tools иbuildiso:


Здесь основные руководства по manjaro-tools и buildiso:


Можно задавать вопросы на канале IRC:

  • Сервер: irc.freenode.net
  • Канал: #manjaro