Altlive

Материал из ALT Linux Wiki

Что это

Набор livedvd/liveflash со следующими вариантами загрузки:

  • минимальный консольный образ с systemd, systemd-networkd, sshd и основными сетевыми утилитами (включая tshark)
  • образ с openbox/tint2 и инструментами, входящими в консольный образ (в т.ч. systemd-networkd для управления сетевыми соединениями)
  • образ с xfce, firefox, libreoffice, gimp, vlc и инструментами, входящими в консольный образ (однако уже с NetworkManager)

Все варианты собраны для двух архитектур (i586 и x86_64) в виде iso и tar (для записи на usb flash).

Во всех вариантах в системе есть пользователь altlive в группе wheel с пустым паролем, у рута пароль тоже пустой, вход по ssh с паролем всем, кроме рута, разрешен.

Где взять и как использовать

Образы можно загрузить с http://enp.itx.ru/linux/alt/p8/images/. Файлы iso предназначены для записи на dvd или использования в виртуальных средах, гибридными они не являются (т.е. перенести их на usb flash с помощью dd невозможно, однако можно сделать образы гибридными самостоятельно с помощью ...). Файлы tar предназначены для записи на usb flash, процедура записи выглядит примерно так:

blkid                        # узнаем имя целевого носителя
...                            
cfdisk /dev/...              # создаем на нем загрузочный раздел
tar -xf altlive-x86_64.tar   # распаковываем архив
cd altlive-x86_64            # переходим в него
./install.sh /dev/...        # переносим altlive на носитель (создаем файловую систему, копируем файлы и устанавливаем загрузчик)

Как загрузиться с модифицированными настройками

Все изменения на live-носителе при перезагрузке будут потеряны. Чтобы этого избежать, можно настроить автоматическое выполнение определенных действий (изменение сетевой конфигурацию с dhcp на статику, добавление дополнительных репозиториев или даже установка дополнительных пакетов, а может просто изменение параметров ssh и добавление ключей) при каждой загрузке: создать соответствующие скрипты в каталог hooks в корне usb-носителя. Также можно выполнить определенные действия при запуске openbox (например запустить браузер) - для этого скрипты нужно будет положить в каталог openboxhooks.

Имена каталогов со скриптами для автозапуска можно изменить в syslinux.cfg, за них отвечают (отсутствующие по дефолту) параметры ...

Как установить на жесткий диск

Для установки загруженной системы на жесткий диск можно использовать скрипт live-install, принимающий следующие параметры:

live-install help 
...

Чуть подробнее о параметрах по порядку:

  1. Метка раздела, на который предполагается переносить корень системы (по умолчанию system). На разделе должна быть заранее создана файловая система (ext4 или btrfs).
  2. Загрузчик (по умолчанию осуществляется автоподбор: syslinux для ext4 и grub для btrfs). Для syslinux необходимо, чтобы раздел с корнем был загрузочным.
  3. Имя пользователя (в него будет переименован пользователь altlive, по умолчанию переименования не произойдет).

Разделы, инициализированные с помощью mkswap, будут обнаружены и добавлены в fstab установленной системы автоматически.

Возможна установка на softraid, который нужно предварительно создать, например:

mdadm /dev/md0
mkfs.ext4 -l system /dev/md0 ...
live-install

или:

mkfs.btrfs -l system ...
live-install

Поддержки UEFI пока нет, однако при необходимости систему можно установить на UEFI-only железо вручную: разметить диск в формате GPT, создать отдельные разделы для загрузчика и для корня, в корень установиться с помощью live-install, в загрузочный раздел вручную скопировать любой UEFI-совместимый загрузчик и настроить его самостоятельно.

Немного о systemd, сетевых настройках и контейнерах

Во всех вариантах загрузки (включая минимальный консольный) в качестве системы инициализации используется systemd (краткая инструкция по командам). Для протоколирования используется journald, постоянное хранение журналов на диске по умолчанию в нем выключено (Storage=volatile в /etc/systemd/journald.conf).

Для управления сетью используется systemd-networkd (исключение - вариант с xfce, там systemd-networkd по умолчанию выключен, а вместо него включен NetworkManager). Конфигурация сети по умолчанию выглядит так:

cat /etc/systemd/network/local.network
[Match]
Name=en*
[Network]
DHCP=ipv4
#DNS=8.8.8.8
#Domains=local
#Address=10.0.0.2/24
#Gateway=10.0.0.1

Т.е. для переключения с DHCP на статику нужно в секции Network закомментировать DHCP и раскомментировать остальные параметры, при этом не забыть изменить адреса и сказать systemctl restart systemd-networkd. Использование VLAN (dot1q) будет выглядеть примерно так:

cat /etc/systemd/network/trunk.network
...

В systemd есть поддержка легковесных контейнеров, которая использует те же ядерные механизмы, что и проекты lxc и docker (и возникшие благодаря проекту OpenVZ). Создание, запуск, остановка и уничтожение контейнера выглядит так:

machinectl import ...
machinectl start
machinectl status
machinectl login
machinectl poweroff
machinectl remove

Утилита machinectl создает контейнеры на btrfs

Как собрать самостоятельно