AF Linux

AUFS frugal

Скачать Обсудить

Предистория: SFSLinux=.deb+Puppy ArchPupRus ALF ПапиРус21 Байт006a,008

Дальнейший текст изобилует ссылками на arch-wiki. Она обновляется, переводится на русский (часто более старая версия, хотя бы просматривайте английскую версию) и содержит ответы на любые вопросы.

Поставленные задачи

  1. упростить и ускорить сборку использованием готовых отработанных методик и пакетов arch linux
  2. за счет pacmanXG упростить пользователю установку софта
  3. получить доступ к самому свежему программному обеспечению из репозитория arch linux и AUR

Особенности и состав AF

  • Дистрибутив собран на пакетной базе Arch Linux
  • Использованы разработки PuppyRus218 (конфиг ядра, pfs-utils).
  • Собственные разработки: sfrugal, sfs-get, ntf
  • Live система rootaufs (доработана)
  • Функционал и состав аналогичен PuppyRus Byte 218

Использование AF должно быть не сложнее Puppy. В любом случае желателен опыт Arch и Puppy

Отличия AF от родительских и аналогичных сборок

  • Arch: ядро не из core, frugal
  • PuppyRus218: systemd, полноценный пакетный менеджер (pacman) с GUI и софтом
  • ArchPup: rootaufs, systemd, не использовался spkg, AF более совместим с Arch

Варианты развития

AF можно рассматривать не как дистрибутив, а как методику сборки модульного frugal дистрибутива. Сборка рассчитана на подготовленного пользователя.

  1. Дальнейшее использование репозитория Arch Linux (или другого pacman совместимого дистрибутива), совершенствование live и frugal
  2. chroot - перепаковка других совместимых дистрибутивов c изменением состава. Добавление модульности и frugal
  3. Создание своего репозитория с использованием ABS и AUR
  4. Перепаковка пакетов другого дистрибутива (даже не pacman - совместимого) в .pfs (PuppyRus) или .pkg.tar.xz (Arch) и сборка соответственно pfsmerge или makechrootpkg методом

Модули

Назначение модулей

Модули с названиями заглавными буквами - мета модули (pfsmerge составные)

  • ar*.pfs - базовый модуль. Только arch пакеты
  • AF*.pfs (метамодуль - составной) :
    • конвертированные arch пакеты (чтобы не пересобирать arch*.sfs)
    • 00Sf* - sfrugal
    • 0af-* - модуль совместимости arch-puppy
    • 0puppy-* - универсальный puppy модуль
    • SFS-TK-AF*.pfs - универсальный набор утилит
  • linux-*.pfs - модули ядра
  • FW*.pfs - firmware
  • DEVX-AF*.pfs - модуль разработчика. Необходим для компиляции

Слои AUFS

Теория

Сверху вниз (файлы верхних слоев перекроют прочие)

  • rootaufs - аналог сохраненки
  • sfsdiru= - см. sfrugal
  • overlay= - базовые squashfs модули. Слои AUFS в порядке перечисления, т.е. файлы 1го модуля (AF.pfs) перекроют прочие.
  • sfsdir= - см. sfrugal

Установка AF на жесткий диск или флэш

Frugal

  1. Установить загрузчик grub4dos или использовать любой линуксовый (grub, grub2, burg). Если grub4dos не установлен - поставить его с любого puppy или /boot/grub4dos/install из .iso
  2. Скопировать директорию /af в корень раздела. Файловая система раздела может быть: ext, fat, ntfs. При ntfs этот раздел в AF будет доступен только для чтения.
  3. Добавить 3й пункт menu.lst из .iso в свой menu.lst
  4. Проверить имя раздела из п.2 в menu.lst: set pdev1=sda1 Посмотреть можно командой blkid.

Скачанные модули приложений складывайте в /af/pfs. Тогда они автоподключатся ниже базы при рестарте. Если модулей будет много и все нужны - для уменьшения времени загрузки можно их объединить : pfsmerge

FULL

