booty - утилита для создания загрузочных образов и накопителей
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Представлена программа Booty, которая позволяет создавать загрузочные образы с дистрибутивами GNU/Linux. Утилита даёт возможность одной командой создавать загрузочные образы initrd, файлы ISO или накопители, включающие в себя любой дистрибутив GNU/Linux. Код написан на POSIX shell и распространяется под лицензией GPLv3.
Все дистрибутивы, загруженные с использованием Booty, работают либо в SHMFS (tmpfs), либо в SquashFS + Overlay FS, на выбор пользователя. Дистрибутив создаётся один раз, а в процессе загрузки выбираются параметры, позволяющие использовать чистый tmpfs для корня, либо связку Overlay FS + SquashFS с записью изменений в tmpfs. Имеется возможность предварительно скопировать загружаемый дистрибутив в ОЗУ, что позволяет отключить USB-накопитель после загрузки и копирования дистрибутива в память.
Прежде всего, Booty генерирует собственный initrd образ, в котором могут использоваться родные утилиты из текущей системы или busybox. Имеется возможность включить (упаковать) целиком в initramfs установленный в директории дистрибутив (chroot). Это может быть полезно, когда необходимо обновить систему с использованием kexec: просто перезагрузить initrd с новыми ядром и новой системой внутри initrd.
Создание Booty-специфичного initrd образа:
mkdir initramfs/
mkinitramfs initramfs/ --output initrd
Создание initrd образа с включением в него дистрибутива из директории "gentoo/":
mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd
После чего данный initrd образ полностью готов к загрузке, например, через PXE или через kexec.
Далее Booty генерирует образы с системой, которая указана в качестве "оверлеев". Например, можно установить (распаковать архив) условный Gentoo в отдельной директории, после чего с использованием Booty будет сгенерирован cpio-архив или SquashFS образ с этой системой. Также можно в отдельной директории выполнить настройку дистрибутива, а в ещё одну директорию скопировать личные настройки. Все эти "слои" будут последовательно загружены друг поверх друга и создавать единую рабочую систему.
mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd
В конечном счёте, Booty позволяет создавать загрузочные ISO-образы и USB, HDD, SSD и другие накопители, устанавливая вышеописанную систему из образов. Booty поддерживает создание загрузочных систем BIOS и UEFI. Поддерживаются загрузчики GRUB2 и SYSLINUX. Загрузчики можно комбинировать, например для загрузки в BIOS использовать SYSLINUX, а для UEFI - GRUB2. Для создания ISO-образов дополнительно потребуется пакет cdrkit (genisoimage), либо xorriso (xorrisofs), на выбор.
Единственное дополнительное действие, которое потребуется, это заранее подготовить ядро (vmlinuz) для загрузки. Автор (Spoofing) рекомендует использовать "make defconfig". Перед созданием образа необходимо подготовить директорию, положив в неё ядро vmlinuz и заранее подготовленный "пустой" initrd, созданный в первом примере.
mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz
cp initrd iso/boot/initrd
На этом подготовка завершена, теперь можем создавать из данной директории ISO образы.
Следующая команда создаст ISO образ, не загрузочный, просто ISO:
mkdir iso/
mkbootisofs iso/ --output archive.iso
Для создания загрузочного образа необходимо указать опцию "--legacy-boot" для BIOS и "--efi" для UEFI соответственно, в качестве параметров опции принимают либо grub2, либо syslinux, так же можно указать только одну опцию (например, не нужна поддержка UEFI загрузки, её можно не указывать).
mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso
mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso
mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso
И также, как до этого были включены образы с системой в initrd, можно включить их в ISO.
mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso
После данной команды будет сформирован загрузочный BIOS/UEFI ISO-образ, загружающий Gentoo в из SquashFS-образа с использованием Overlay FS, использующий tmpfs для хранения данных. Ядро должно быть собрано с поддержкой Overlay FS с SquashFS. Однако, если это по каким-то причинам не требуется, можно использовать опцию "--cpio" вместо --squashfs, для упаковки gentoo/ как cpio-архива, в таком случае архив будет распакован прямиком в tmpfs при загрузке, главное, чтобы для распаковки системы в tmpfs было достаточно оперативной памяти.
Интересный факт: если ISO образ созданный с использованием опции "--efi" распаковать на FAT32-флешку путём простого копирования файлов (cp -r), то Flash-накопитель будет загружаться в UEFI-режиме без какой-либо предварительной подготовки, благодаря специфике UEFI-загрузчиков.
Помимо загрузочных ISO с теми же параметрами может быть создан любой загрузочный накопитель: USB, HDD, SSD и так далее, при этом данный накопитель может продолжать использоваться по своему прямому назначению. Для этого необходимо примонтировать, например, USB-устройство и выполнить запуск mkbootisofs на нём. Только добавить одну опцию "--bootable", чтобы накопитель, на котором находится указанная директория, стал загрузочным.
mount /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable
После чего USB-устройство станет загрузочным с оверлеем gentoo/ (следует не забыть скопировать файлы /boot/vmlinuz и /boot/initrd на устройство).
Если по каким-то причинам накопитель не был примонтирован в /mnt, и окажется так, что /mnt находится на основном устройстве /dev/sda, то соответственно загрузчик будет перезаписан на /dev/sda. Следует проявлять осторожность при указании опции --bootable.
В процессе загрузки Booty поддерживает ряд опций, которые можно передать указать в загрузчике, grub.cfg или syslinux.cfg. По-умолчанию без каких-либо опций выполняется загрузка и распаковка всех оверлеев в tmpfs (опция по умолчанию ooty.use-shmfs). Для использования Overlay FS должна быть использована опция booty.use-overlayfs. Опция booty.copy-to-ram предварительно копирует оверлеи в tmpfs, после чего только подключает их и загружает. После копирования USB-устройство (или другой накопитель) можно извлечь.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/sp00f1ng/bo...)
- OpenNews: В Fedora рассматривают возможность прекращения поддержки BIOS при загрузке
- OpenNews: Релиз менеджера загрузки GNU GRUB 2.04
- OpenNews: Intel опубликовал открытую прошивку для инициализации оборудования и загрузки ОС
- OpenNews: Проект postmarketOS приступил к созданию загрузчика и прошивки модема для смартфонов
- OpenNews: Выпуск Coreboot 4.12
Похожие новости:
- Выпуск языка программирования Rust 1.45
- [Java, Kotlin] Производитель/потребитель на Kafka и Kotlin (перевод)
- Выпуск системы инициализации sysvinit 2.97
- В Fedora рассматривают возможность прекращения поддержки BIOS при загрузке
- Monolinux - однофайловый дистрибутив, загружающийся на CPU ARMv7 528 MHz за 0.37 секунд
- [Java, JavaScript, Open source, Разработка веб-сайтов] Kurento JSON RPC через WebSocket-JS на Spring Boot
- [Kotlin, Программирование] Spring Boot, Hibernate и Kotlin для новичков шаг за шагом
- [Java] Валидация параметров конфигурации Spring Boot при запуске (перевод)
- [Java, Информационная безопасность] Подтверждение входа с помощью Telegram на Spring Boot
- [Java, Apache] Spring Boot приложение с использованием Kafka Streams
Теги для поиска: #_booty, #_boot
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:16
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Представлена программа Booty, которая позволяет создавать загрузочные образы с дистрибутивами GNU/Linux. Утилита даёт возможность одной командой создавать загрузочные образы initrd, файлы ISO или накопители, включающие в себя любой дистрибутив GNU/Linux. Код написан на POSIX shell и распространяется под лицензией GPLv3. Все дистрибутивы, загруженные с использованием Booty, работают либо в SHMFS (tmpfs), либо в SquashFS + Overlay FS, на выбор пользователя. Дистрибутив создаётся один раз, а в процессе загрузки выбираются параметры, позволяющие использовать чистый tmpfs для корня, либо связку Overlay FS + SquashFS с записью изменений в tmpfs. Имеется возможность предварительно скопировать загружаемый дистрибутив в ОЗУ, что позволяет отключить USB-накопитель после загрузки и копирования дистрибутива в память. Прежде всего, Booty генерирует собственный initrd образ, в котором могут использоваться родные утилиты из текущей системы или busybox. Имеется возможность включить (упаковать) целиком в initramfs установленный в директории дистрибутив (chroot). Это может быть полезно, когда необходимо обновить систему с использованием kexec: просто перезагрузить initrd с новыми ядром и новой системой внутри initrd. Создание Booty-специфичного initrd образа: mkdir initramfs/
mkinitramfs initramfs/ --output initrd mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --cpio --output initrd Далее Booty генерирует образы с системой, которая указана в качестве "оверлеев". Например, можно установить (распаковать архив) условный Gentoo в отдельной директории, после чего с использованием Booty будет сгенерирован cpio-архив или SquashFS образ с этой системой. Также можно в отдельной директории выполнить настройку дистрибутива, а в ещё одну директорию скопировать личные настройки. Все эти "слои" будут последовательно загружены друг поверх друга и создавать единую рабочую систему. mkdir initramfs/
mkinitramfs initramfs/ --overlay gentoo/ --overlay settings/ --overlay documents/ --squashfs --output initrd Единственное дополнительное действие, которое потребуется, это заранее подготовить ядро (vmlinuz) для загрузки. Автор (Spoofing) рекомендует использовать "make defconfig". Перед созданием образа необходимо подготовить директорию, положив в неё ядро vmlinuz и заранее подготовленный "пустой" initrd, созданный в первом примере. mkdir iso/
cp /boot/vmlinuz-* iso/boot/vmlinuz cp initrd iso/boot/initrd Следующая команда создаст ISO образ, не загрузочный, просто ISO: mkdir iso/
mkbootisofs iso/ --output archive.iso mkbootisofs iso/ --legacy-boot syslinux --output boot-biosonly.iso
mkbootisofs iso/ --legacy-boot syslinux --efi grub2 --output boot-bios-uefi.iso mkbootisofs iso/ --efi grub2 --output boot-uefionly.iso mkbootisofs iso/ --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --output gentoo.iso
Интересный факт: если ISO образ созданный с использованием опции "--efi" распаковать на FAT32-флешку путём простого копирования файлов (cp -r), то Flash-накопитель будет загружаться в UEFI-режиме без какой-либо предварительной подготовки, благодаря специфике UEFI-загрузчиков. Помимо загрузочных ISO с теми же параметрами может быть создан любой загрузочный накопитель: USB, HDD, SSD и так далее, при этом данный накопитель может продолжать использоваться по своему прямому назначению. Для этого необходимо примонтировать, например, USB-устройство и выполнить запуск mkbootisofs на нём. Только добавить одну опцию "--bootable", чтобы накопитель, на котором находится указанная директория, стал загрузочным. mount /dev/sdb1 /mnt
mkbootisofs /mnt --overlay gentoo/ --squashfs --legacy-boot grub2 --efi grub2 --bootable Если по каким-то причинам накопитель не был примонтирован в /mnt, и окажется так, что /mnt находится на основном устройстве /dev/sda, то соответственно загрузчик будет перезаписан на /dev/sda. Следует проявлять осторожность при указании опции --bootable. В процессе загрузки Booty поддерживает ряд опций, которые можно передать указать в загрузчике, grub.cfg или syslinux.cfg. По-умолчанию без каких-либо опций выполняется загрузка и распаковка всех оверлеев в tmpfs (опция по умолчанию ooty.use-shmfs). Для использования Overlay FS должна быть использована опция booty.use-overlayfs. Опция booty.copy-to-ram предварительно копирует оверлеи в tmpfs, после чего только подключает их и загружает. После копирования USB-устройство (или другой накопитель) можно извлечь. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:16
Часовой пояс: UTC + 5