LINUX.ORG.RU

Избранные сообщения claire

booty2 != booty 2.0

Форум — Talks

мемный заголовок))) ладно, теперь серьёзно. >:|

Я вернулся! И начал писать с нуля вторую версию своего имба-поделия под названием Booty. От слова Boot. Цель у этой штуки всего одна: лёгким движением пальцев рук создавать загрузочные образы операционных систем.

https://github.com/sp00f1ng/booty/tree/booty2 // Это пре-альфа версия, многие планируемые функции ещё не реализованы.

Сборка загрузочного образа состоит из трёх ключевых этапов: сборка ядра, сборка initramfs и сборка iso.

Система внутри — всегда ваша, любая, на выбор. Вы можете любую систему установить в директорию, в chroot, а потом закатать её в ISO всего одной командой booty chroot/, либо целиком весь /dev/sda упихать в загрузочный ISO или initrd, не суть важно. При этом, загружается система на ваш выбор, хоть в голое tmpfs, хоть в SquashFS + Overlay FS. Такая главная идея booty. Всё это уже реализовано в первой версии, но сейчас надо сделать _проще_.

Основные отличия от первой версии:

  • booty >= 2.0 теперь самостоятельно собирает ядро, проводя весь процесс «от» и «до»: скачает, распакует, соберёт, аккуратно положит куда надо.
  • Чёткое разделение на API и пользовательский интерфейс, то есть, каждая вызываемая функция теперь самодостаточна и может быть выполнена независимо от контекста: вы можете использовать интерфейс booty >= 2.0 по-отдельности для личных целей, например, собрать ядро последней версии.
  • Самая главная моя задача сделать booty >= 2.0 настолько юзер-френдли, насколько это в принципе возможно. Чтобы поведение предугадывалось и было логичным. Настолько, что запуск booty без каких-либо параметров всё равно выплюнет вам какой-нибудь загрузочный ISO, я пока только не решил, что в него складывать, но дело тривиальное задать все параметры по-умолчанию.

Например, запуск команды booty linux скачает ядро Linux последней версии, распакует, соберёт и установит во временную директорию.

Другие примеры:

booty linux 5.7.12 — соберёт ядро указанной версии.

booty linux --install-path / — соберёт ядро последней версии и установит прямо в /, так что если вы могли бы доверить свой / моей booty, этим можно пользоваться и вне контекста создания загрузочных образов. По-умолчанию же создаётся /tmp директория для --install-path, куда ядро будет установлено в любом случае.

Можно задать директорию для кэширования файлов, куда будут помещаться исходный код и собранные ядра. То есть, на каждый запуск booty вам не придётся ждать пока ядро скачается, или пока соберётся. Если вы собираете образы однотипных систем, то можете брать ядро из имеющегося кэша.

booty linux --cache /usr/src

Представим ситуацию:

1) Я хочу собрать 2 образа для сервера, и 8 образов для декстопа.

2) Ядро последней версии.

3) Конфиг разный.

booty linux 5.11.11 for-workgroups --config .config1 --cache /usr/src

booty linux 5.11.11 for-workstations --config .config2 --cache /usr/src

Ядра будут собраны ровно по одному разу, а далее, при повторном запуске сборки образов, они уже будут браться из кэша.

Грубо говоря-мягко выражаясь, запустив в цикле while true; do booty linux --cache /usr/src; done ядро будет загружено и собрано ровно один раз, а далее оно помещается в --cache, и при повторном запуске оно будет просто устанавливаться раз за разом во временную /tmp директорию. Так!

А ещё можно сделать принудительный --force-download и --force-rebuild если надо обновить данные в кэше.

А можно вообще не использовать кэш и каждый раз заново качать-собирать всё с нуля. Такое поведение по-умолчанию. Хозяин барин.

Другие команды:

booty linux_via_http версия имя --force-download --install-path путь, в будущем планируется добавить linux_via_git, но пока http и парсинг html-кода bash-скриптами работает стабильно, это не спеху. )))

booty linux_build директория-с-сорцами --config-file конфиг --install-path путь

