Altlive: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 7: Строка 7:
* образ с mate/firefox и инструментами, входящими в консольный образ (однако уже с NetworkManager)
* образ с mate/firefox и инструментами, входящими в консольный образ (однако уже с NetworkManager)


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


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


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


<pre>
<pre>
# blkid                        # узнаем имя целевого носителя
dd oflag=direct if=altlive.img of=/dev/sdX bs=1M status=progress; sync
...
/dev/sdb1: LABEL="altlive" UUID="E034-195F" TYPE="vfat"                       
# cfdisk /dev/sdb              # создаем на нем загрузочный раздел /dev/sdb1
# tar -xf altlive-x86_64.tar  # распаковываем архив
# cd altlive-x86_64            # переходим в него
# ./install.sh /dev/sdb1      # переносим altlive на носитель (создаем файловую систему, копируем файлы и устанавливаем загрузчик)
</pre>
</pre>


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


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


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


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


Для установки загруженной системы на жесткий диск можно использовать скрипт live-install, принимающий следующие параметры:
Для установки загруженной системы на жесткий диск его нужно сначала разметить самостоятельно с помощью [c|s]fdisk, а затем использовать следующие скрипты:
 
<pre>
# live-install help
ERROR : Run live-install [$ROOT_LABEL] [$LOADER] [$NEW_USER] to copy running system to fixed disk                           
</pre>
 
Чуть подробнее о параметрах по порядку:


* ROOT_LABEL - метка раздела, на который предполагается переносить корень системы (по умолчанию system). На разделе должна быть заранее создана файловая система (ext4 или btrfs)
* /image/install/system <partition> [<user>] - создает файловую систему на указанном разделе, переносит туда загруженную систему и опционально переименовывает пользователя altlive
* LOADER - загрузчик (по умолчанию осуществляется автоподбор: extlinux для ext4 и grub для btrfs). <s>Для extlinux необходимо, чтобы раздел с корнем был загрузочным.</s> Вариант с extlinux сейчас сломан, нужно явно указывать grub даже для ext4
* /image/install/(mbr|efi) <partition> - устанавливает grub в MBR или на EFI-раздел
* NEW_USER - имя пользователя (в него будет переименован пользователь altlive, по умолчанию переименования не произойдет)


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


Возможна установка на softraid, который нужно предварительно создать, например:
=== Немного о systemd и сетевых настройках ===
 
<pre>
# cfdisk /dev/sda                                                                        # размечаем первый диск и помечаем раздел для корня как загрузочный
# sfdisk -d /dev/sda | sfdisk /dev/sdb                                                  # переносим разметку на второй диск
# mdadm --create /dev/md0 --level=1 --metadata=0.9 --raid-devices=2 /dev/sda2 /dev/sdb2  # создаем raid1 с использованием старого формата метаданных для поддержки extlinux
# mkfs.ext4 -L system /dev/md0                                                          # создаем файловую систему ext4
# live-install system grub altlive                                                      # устанавливаем altlive
</pre>
 
или:
 
<pre>
# cfdisk /dev/sda                                                                        # размечаем первый диск
# sfdisk -d /dev/sda | sfdisk /dev/sdb                                                  # переносим разметку на второй диск
# mkfs.btrfs -L system -m raid1 -d raid1 /dev/sda2 /dev/sdb2                            # создаем файловую систему btrfs с зеркалированием данных и метаданных
# live-install system grub altlive                                                      # устанавливаем altlive
</pre>
 
Поддержки UEFI пока нет, однако систему можно установить на UEFI-only железо вручную: создать отдельные GPT-разделы для загрузчика и для корня, в корень установиться с помощью live-install, в загрузочный раздел вручную скопировать любой UEFI-совместимый загрузчик и настроить его самостоятельно.
 
=== Немного о systemd, сетевых настройках и контейнерах ===


