Образ rootfs — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
Строка 9: Строка 9:
 
== Где скачать rootfs Росы ==
 
== Где скачать rootfs Росы ==
 
Раз в день автоматически выполняются сборки rootfs архитектур x86_64 и i586 на платформах rosa2016.1, rosa2014.1, rosa2012.1 и rosa2012lts.
 
Раз в день автоматически выполняются сборки rootfs архитектур x86_64 и i586 на платформах rosa2016.1, rosa2014.1, rosa2012.1 и rosa2012lts.
 +
 
Найти и скачать самые свежие сборки можно [https://abf.io/platforms/rosa2016.1/products/224 здесь].
 
Найти и скачать самые свежие сборки можно [https://abf.io/platforms/rosa2016.1/products/224 здесь].
  
 
Образы rootfs-min — это минималистичный образ (ввиду того, что некоторые пакеты в репозитории сейчас тянут лишние зависимости, в rootfs также есть лишние пакеты, например, grub2).
 
Образы rootfs-min — это минималистичный образ (ввиду того, что некоторые пакеты в репозитории сейчас тянут лишние зависимости, в rootfs также есть лишние пакеты, например, grub2).
Образы rootfs-std — это более расширенный набор пакетов, добавлены пакеты, необходимые для сборки других пакетов (rpm-build и др.).
+
Образы rootfs-std — это более расширенный набор пакетов, добавлены пакеты, необходимые для сборки других пакетов (rpm-build, git-core и др.).
  
 
== Как собрать rootfs самому ==
 
== Как собрать rootfs самому ==
 
Нужно взять [https://github.com/mikhailnov/docker-rosa скрипты] сборки и запустить mkimage-urpmi.sh.
 
Нужно взять [https://github.com/mikhailnov/docker-rosa скрипты] сборки и запустить mkimage-urpmi.sh.
 +
 
Патчи и пулл-реквесты для улучшения скриптов сборки принимаются на Github.
 
Патчи и пулл-реквесты для улучшения скриптов сборки принимаются на Github.
  

Версия 09:05, 14 марта 2019

Что такое rootfs

rootfs, то есть root file system, корневая файловая система — это архив с минималистичной системой, грубо говоря, это как если бы вы открыли файловый менеджер в корне своего Linux и запаковали всё найденное в архив, только здесь предустановлено минимально необходимое количество пакетов.

Для чего нужен rootfs

  • chroot
  • запуск в контейнере (systemd-nspawn, lxc, docker)
  • установка системы вручную

Где скачать rootfs Росы

Раз в день автоматически выполняются сборки rootfs архитектур x86_64 и i586 на платформах rosa2016.1, rosa2014.1, rosa2012.1 и rosa2012lts.

Найти и скачать самые свежие сборки можно здесь.

Образы rootfs-min — это минималистичный образ (ввиду того, что некоторые пакеты в репозитории сейчас тянут лишние зависимости, в rootfs также есть лишние пакеты, например, grub2). Образы rootfs-std — это более расширенный набор пакетов, добавлены пакеты, необходимые для сборки других пакетов (rpm-build, git-core и др.).

Как собрать rootfs самому

Нужно взять скрипты сборки и запустить mkimage-urpmi.sh.

Патчи и пулл-реквесты для улучшения скриптов сборки принимаются на Github.

Пример использования rootfs

Разберем на примере ежедневной сборки №25111. Контейнер назовем "rosa1".

su -
cd /var/lib/machines
wget http://file-store.rosalinux.ru/api/v1/file_stores/5c52311846752f9c3238aab629028ec2ba5155c4 -O rootfs-min-rosa2016.1_x86_64_2019-03-14.tar.xz
mkdir rosa1
cd rosa1
tar -xvf ../rootfs-min-rosa2016.1_x86_64_2019-03-14.tar.xz
cd /var/lib/machines
systemd-nspawn -D rosa1 -b

После последней команды загрузится консоль контейнера, вводите логин root, пароль не запросит. Если убрать -b и сделать просто systemd-nspawn -D rosa1, то вы попадете в консоль без полноценного запуска виртуальной системы.

Пример использования на BTRFS для быстрого клонирования контейнеров

/var/lib/machines должно быть внутри раздела BTRFS.

su -
cd /var/lib/machines
wget http://file-store.rosalinux.ru/api/v1/file_stores/5c52311846752f9c3238aab629028ec2ba5155c4 -O rootfs-min-rosa2016.1_x86_64_2019-03-14.tar.xz
btrfs subvol create rosa1
cd rosa1
tar -xvf ../rootfs-min-rosa2016.1_x86_64_2019-03-14.tar.xz
cd /var/lib/machines
btrfs subvol snapshot rosa1 rosa2
btrfs subvol snapshot rosa1 rosa3

В итоге у нас есть 3 одинаковых контейнера: /var/lib/machines/rosa1, /var/lib/machines/rosa2, /var/lib/machines/rosa3. Поскольку они одинаковые, место на диске занимается 1 раз, а не 3. После запуска каждого из контейнеров рекомендую менять hostname, чтобы было удобно их различать.