booty ramdisk --image initrd.img для создания initramfs-образа, используя родные бинарники прямо из вашей системы. Опциональный busybox и другие плюшки будут прикручены уже апосля.

Вообще в этот раз планируется интерфейс делать примерно таким:

booty новая_папка(1)/ новая_папка(2)/ новая_папка(3)/ --profile overlayfs

И эта команда полностью, от и до, подготовит ядро, и упакует указанные директории в SquashFS, и в финале выплюнет загрузочный ISO с системой.

Простой запуск booty новая_папка(1)/ либо с указанием --profile initramfs приведёт к поведению по-умолчанию: упихать всю «новая_папка(1)» в initramfs-образ.

Теперь я планирую использовать профили, которые пользователи смогут создавать сами и расширять имеющиеся возможности booty.

Но на этом пока всё. Официальная документация — потом! Надо ещё много кода писать. =)

 

Spoofing ()

booty 2.0 beta

Форум — Talks

Ситуация А) Славик купил VDS, установил Debian / Ubuntu / CentOS и настроил систему. Всё было хорошо. Но. Плохое качество услуг. Взломали сервер. Захотелось на другой сервер. Захотел сменить хостера. А это: нужно сохранить все данные, перенести, заново развернуть, заново настроить. Бросить старую VDS и найти новую VDS - это как развод: долго, проблематично, затратно. Славик несчастлив. Не будь как Славик.

Ситуация Б) Ванечка купил VDS, но к серверу не прикоснулся. Используя booty, всего одной командой в консоли, Ванечка создал загрузочный образ со своим любимым дистрибутивом, загрузил образ на VDS и загрузил систему прямо из образа. Система настроена на локальном компьере и после загрузки сразу решала задачи. Ванечке не нужно делать бэкапы, ведь образ с системой и есть бэкап. Когда нужно обновить систему, Ванечка зальёт обновлённый образ на VDS и одним нажатием кнопки ПЕРЕЗАГРУЗИТЬ обновит систему на VDS. Ванечка просто так по приколу сделал mkswap /dev/sda && swapon /dev/sda, может себе позволить. Ванечка меняет VDS как женщин: не понравилась одна VDS, пошёл к другой VDS, со своим загрузочным ISO. Ванечка счастлив. Будь как Ванечка.

Какие плюсы использовать booty?

1) ЭТО ПРОСТО. Настроил один раз - используешь всегда. Для создания загрузочного образа с любым дистрибутивом нужно выполнить всего одну команду.

2) ЭТО БЫСТРО. Дистрибутив загружается в оперативную память. Оперативная память - это скорость и экономия ресурса накопителей.

3) ЭТО БЕЗОПАСНО. rm -rf /. RESET. Операционная система возвращается в исходное состояние.

4) ЭТО НАДЁЖНО. Резервное копирование не нужно. booty и есть резервная копия.

5) ЭТО ПО-УМНОМУ. Переустановка, обновление или восстановление системы решается кнопкой RESET.

6) ЭТО ПРОДАКШОН-РЭДИ. Настроил систему один раз и развернул на сколько угодно хостов.

7) ?????

8) ЭТО booty!

Какие минусы использовать booty?

1) Отключение питания приведёт к потере всех данных в оперативной памяти. Храните данные в «облаке».

2) Хоть booty-система и умеет сохранять все данные, для обновления системы правильным решением будет пересобирать образ полностью.

booty build ДИРЕКТОРИЯ/

Создать загрузочный ISO-образ (USB-флешку) с любым дистрибутивом?

Перенести контейнер из Docker (Podman) в загрузочный ISO-образ?

Загрузиться по сети (PXE) в любой дистрибутив?

Загрузить любой дистрибутив полностью в RAM-диск (tmpfs)?

Создать дистрибутив с использованием SquashFS + Overlay FS?

Всего одна команда, booty build ДИРЕКТОРИЯ/, чтобы навсегда переехать жить в tmpfs. Перенести все свои VDS на жизнь в tmpfs. И навсегда забыть про бэкап системы.

booty 2.0 beta, скоро релиз, вылизываю код, вставляю «защиты от дурака», но всё уже должно работать.

Скриншот

Скачать

 ,

Spoofing ()