Теряется весь смысл задумки. Лучше поставить обычный Arch. Но если вы 1 пользователь на стационарном пк и не склонны к экспериментам:

  1. Разметить диск. Нужен как минимум 1 раздел ext* под / и раздел swap
  2. Установить линукс-загрузчик или использовать имеющийся.
  3. Загрузить AF со всеми нужными Вам модулями и сохраненками
  4. Переписать все на подготовленный ext раздел. Не забыль про ядро и initrd
  5. Поправить загрузчик на стандартные параметры ядра. Например: /boot/vmlinuz root=UUID=4db63c04-36a5-4da3-862e-c3aa82c48fd3 ro quiet splash

Persistent Mode (сохраненка)

Persistent Mode — это возможность сохранять все изменения, которые Вы произвели во время работы. При следующей загрузке не будет нужды снова настраивать те же самые параметры (например, пароли доступа к Wi-Fi или почте, и т. д. и т. п.)…

Варианты

  1. rootaufs=/test/ext2.img - файловая система в файле. Создать : /boot/mk-live-rw.sh. Файловая система раздела может быть: ext, fat, ntfs
  2. rootaufs=/dir - директория на root разделе. Файловая система раздела может быть: ext
  3. rootaufs=/dev/sda7 - раздел. Файловая система раздела может быть: ext

Настройка

Пользователи, пароли,права

  • Пользователь по умолчанию: live
  • Пароль: 111111 При использовании sshd, ftpd и т.п. - лучше сразу поменять: passwd live
  • root права на все через sudo
  • Урезать: man sudoers; sudo visudo
  • Пароль root: 111111

systemd

Шпаргалка

  • systemd-analyze blame - список запускаемых файлов юнитов, отсортированный по потраченному каждым из них на загрузку времени
  • systemctl list-unit-files - все установленные юниты
  • systemctl enable _my.service - включить сервис

Монтирование разделов

  1. Автомонтирование через параметры ядра mountall
    • mountall=1 - автомонтировать все разделы всех носителей
    • mountall=sda1,sdb2, - автомонтировать перечисленные разделы
  2. ymount (6я кнопка в верхней панели)
  3. Из консоли: sudo mount-all или sudo mnttoolsp (меню)

Сеть

Время

Горячие клавиши

  • Вызвать их список : <Super>h. <Super> - это клавиша windows, слева между Ctrl и Alt
  • <Alt>3 : вызывает в верхней части экрана dmenu c выбором всех запускаемых файлов из PATH. dmenu обеспечивает более удобный поиск
  • <Alt>5 : вызывает в верхней части экрана dmenu c выбором всех программ из меню.

Переключение клавиатуры us\ru

Conky. Мониторинг

WM

JWM

XFCE

Arch пакеты

Пакетный менеджер (ПМ)

pacman

Шпаргалка

  • Для принудительного обновления списка пакетов : pacman -Syy
  • Найти пакет : pacman -Ss имя_или_описание_пакета
  • Устанавливать пакет с заменой файлов системы: pacman –force -S имя_пакета
  • Скачать пакет, но не устанавливать его: pacman -Sw имя_пакета
  • Удалить пакет со всеми зависимостями : pacman -Rs имя_пакета
  • Доступные обновления: pacman -Qu
  • Показать все пакеты, не используемые ни одним пакетом: pacman -Qt
  • Переустановить все пакеты из arch репозитория: pacman -S $(pacman -Qq | grep -v «$(pacman -Qmq)»)
  • Для получения списка файлов неустановленного пакета можно использовать утилиту pkgfile из состава пакета pkgtools

packer

Описание

В отличие от pacman работает еще и с AUR. Типовое использование:

  1. packer имя_или_описание_пакета - найти и установить
  2. packer -G имя_пакета - скачать и распаковать tarball с PKGBUILD. Далее makepkg –asroot

Создание пакета

Ручная перепаковка

Может понадобиться для изменения .PKGINFO и .INSTALL или состава файлов

  1. pacman -S пакет
  2. Вносим изменения
  3. repacman пакет

Самый простой вариант не работает

mkdir -p /..pkg-name && bsdtar -xf -C /..pkg-name
cd /..pkg-name && bsdtar --exclude .. cJvf /...pkg.tar.xz .* 

Репозиторий

Создание

