Создание ISO-файлов Manjaro с помощью buildiso
Views
Actions
Namespaces
Variants
Tools
Предпосылки
Это подробное описание установки и настройки инструментов и процесса сборки.
Это требование - либо загрузить и установить последнюю версию Manjaro, либо работать с хорошо поддерживаемой системой Manjaro. Важно, чтобы ваша система была обновлена последними версиями ядра и пакетов.
Установка инструментов Manjaro
Для начала работы вам понадобятся следующие пакеты:
Мы будем работать с официальным XFCE, чтобы помочь вам понять, что нужно делать.
Профиль ISO
Загрузите последние профили ISO
Последние версии профилей можно найти на gitlab Manjaro. Вы можете загрузить их напрямую, используя команду:
.
Обзор профиля ISO
Профиль ISO для xfce теперь можно найти по адресу
Давайте подробнее рассмотрим каталог профиля XFCE (отмечен выше):
desktop-overlay live-overlay -> ../../shared/manjaro/live-overlay Packages-Desktop Packages-Live -> ../../shared/Packages-Live Packages-Mhwd -> ../../shared/Packages-Mhwd Packages-Root -> ../../shared/Packages-Root profile.conf
- desktop-overlay: после каждой успешной установки вашего ISO файлы и каталоги, находящиеся здесь, будут скопированы.
- live-overlay: аналогично desktop-overlay. Файлы и каталоги, находящиеся здесь, будут копироваться только на LiveCD вашего ISO.
- Packages-Desktop: этот файл содержит пакеты для установки ISO. Все пакеты также будут установлены на LiveCD.
- Packages-Live: этот файл содержит пакеты, которые будут установлены только на LiveCD.
- Packages-Mhwd: этот файл содержит пакеты Mhwd, важные для всех установок Manjaro и LiveCD.
- Packages-Root: этот файл содержит базовые пакеты, важные для всех установок Manjaro и LiveCD.
- profile.conf содержит основные настройки для вашей установки ISO и LiveCD.
Как вы, вероятно, заметили, некоторые из них являются всего лишь символическими ссылками на ISO-профиль shared
. Хорошей практикой является никогда не изменять файлы или каталоги в ISO-профиле shared
. Если вы когда-нибудь захотите их изменить - сначала скопируйте их в каталог вашего ISO-профиля и удалите символическую ссылку.
Все каталоги и файлы, специфичные для вашего ISO, выделены полужирным шрифтом. Вы можете изменить их по своему усмотрению.
Изменение профиля ISO
Наиболее распространенными местами для настройки ISO-профиля являются 3 каталога, отмеченные выше: desktop-overlay, profile.conf, Packages-Desktop:
desktop-overlay
Директория desktop-overlay выглядит следующим образом:
$ tree ~/iso-profiles/manjaro/xfce/desktop-overlay/etc
../iso-profiles/manjaro/xfce/desktop-overlay/ ├── etc │ ├── fonts │ │ └── conf.d │ │ └── 70-no-bitmaps.conf │ └── lightdm │ ├── lightdm.conf │ └── lightdm-gtk-greeter.conf └── usr └── share └── icons └── default └── index.theme
Перейдите в эту директорию.
Затем создайте каталог skel. В нем вы сможете клонировать в ISO все, что видите на экране рабочего стола.
После успешной установки ISO все файлы и каталоги из desktop-overlay копируются на установленную систему. Сюда входят файлы настроек/конфигурации, а также темы и фоны/картинки.
Все файлы и каталоги, находящиеся здесь, будут скопированы в домашний каталог. Большинство скрытых файлов и их структура в ~/iso-profiles/manjaro/xfce/desktop-overlay/etc/skel/
должны быть вам уже знакомы, поскольку ваша домашняя директория выглядит очень похоже.
Клонирование пользовательских обоев рабочего стола
Чтобы клонировать ваш рабочий стол с пользовательскими обоями. Откройте новый менеджер файлов и перейдите к этому файлу:
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
Измените все каталоги изображений на те, в которых находились ваши пользовательские обои. Например:
/usr/share/backgrounds/<ВАШЕ ИЗОБРАЖЕНИЕ ЗДЕСЬ>
Пример
A sample `xfce4-desktop.xml` can be viewed by unfolding this block
<?xml version="1.0" encoding="UTF-8"?> <channel name="xfce4-desktop" version="1.0"> <property name="backdrop" type="empty"> <property name="screen0" type="empty"> <property name="monitor0" type="empty"> <property name="image-path" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/> <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/> <property name="last-single-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/> <property name="image-style" type="int" value="5"/> </property> <property name="monitorVGA-0" type="empty"> <property name="workspace0" type="empty"> <property name="color-style" type="int" value="0"/> <property name="image-style" type="int" value="5"/> <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/> </property> <property name="workspace1" type="empty"> <property name="color-style" type="int" value="0"/> <property name="image-style" type="int" value="5"/> <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/> </property> </property> </property> </property> <property name="desktop-icons" type="empty"> <property name="style" type="int" value="2"/> <property name="file-icons" type="empty"> <property name="show-removable" type="bool" value="true"/> </property> <property name="icon-size" type="uint" value="32"/> </property> </channel>
Перейдите в эту директорию:
Затем создайте каталог usr/share/backgrounds
и поместите в него свои пользовательские обои.
profile.conf
Полное содержание примера profile.conf можно посмотреть, развернув этот блок. Всегда лучше использовать последнюю версию, а не копировать эту.
########################################## ##### используйте этот файл в профиле #### ########################################## # использовать пакеты multilib; только x86_64 # multilib="true" displaymanager="lightdm" # Установите false для отключения автологина в livecd # autologin="true" # несвободные драйверы mhwd # nonfree_mhwd="true" # использовать пакеты extra, определенные в pkglist, для активации полного профиля #extra="true" ################ установка ############### # сбросить значение по умолчанию на заданное значение # efi_boot_loader="grub" # настроить calamares для netinstall # netinstall="false" # настроить calamares на использование chrootcfg вместо unpackfs # chrootcfg="false" # использовать geoip для локализации # geoip='true' # снимите значения по умолчанию с заданных значений # имена должны совпадать с именами служб systemd enable_systemd=('avahi-daemon' 'bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep' 'ufw') disable_systemd=('pacman-init') # снимите значения по умолчанию с заданных значений, # имена должны совпадать с именами служб openrc # enable_openrc=('acpid' 'bluetooth' 'elogind' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager') # disable_openrc=() # то же имя рабочей группы, если используется samba # smb_workgroup="" ################# livecd ################# # незаданное по умолчанию принимает данное значение # hostname="manjaro" # незаданное по умолчанию принимает данное значение # username="manjaro" # незаданное по умолчанию принимает данное значение # password="manjaro" # оболочка входа в систему # по-умолчанию bash # login_shell=/bin/bash # незаданное по умолчанию принимает данное значение # addgroups="lp,network,power,wheel" # незаданное по умолчанию принимает данное значение # имена должны совпадать с именами служб systemd # services in enable_systemd array don't need to be listed here # enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live') # обнулить значения по умолчанию с заданных значений, # имена должны совпадать с именами служб openrc # службы в массиве enable_openrc не обязательно должны быть перечислены здесь # enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live')
Этот файл конфигурации содержит опции настройки. Все настройки по умолчанию закомментированы. Если вы хотите их изменить - раскомментируйте (уберите символ #
перед ними) и измените их.
Заслуживают внимания следующие параметры:
multilib=
настройка относится к флагу>multilib
в списках пакетов. multilib будет устанавливать основные 32-битные библиотеки на 64-битных системах. Это повышает совместимость 32-разрядных приложений на 64-разрядных системах.displaymanager=
устанавливает менеджер дисплея / входа, который использует ваша система. Вам также необходимо указать менеджер дисплея в списке пакетов.nonfree_xorg=
относится к проприетарным графическим драйверам.netinstall=
: не используйтеchrootcfg=
: не используйтеkernel=
позволяет задействовать установленное ядро. Не включайте никакие ядра в список пакетов! Эта настройка - все, что вам нужно.enable_systemd=
позволяет задать службы systemd, запускаемые на установленной системе (и с аналогичными настройками на livecd).enable_openrc=
: не используйте
Packages-Desktop
Пример файла `Packages-Desktop` можно посмотреть, развернув этот блок. Всегда лучше использовать последнюю версию, а не копировать эту.
## Сеть avahi networkmanager networkmanager-openconnect networkmanager-openvpn networkmanager-pptp networkmanager-vpnc nss-mdns # Поддержка NSS для mDNS (зависимость для avahi) ntp mobile-broadband-provider-info modemmanager openresolv openssh samba usb_modeswitch ## Библиотеки для звука/аудио/видео alsa-firmware alsa-utils ffmpeg gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly libdvdcss >multilib manjaro-alsa manjaro-pulse pulseaudio-bluetooth pulseaudio-ctl pulseaudio-zeroconf ## Пакеты подключения android-tools android-udev gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp gvfs-nfs gvfs-smb mtpfs udiskie udisks2 ## Поддержка/разработка AUR # Отсутствующие пакеты base-devel autoconf automake binutils bison fakeroot flex gcc >multilib gcc-libs-multilib >multilib gcc-multilib libtool m4 make patch pkg-config >multilib lib32-flex # Пакеты extra для поддержки AUR >extra git >extra patchutils >extra subversion ## Шрифты cantarell-fonts # noto-fonts # шрифт по-умолчанию # noto-fonts-cjk # большой пакет, сжат до ~76 МБ # >extra noto-fonts-emoji terminus-font ttf-bitstream-vera # xfce4-terminal по-умолчанию моноширинный # ttf-dejavu # установлен как зависимость для gnome-themes-standard >extra ttf-inconsolata >extra ttf-indic-otf >extra ttf-liberation >extra ttf-droid ## Игры >extra steam-manjaro ## Менеджеры пакетов pamac flatpak ## Java >extra jdk8-openjdk >extra jre8-openjdk-headless >extra jre8-openjdk ## Печать >extra cups >extra cups-pdf >extra cups-pk-helper >extra ghostscript >extra gsfonts >extra gtk3-print-backends >extra hplip >extra splix >extra system-config-printer ## Необязательные зависимости для hplip >extra pyqt5-common # для hplip >extra python-pillow # для hplip >extra python-pip # для hplip >extra python-pyqt5 # для hplip gui >extra python-reportlab # для hplip ## Менеджеры дисплея lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice # Улучшенная работа с учетными записями пользователей ## GTK3 gtk3-classic >multilib lib32-gtk3-classic ## Группа XFCE exo-gtk3 garcon-gtk3 thunar-gtk3 thunar-volman tumbler xfce4-appfinder-gtk3 xfce4-panel-gtk3 xfce4-power-manager-gtk3 xfce4-session-gtk3 xfce4-settings-gtk3 xfce4-terminal xfconf-gtk3 xfdesktop-gtk3 xfwm4-gtk3 ## Extra XFCE blueman ffmpegthumbnailer # tumbler - для эскизов видео freetype2 # tumbler - для эскизов шрифтов gksu gnome-keyring # устраняет неисправность wlan libgsf # tumbler - для эскизов ODF libopenraw # tumbler - для эскизов RAW light-locker network-manager-applet menulibre orage poppler-glib # tumbler - для эскизов PDF thunar-archive-plugin file-roller thunar-media-tags-plugin # >extra xfce4-artwork xfce4-battery-plugin xfce4-clipman-plugin >extra xfce4-cpufreq-plugin >extra xfce4-cpugraph-plugin # xfce4-datetime-plugin >extra xfce4-dict >extra xfce4-diskperf-plugin >extra xfce4-fsguard-plugin >extra xfce4-genmon-plugin >extra xfce4-mailwatch-plugin >extra xfce4-mount-plugin >extra xfce4-mpc-plugin >extra xfce4-netload-plugin >extra xfce4-notes-plugin xfce4-notifyd-gtk3 xfce4-screenshooter >extra xfce4-sensors-plugin >extra xfce4-smartbookmark-plugin >extra xfce4-systemload-plugin xfce4-taskmanager >extra xfce4-time-out-plugin >extra xfce4-timer-plugin >extra xfce4-verve-plugin >extra xfce4-wavelan-plugin >extra xfce4-weather-plugin xfce4-whiskermenu-plugin-gtk3 xfce4-xkb-plugin xfce4-pulseaudio-plugin pavucontrol ## Темы >extra manjaro-wallpapers-18.0 >extra wallpapers-2018 gnome-icon-theme gnome-themes-standard grub-theme-manjaro matcha-gtk-theme xcursor-simpleandsoft xcursor-vanilla-dmz-aa ## Приложения >extra catfish dmidecode # необязательная зависимость inxi engrampa >extra firefox # >extra flashplugin >extra galculator-gtk2 gcolor2 >extra gimp gparted gufw >extra audacious >extra hexchat htop qpdfview inxi >extra libreoffice-still ms-office-online manjaro-hello manjaro-application-utility manjaro-settings-manager manjaro-settings-manager-notifier >basic midori >extra mlocate mousepad mugshot >basic parole # медиа-плеер >extra pidgin powertop screenfetch >extra poppler-data # поддержка CKJ для pdf >basic sylpheed # почтовый клиент >extra thunderbird >extra vlc >extra viewnior >extra xfburn >extra yelp # Необязательные зависимости engrampa p7zip # поддержка архивов 7Z и ARJ unace # поддержка архивов ACE unrar # поддержка архивов RAR ## Документация manjaro-documentation-en ## Пакеты настроек >extra manjaro-xfce-gtk3-settings >basic manjaro-xfce-gtk3-minimal-settings manjaro-browser-settings ## Драйверы входа Xorg xf86-input-elographics xf86-input-evdev xf86-input-keyboard xf86-input-libinput xf86-input-mouse xf86-input-void ## Сервер Xorg и графика >multilib lib32-libva-intel-driver >multilib lib32-libva-mesa-driver >multilib lib32-libva-vdpau-driver libva-intel-driver libva-mesa-driver libva-vdpau-driver mesa-demos >multilib lib32-mesa-demos numlockx xdg-user-dirs xorg-server xorg-twm xorg-xinit xorg-xkill ## Инструменты рабочего стола perl-file-mimeinfo xdg-utils xdg-su ## Разное manjaro-hotfixes
Этот файл содержит список пакетов, которые будут установлены на ваш установленный ISO (XFCE) и LiveCD (пакеты в файле Packages-Live устанавливаются только для live ISO). Это список пакетов с пакетами для Xfce (и пакетами, которые вы хотите добавить в свой собственный Manjaro ISO) из нескольких списков в вашем ISO-профиле. Другие списки пакетов являются более общими.
Вы можете добавлять или удалять имена пакетов из этого списка по своему усмотрению. Вам не нужно беспокоиться о зависимостях при добавлении имен пакетов, просто убедитесь, что имя пакета написано правильно и пакет доступен в репозиториях Manjaro.
#
помечаются комментарии. Остальная часть строки после символа #
игнорируется.
Добавление пакетов AUR
Если вы хотите добавить пакеты AUR в свой ISO, вам нужно создать онлайн-репозиторий и добавить его в файл user-repos.conf рядом с вашим profile.conf.
Используйте только свои собственные репозитории с поддержкой http.
[your-repo-name] SigLevel = Optional TrustAll Server = http://repo.server.tld/your-repo-name
Статья Buildiso с пакетами AUR: Использование buildpkg содержит более подробную информацию об этом процессе.
manjaro-tools.conf
manjaro-tools.conf
является центральным конфигурационным файлом для всех инструментов, входящих в состав manjaro-tools. Отредактируйте только общие сведения и часть "buildiso", чтобы не выходить за рамки этого руководства. Если вы не уверены, что и как нужно редактировать, не редактируйте это. Вы всегда можете использовать аргументы с помощью команды buildiso
позже.
По умолчанию, общесистемный файл конфигурации устанавливается в
/etc/manjaro-tools/manjaro-tools.conf
Лучше всего оставить общесистемный файл нетронутым и скопировать общесистемный конфиг в ваш домашний каталог cюда:
~/.config/manjaro-tools
Если userconfig присутствует, manjaro-tools/buildiso загрузит значения userconfig. Лучшая практика - оставить нетронутым общесистемный файл. По умолчанию он закомментирован и отображает только значения инициализации, выполненные в коде.
Создание собственного ISO
Создайте свой ISO с помощью следующей команды:
Вам необходимо указать имя вашего ISO-профиля после аргумента -p
. В данном случае это <код>xfce.
Если процесс сборки завершился с ошибкой, запустите его снова.
Внимание: Процесс сборки занимает не менее 10 минут, а при использовании жестких дисков, медленных процессоров или больших ISO - гораздо больше.
Когда процесс сборки успешно завершится, ISO-файл и список пакетов появятся в этом каталоге:
/var/кэш/manjaro-tools/iso/
Пример:
Вы можете использовать аргументы с командой buildiso
для получения дополнительных параметров сборки:
-f
позволяет указать, нужен ли вам полный ISO. Если это не указано - будет создан минимальный ISO.-b
позволяет задать ветку. Вы также можете задать её в файлеmanjaro-tools.conf
.
Вы можете найти другие примеры сборок с использованием различных аргументов для buildiso здесь.
Очистка жесткого диска
После успешной или неудачной сборки вы можете избавиться от большинства данных ("сырой" ISO со всеми загруженными пакетами), удалив этот каталог:
Чтобы очистить систему от файлов пакетов, не установленных в системе (сюда входят все файлы пакетов, загруженные для вашего пользовательского ISO):
Вы также можете вручную посмотреть
/var/cache/manjaro-tools/
и удалить каталоги или файлы по своему усмотрению. Если вы хотите удалить все ISO-образы, списки пакетов и кэшированные пакеты Xorg, сделайте это:
Пожалуйста, помните, что все эти пакеты и файлы сохранены для вашего удобства. Если вы очистите систему, как указано выше, вам придется скачать все пакеты и собрать все образы снова, когда вы в следующий раз захотите собрать свой собственный Manjaro ISO.
По умолчанию ваш файл сохранится как manjaro-tools.conf
. Если вы хотите удалить его, используйте
Советы и хитрости
Создание минимального ISO
Минимальный ISO легко создать, изменив запись в файле profile.conf. Найдите раздел
# использовать пакеты extra, определенные в pkglist, для активации полного профиля # extra="false" extra="true"
удалите знак # перед extra = "false" и добавьте # перед extra = "true".
Если вы предпочтете не изменять это, то всегда можете использовать -f с buildiso для создания полного профиля.
Смотрите также
- Источник: Manjaro Gitlab ISO Profiles (ветвь master может быть нестабильной - выберите ветвь для последнего релиза)
- Форум: How to create your own Manjaro spin with Manjaro-Tools
- Форум: Philip Müller shows how-to
- Видео: Building Manjaro ISO by Philip Müller(Обучающее видео)
- Wiki: Buildiso с пакетами AUR: Использование buildpkg