Во всех вариантах загрузки (включая минимальный консольный) в качестве системы инициализации используется [https://www.freedesktop.org/wiki/Software/systemd/ systemd] (см. также [http://www2.kangran.su/~nnz/pub/s4a/s4a_latest.pdf перевод официальной документации]). Для протоколирования используется [https://www.freedesktop.org/software/systemd/man/systemd-journald.html journald].
Во всех вариантах загрузки (включая минимальный консольный) в качестве системы инициализации используется [https://www.freedesktop.org/wiki/Software/systemd/ systemd] (см. также [http://www2.kangran.su/~nnz/pub/s4a/s4a_latest.pdf перевод официальной документации]). Для протоколирования используется [https://www.freedesktop.org/software/systemd/man/systemd-journald.html journald].
Строка 111: Строка 81:
DHCP=ipv4
DHCP=ipv4
</pre>
</pre>
В systemd есть встроенная поддержка легковесных контейнеров, которая использует те же ядерные механизмы, что и проекты [https://linuxcontainers.org/ LXC] и [https://www.docker.com/ Docker] (и возникшие благодаря проекту [https://openvz.org/ OpenVZ]). Работа с контейнерами выглядит так (более подробно &mdash; [[Контейнеры_systemd-nspawn|здесь]]):
<pre>
# apt-get install systemd-container
# systemctl enable machines.target
# curl -O http://enp.itx.ru/linux/alt/p9/images/container-x86_64.tar.xz
# machinectl import-tar container-x86_64.tar.xz one
# machinectl [ start | enable | status | shell | login | poweroff | disable | remove ] one
</pre>
Утилита [https://www.freedesktop.org/software/systemd/man/machinectl.html machinectl] при использовании на btrfs для каждого контейнера сразу выделяет отдельный subvolume. Уровнем ниже machinectl работает утилита [https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html nspawn], которую можно использовать для управления контейнерами напрямую. Для более гибкой настройки сети в контейнере это приходится делать в любом случае: копировать шаблон юнита /lib/systemd/system/systemd-nspawn@.service в /etc/systemd/system/systemd-nspawn@one.service и в последнем править параметры nspawn (или создавать [https://www.freedesktop.org/software/systemd/man/systemd.nspawn.html индивидуальные настройки] в /etc/systemd/nspawn/one.nspawn).


=== Как собрать самостоятельно ===
=== Как собрать самостоятельно ===
Строка 131: Строка 89:
$ git clone http://git.altlinux.org/people/enp/packages/mkimage-profile-altlive.git
$ git clone http://git.altlinux.org/people/enp/packages/mkimage-profile-altlive.git
$ cd mkimage-profile-altlive
$ cd mkimage-profile-altlive
$ make HSH_APT_CONFIG=/home/enp/apt/apt.conf.p8.i586 GLOBAL_TARGET=i586 GLOBAL_LOCALE=ru_RU GLOBAL_SUBIMAGES='console openbox mate'
$ make
</pre>
</pre>


В результате сборки в каталоге .work/.out окажутся iso и tar с архитектурой i586, с тремя вариантами загрузки (console, openbox и mate) и с локалью ru_RU.UTF-8 (только в openbox и mate, в console всегда будет en_EN.UTF-8).
В результате сборки в каталоге .work/.out окажутся iso и img с архитектурой x86_64, с тремя вариантами загрузки (console, openbox и mate) и с локалью ru_RU.UTF-8 (только в openbox и mate, в console всегда будет en_EN.UTF-8).


[[Категория:Решения]]
[[Категория:Решения]]
{{Category navigation|title=LiveCD|category=LiveCD|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=LiveCD|category=LiveCD|sortkey={{SUBPAGENAME}}}}

Версия от 13:21, 28 января 2022

Что это

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

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

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

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

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

Образы можно загрузить с http://enp.itx.ru/linux/alt/p10/images/:

  • файлы iso являются гибридными (т.е. их можно перенести на usb flash с помощью dd), но в первую очередь они предназначены для записи на dvd или использования в виртуальных средах
  • файлы img непосредственно предназначены для записи на usb flash

В обоих случаях процедура записи на usb flash выглядит примерно так:

dd oflag=direct if=altlive.img of=/dev/sdX bs=1M status=progress; sync

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

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

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

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

Для установки загруженной системы на жесткий диск его нужно сначала разметить самостоятельно с помощью [c|s]fdisk, а затем использовать следующие скрипты:

  • /image/install/system <partition> [<user>] - создает файловую систему на указанном разделе, переносит туда загруженную систему и опционально переименовывает пользователя altlive
  • /image/install/(mbr|efi) <partition> - устанавливает grub в MBR или на EFI-раздел

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

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

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

Для управления сетью используется networkd (исключение - вариант с mate, там 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 802.1Q будет выглядеть примерно так:

# cat /etc/systemd/network/trunk.network
[Match]
Name=enp4s0
[Network]
VLAN=enp4s0.10

# cat /etc/systemd/network/local.netdev 
[NetDev]
Name=enp4s0.10
Kind=vlan
[VLAN]
Id=10

# cat /etc/systemd/network/local.network 
[Match]
Name=enp4s0.10
[Network]
DHCP=ipv4

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

Образы altlive (и шаблоны контейнеров) собираются с помощью Mkimage из профилей http://git.altlinux.org/people/enp/packages/mkimage-profile-altlive.git и http://git.altlinux.org/people/enp/packages/mkimage-profile-container.git стандартным образом, например:

$ git clone http://git.altlinux.org/people/enp/packages/mkimage-profile-altlive.git
$ cd mkimage-profile-altlive
$ make

В результате сборки в каталоге .work/.out окажутся iso и img с архитектурой x86_64, с тремя вариантами загрузки (console, openbox и mate) и с локалью ru_RU.UTF-8 (только в openbox и mate, в console всегда будет en_EN.UTF-8).