Подключение

  • Создание и подключение собственного репозитория в AF актуально при сборке базы. Поэтому - самый простой вариант - локальный репозиторий. Для других случаев проще .pfs
  • Собственный репозиторий может понадобиться для оптимизации размера пакетов, удаления ненужных зависимостей.
  • Подключение
[custom]
Server = file:///mnt/sda2/chroot/af-rep
  • Если поместить свой репозиторий в начало /etc/pacman.conf - пакеты будут установлены в первую очередь из него.
  • Чтобы автообновление этих пакетов не происходило - дописать в /etc/pacman.conf
IgnorePkg   = linux cairo gdk-pixbuf2 glibc

Пакеты.pfs

Для подключения, установки, удаления используйте

Варианты сборки базового модуля

Для уменьшения размера модуля, что актуально для полной загрузке в RAM, используйте скрипт trim

  • Удаляет неиспользуемые локализации и временные зоны
  • Удаляет man info doc
  • Выделяет компоненты нужных только разработчикам (devx)
  • Чистит cache и т.п.

makechrootpkg сборка

  1. Загрузите любой свежий arch или используйте любой linux
  2. Пропишите ближайший репозиторий в mirrorlist
  3. Обновите базу пакетов pacman -Syy
  4. Установите или соберите devtools
  5. Воспользуйтесь инструкцией или готовыми скриптами из /usr/local/af-make/ DEVX-AF*.pfs модуля

сhroot перепаковка

  1. Возьмите понравившийся arch live-дистрибутив
  2. Распакуйте самый большой файл (mkdir -p /tmp/distr && unsquashfs файл.squashfs /tmp/distr)
  3. chroot.sh /tmp/distr
  4. pacman -Rs лишнее && pacman -Syu && pacman -S нужное
  5. Запакуйте в squashfs (mksquashfs или pfs-utils)

Конвертация в .pfs

  1. Скачиваем нужные пакеты.pkg.tar.xz
  2. Скриптом pkg2pfs конвертируем в .pfs
  3. Собираем по PuppyRus методике

В случае пакетов другого формата - распаковать и собрать по PuppyRus методике

Live CD (flash) система

Т.е. тот самый frugal. Ключевой момент - сборка initrd

Обзор Arch методов

Larch

Целая система сборки. Сложна и малофункциональна. Можно использовать только hook для mkinitcpio

rootaufs

В AF доработана и использована https://github.com/aur-archive/mkinitcpio-rootaufs/blob/master/rootaufs_install

  • Наиболее проста и функциональна.
  • Основные параметры ядра описаны в af.txt.gz в корне CD. Дополнительные: vga=
  • Позволяет загружать модули в RAM и различные виды сохраненок (раздел, директория, файл)

AUFS ядро

В репозитории Arch отсутствует

Готовое

wget ftp://ftp.berlios.de/pub/larch/larch8/i686/linux-aufs_friendly-docs-3.8.7-1-i686.pkg.tar.xz && pacman -U linux-aufs_friendly-docs-3.8.7-1-i686.pkg.tar.xz

Есть более старое: ftp://ftp.berlios.de/pub/larch/larch8/i686/kernel26-2.6.38.7-1-i686.pkg.tar.gz . Оба ядра nonPAE

Сборка

Конвертация пакетов pfs<->pkg.tar.xz

pkg.tar.xz -> pfs

pkg2pfs пакет.pkg.tar.xz
  • Создается пакет с возможностью подключения и установки с помощью pfs-utils.
  • Т.к. пакет содержит /var/lib/pacman/local - pacman учитывает его при обработке зависимостей других пакетов. Если это не нужно, например пакет усеченный - без DEV компонентов, - удалить /var/lib/pacman/local

pfs -> pkg.tar.xz

  • unsquashfs пакет.pfs
  • Создать /var/lib/pacman/local/имя_пакета/desc или взять из аналогичного пакета
  • mkpfs-p2p директория
  • pfsload пакет.pfs
  • repacman пакет

Интернационализация

Интернационализация присутствует с Arch в полном объеме. В AF намененно вырезана для оптимизации размера. Вернуть или сделать под другой язык можно пересборкой с изменением скрипта trim

Печать/экспорт