LINUX.ORG.RU

Создание загрузочных образов boobstrap v1.0

 


10

4

Хочу представить вашему вниманию фреймворк под названием boobstrap, написаный на POSIX shell, для создания загрузочных образов с дистрибутивами GNU/Linux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в chroot, создания initramfs-образа включающего в себя систему из chroot, и в конечном счёте загрузочного ISO-образа. boobstrap включает в себя три утилиты mkbootstrap, mkinitramfs и mkbootisofs соответсвенно.

mkbootstrap устанавливает систему в отдельную директорию, имеется нативная поддержка CRUX, а в случае Arch Linux / Manjaro и дистрибутивов на основе Debian должны быть использованы сторонние утилиты pacstrap, basestrap и debootstrap соответственно.

mkinitramfs создаёт initramfs-образ, вы можете использовать установленную систему в директории как «оверлей», сжатый при помощи SquashFS, либо загрузившись в систему работать прямиком в tmpfs. Так например, команда mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd создаст initrd файл, включив в него два оверлея с «arch-chroot/» системой и вашим «/home», сжатых при помощи SquashFS, который далее вы можете загружать через PXE в tmpfs, либо создать загрузочный ISO образ с этим initrd.

mkbootisofs создаёт BIOS / UEFI загрузочный ISO-образ из указанной директории. В директорию достаточно положить /boot/vmlinuz и /boot/initrd.

boobstrap не использует busybox, а для создания рабочего окружения initramfs копируется минимальный набор программ с использованием ldd, необходимых для загрузки и переключения в систему. Список программ для копирования, как и всё остальное, можно настроить через файл конфигурации /etc/boobstrap/boobstrap.conf. Так же, вы можете установить любой минималистичный дистрибутив в отдельный chroot/, из которого далее создать уже полноценное initramfs окружение. В качестве такого минималистичного, но при этом полноценного окружения предлагается использовать шаблон «crux_gnulinux-embedded», который после xz занимает компромиссные 37мб. busybox же, кроме своего размера, 3-5мб против 30-50мб полноценного GNU/Linux окружения, никаких преимуществ более не предлагает, таким образом использование busybox в проекте не видится целесообразным.

Как быстро проверить работоспобность и начать работу? Установите и запустите.

# git clone https://github.com/sp00f1ng/boobstrap.git
# cd boobstrap
# make install
# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Так же вам необходимо доустановить зависимости, а именно: cpio, grub, grub-efi, dosfstools, xorriso. Использование squashfs-tools не обязательно, вы можете работать в tmpfs при соответствующем объёме оперативной памяти. В случае, если в системе чего-то недостаёт, boobstrap об этом сообщит при запуске.

Для упрощения создания конфигураций boobstrap предлагает использовать «шаблоны» и «системы», суть которых заключается в том, чтобы использовать «шаблоны» (bootstrap-templates/) для быстрой установки систем из файла, а непосредственно «системы» (bootstrap-systems/) использовать для настройки конечных конфигураций.

Так например, запуск скрипта boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild установит минимальную конфигурацию системы CRUX GNU/Linux и сохранит её в файле crux_gnulinux-embedded.rootfs, далее вы запускаете boobstrap/bootstrap-systems/default/crux_gnulinux.bbuild который загрузит первичную конфигурацию из упомянутого файла, выполнит всю необходимую настройку и подготовит загрузочный ISO. Это удобно, когда например, множество систем используют однотипную конфигурацию: чтобы каждый раз не описывать одинаковый набор пакетов, вы используете один шаблон, на основе которого уже и создаёте загрузочные образы систем с конечной конфигурацией.

Где всё это использовать?

Вы настраиваете систему в файле один раз и запуском оного выполняете её сборку и/или обновление. Система работает в tmpfs, что делает её одноразовой, по-сути. В случае выхода системы из строя, вы одним нажатием кнопки Reset возвращаетесь в исходное состояние. Вы можете спокойно выполнить rm -rf /.

Вы можете настраивать конфигурации всех ваших систем локально, создавать образы, тестировать их в виртуальной машине или отдельном «железе», далее загружать их на удалённый сервер и запуском всего двух команд kexec -l /vmlinuz --initrd=/initrd && kexec -e обновлять всю систему целиком, перезагружая её в tmpfs.

Аналогичным образом вы можете перевести все системы, например на VDS, на работу в tmpfs, а диск /dev/vda зашифровать и использовать только под данные, без необходимости держать операционную систему на ней. Единственной «точкой утечки информации» в таком случае станет только «холодный дамп» памяти вашей виртуальной машины, а в случае компрометации системы (например, подбором пароля ssh или уязвимости в exim), вы можете загрузить новый ISO через «панель управления» вашего провайдера, чтобы вновь вернуть VDS в строй, не забыв при этом, отредактировать конфигурацию системы закрыв все уязвимости. Это быстрее, чем переустановка, последующая настройка и/или восстановление из бэкапа, ведь по-сути, загружаемый ISO с вашей системой это и есть ваш бэкап. «Семь бед — один Reset.»

В конце концов, вы можете создать любой дистрибутив под свои задачи, записать его на USB-накопитель и работать в нём, обновляя по мере надобности и снова перезаписывая его на USB-накопитель. Все данные хранить в «облаках». Больше не нужно переживать за сохранность системы и делать её бэкап, когда система, повторюсь, по сути стала «одноразовой».

Ваши пожелания, предложения и замечания приветствуются.

В репозитории по ссылке далее подробный README-файл (на английском) с описанием каждой утилиты и примеры использования, так же существует подробная документация на русском и история развития, доступные по ссылке: Комплекс загрузочных скриптов boobstrap.

>>> Получить исходный код

★★★★★

Проверено: Pinkbyte ()

Больше примеров использования!

Запустите «embedded» конфигурацию boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild для минимальной сборки CRUX и получите на выходе файл с корневой ФС crux_gnulinux-embedded.rootfs.

Запустите сборку «initrd» из теперь уже имеющегося «embedded» boobstrap/bootstrap-templates/crux_gnulinux-initrd.bbuild и получите на выходе crux_gnulinux-initrd.rootfs.

crux_gnulinux-initrd.rootfs — это полностью работоспособный initrd готовый к загрузке вместе с ядром, если 164мб это много, не вопрос, давайте пожмём:

# xz --check=crc32 --keep --threads=0 --best --verbose crux_gnulinux-initrd.rootfs
crux_gnulinux-initrd.rootfs (1/1)
  100 %        32.2 MiB / 163.2 MiB = 0.197   1.2 MiB/s       2:14             

32МБ для полноценного «гнутого» окружения, со всеми утилитами, уже не так больно будет загружать через PXE, согласны? Разумеется, это не busybox с его минималистичностью, но в отличии от busybox вам не нужно ничего собирать самостоятельно, в вашем распоряжении обычный GNU/Linux в initramfs. Помимо прочего, в имеющийся initrd включён openssh, так что даже на стадии загрузки системы если что-то пойдёт не так, вы можете решить проблему удалённо. Публичный ssh-ключ будет скопирован из вашего $HOME, смотрите скрипт.

# qemu-system-x86_64 -enable-kvm -m 512M -kernel /boot/vmlinuz -initrd crux_gnulinux-initrd.rootfs.xz
# ssh root@qemu-ip

Пересоберите initrd!

# mkdir initrd/
# mkbootstrap import initrd/ < crux_gnulinux-initrd.rootfs

Напишите свой /etc/rc.local чтобы после загрузки initramfs, например, система скачивалась через bittorrent используя torsocks после чего уже выполняла switch_root в неё, — всё зависит только от вашей фантазии.

Соберите initrd обратно.

# mkbootstrap export initrd/ > crux_gnulinux-initrd.rootfs

И вперёд, загружайтесь со своим initrd.

Другая ОС? Да не вопрос! Установите хоть через виртуальную машину в отдельный файл (образ) любую ОС, затем подмонтируйте его и сохраните состояние для будущего использования.

# qemu-img create archlinux.img 4G
# qemu-system-x86_64 -cdrom archlinux-*-x86_64.iso -hda archlinux.img
# mke2fs -t ext4 /dev/sda
# mount /dev/sda /mnt
# pacstrap /mnt base linux
# umount /mnt
# poweroff
# mount archlinux.img /mnt
# mkbootstrap export mnt/ > archlinux_gnulinux-base.rootfs
# umount /mnt

Теперь в archlinux_gnulinux-base.rootfs свежеустановленный Арч!

Пишите свои шаблоны с использованием данного образа, разворачивайте его, настройте и упакуйте обратно. busybox не нужен, — используйте целиком весь Arch Linux как initramfs! :D

Просто хочу сказать, что в три команды стало можно делать вообще всё. Как угодно крутить-вертеть системами. На любых уровнях. И главное, работать в них, хоть в tmpfs, хоть в overlayfs со squashfs, загружаться хоть через PXE, хоть с USB, откуда угодно и куда угодно, или просто (пере)загружаться в свою систему из уже запущённой используя kexec, обновлять систему и восстанавливать её работу в случае сбоев.

Надеюсь данный фреймворк вам окажется полезен. :)

Spoofing ★★★★★ ()

У меня на патченном гентушном initrd так сервак уже лет 10 как грузится(во время летит!) - корень(да еще и на uclibc-ng вместо glibc) в squashfs в составе initrd.

Приятно видеть что кто-то осилил не только написать подобное(в этом ничего сверхестественного нет, если знаешь как работает Linux), но и запилить документацию(на этом этапе я сломался, поэтому мои скрипты и не опубликованы - ибо кому они кроме меня всрались без документации?)

P.S. За подобное название в наше время толерастии везде где не надо - зачёт :-)

Pinkbyte ★★★★★ ()
Ответ на: комментарий от buratino

кратко: да, умеет.

развёрнуто:

сделать kernel: скачайте сорцы, make defconfig && scripts/config -e OVERLAY_FS && make olddefconfig && make, на выходе arch/x86/boot/bzImage будет вашим kernel. p.s. скоро внесу изменения чтобы был чистый tmpfs, без overlay_fs

разверните любую систему в отдельной директории (чрут, как линуксоиды это называют). например скачайте просто генту.

# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200618T170443Z/stage3-amd64-20200618T170443Z.tar.xz
# mkdir gentoo/
# tar xf stage3-* -C gentoo/

и создайте initrd с гентой включив её как оверлей

# mkdir initrd/
# mkinitramfs initrd --overlay gentoo/ --output initrd.img

теперь можете загружаться.

qemu-system-x86_64 -kernel /usr/src/linux-*/arch/x86/boot/bzImage -initrd initrd.img

можете пойти дальше и создать iso.

# mkdir iso/
# mkdir iso/boot/
# cp /usr/src/linux-*/arch/x86/boot/bzImage iso/boot/vmlinuz
# cp initrd.img iso/boot/initrd
# mkbootisofs iso/ > gentoo.iso

всё готово.

# qemu-system-x86_64 -cdrom gentoo.iso

http://dl.voglea.com/gentoo.png

Spoofing ★★★★★ ()
Ответ на: комментарий от ArkaDOSik

Да, вы можете установить что угодно в свой дистрибутив линукса, а затем указать директорию с вашим линуксом как оверлей, чтобы создать initrd с вашим линуксом.

Spoofing ★★★★★ ()
Ответ на: комментарий от Spoofing

Вот такой штуки не хватало в случаях, когда нужен линукс на USB флешках. Как по мне squashfs - лучший способ минимизировать запись (так ее нет совсем), но я не осилил в свое время.

Если потребуется куда-нибудь поставить систему без ssd, обязательно попробую. Случаи были и я обошелся btrfs, но для USB флешек с их качеством это полумеры.

ArkaDOSik ()
Последнее исправление: ArkaDOSik (всего исправлений: 1)

Вообще мечта. Тоже последние пару месяцев перешел полностью на Crux, точнее вернулся, после долгих скитаний ))) Думаю, это более правильное направление, чем делать из онтопика оффтопик.

poshat ★★ ()
Ответ на: комментарий от Pinkbyte

P.S. За подобное название в наше время толерастии везде где не надо - зачёт :-)

boobs

Да уж, думал я один возбудился на сиськи… Название конечно неприличное! С таким названием даже скачивать зашкварно.

anonymous ()

Знатоки, к вам вопрос: а нафига ваще этот initramfs? Ведь можно в ядро уже вкомпилить ext4, и усё, нет нужды, получается, в этом аппендиксе? Не пора ли от него «уходить»?

menangen ★★★★★ ()
Ответ на: комментарий от menangen

Он нужен, чтобы избавить ядро от кучи кода, а именно сборки рейда и других вещей, которые сложно и долго делать в ядре. Ну и плюс, чтобы не вкомпиливать все дрова оптом в случае ядра для обычного ПК.

ncrmnt ★★★★★ ()

Небольшой апдейт, теперь сохраняется вся история измений в системе.

Когда вы создали initrd с использованием опции --overlay, каждый оверлей работает в режиме read-only, а все изменения в системе, которые вносят программы или вы, сохраняются отдельным пунктом в tmpfs. Так вот теперь есть прямой доступ к этим изменениям, чтобы их сохранить.

http://dl.voglea.com/changes.png

Лежать пока они будут в директории /mnt/overlays/rootfs-changes.

Грубо-говоря мягко-выражаясь, создали вы в корне файл touch /onelove.txt, и он тут-же появился в истории изменений в каталоге /mnt/overlays/rootfs-changes/onelove.txt.

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

Apple со своим Time Machine курит в стороне. =)

Spoofing ★★★★★ ()

А можно мне пояснить, а то я тупенький?! После установки образа на флешку потом в него можно будет штатными пакетными манагерами донаталкивать нужные софтины, или опять шаманить с нуля целый образ?

anonymous ()
Ответ на: комментарий от menangen

Это может быть удобно, если у тебя много потоков CPU и быстрая память, чтобы перекомпилировать ядро при каждом обновлении микрокода/драйверов/другого kernel-land ПО – минус в том, что несколько больше времени придется потратить, сперва скачивая с диска весь монолит в сравнении с ядром и initramfs порознь при загрузке. Я довольно давно не ковырял код линукса, понятия не имею, если это повлияет на стабильность при падении одного из драйверов (графики, к примеру).

mazdai ★★ ()
Ответ на: комментарий от ArkaDOSik

Если потребуется куда-нибудь поставить систему без ssd, обязательно попробую.

Мне понадобится, у меня проприетарная железяка с каким-то недодебианом внутри, штоле, с отсутствием возможности воткнуть туда винт, но с заявленной возможностью воткнуть туда usb-флешку с актуальным Debian, так что в потенциале пригодицо! Да и вообще, доживу до свободных деньков, может и поковыряю для себя - создать какого-нить монстра франкенштейна!

Спасибо автору! Пеши есчо, годно, нужно!

anonymous ()
Ответ на: комментарий от anonymous

коротко: нет

спуфи-оправдания: ну... для того же и пишутся скрипты bootstrap-templates и bootstrap-systems чтобы запустил одной командой и оно тебе всё собрало и ISO подготовило.

я на самом деле с трудом представляю себе как такое грамотно реализовать. нет, конечно давайте сделаю загрузчик прямо с FAT32 раздела, чтобы не dd'шить ISO'шник, урезая тем самым флешку, а вот чтобы скопировал файлы на флешку, обычным cp, или мышкой перетащил, да? запустил один скрипт и он сделал тебе флешку загрузочной с данным дистрибутивом. ок. это не проблема сделать.

а дальше куда что складывать? ну давайте сделаю чтобы вы пакеты просто файлами закинули на флешку, а initrd при загрузке дистрибутива по флешке пройдётся и все установит. так сойдёт?

просто сейчас мы имеем тупа vmlinuz и initrd в образе, и что-то доустановить во внутрь initrd проблематично, потому что его сперва надо будет распаковать, расковырять, а потом в обратном порядке всё. в итоге проще запустить сборку скриптом, чем... нувыпонели.

обрисуйте механизм как вы себе это представляете и что-нибудь придумаем.

Spoofing ★★★★★ ()
Последнее исправление: Spoofing (всего исправлений: 1)
Ответ на: комментарий от menangen

Зачем оно под винду? Ну ventoy понятно для чего, там всё просто - виндовый клиент просто кликай в гуёвый инсталятор, потом в гуёвую софтину и на тебе - готовая «флешка». А подобного рода софт вантузята не осилят, а кто способен осилить, тот осилит в линухи бутнутся. И к тому же, если тебе так уж надо, чому бы не сделать порт, думаю автор не обидится!

anonymous ()
Ответ на: комментарий от Spoofing

Я тоже плохо представляю, но вариантов там несколько с разной степенью сложности и упоротости реализации, знаю лишь, что подобное городилось в живом образе тех же бунт, если его накатывали штатной на то время тулзой, которая была как в бунтах ЕМНИП, так и в линухоминтах, оно вроде usb-creator называлось, но это не точно. Там можно было задавать при создании образа область памяти на хранения изменений, если я правильно понял то был какой-то слепок поверх основной системы с изменениями, работало оно на выдох и местами косячило от изменений погоды на марсе, но суть работала, можно было обновить как ядро, так и юзерософт, так и доставить всякого, не пересоздавая образ.

anonymous ()
Ответ на: комментарий от Spoofing

а дальше куда что складывать? ну давайте сделаю чтобы вы пакеты просто файлами закинули на флешку, а initrd при загрузке дистрибутива по флешке пройдётся и все установит. так сойдёт?

Не, я не об этом, я про то, чтобы загруженная с лив-образа система могла штатным ПМ установить пакеты и при следующей загрузке эти изменения учитывались.

Не пойми неправильно, ты и так офигенскую работу проделал, это просто мои хотелки, как это сделать я хз.

anonymous ()
Ответ на: комментарий от anonymous

и при следующей загрузке эти изменения учитывались

вот прямо сейчас это в процессе.

вот прямо сейчас можешь любой чрут упаковать как оверлей, например с гентой.

# mkdir temp
# mkinitramfs temp/ --overlay gentoo/ --squashfs-xz --output initrd.img

загрузиться, и посмотри что лежит в /mnt/overlays/rootfs-changes — это все изменения которые сделаны в файловой системе, в их числе все пакеты которые ты доустановишь, осталось сохранение и последующее восстановление при загрузке. см. комментарий выше писал, буквально пару часов назад как это сделал.

Spoofing ★★★★★ ()
Ответ на: комментарий от Spoofing

и при следующей загрузке эти изменения учитывались

вот прямо сейчас это в процессе.

Отлично, по поводу генты не в ближайшее время, а вот с Debian попробую, когда-нибудь, как время будет вагон, но в закладки сохранил и буду посматривать, что напиливаешь, ещё раз СПАСИБО за сделанное!

anonymous ()
Ответ на: комментарий от ValdikSS

mkosi — она же вообще ничего не умеет делать?

как мне там создать ISO? UEFI, BIOS? не? как мне там хотя бы initrd создать?

So, let's have a look on the specific images it can generate:

Raw GPT disk image, with ext4 as root
Raw GPT disk image, with btrfs as root
Raw GPT disk image, with a read-only squashfs as root
A plain directory on disk containing the OS tree directly (this is useful for creating generic container images)
A btrfs subvolume on disk, similar to the plain directory
A tarball of a plain directory

куда потом это засунуть? как с этого загрузиться? ну я тоже могу создать файл как контейнер с фс ext4 и установить туда чрут, но какой с этого будет толк?

первое же отличие и преимущество, boobstrap создаёт initrd используя окружение хост-системы. а может и всю систему из директории целиком упаковать как initramfs-окружение. и можно грузиться. initrd можно:

1. положить initrd рядом с ядром в /boot
2. отдать initrd через PXE для загрузки
3. создать загрузочный ISO с initrd — boobstrap это сделает.

boobstrap позволяет создавать initrd, в который можно упихнуть хоть всю систему целиком, и отдать в загрузку через PXE, это порнография, но главное _это можно_.

https://github.com/systemd/mkosi/blob/master/mkosi#L1224-L1257

окей, нашёл bootable-код. она умеет только создавать загрузочные образы «жёстких дисков», условно говоря, то есть, всё то, что ты бы сделал руками, размечая /dev/sda, создавая разделы, устанавливая систему на /dev/sda2 и устанавливая загрузчики включая UEFI на /dev/sda1.

mkosi это типа скрипт, который автоматизирует тебе установку ОС в raw-образ «жёсткого диска» который ты потом скормишь виртуалке. это максимум её возможностей. всё что она делает, ты можешь сделать сам установив ОС в виртуальную машину.

это не загрузочные ISO, это не initrd с системой внутри, она создаёт загрузочный «жёсткий диск» и только. а про деплой между хостами, будь то PXE, ISO (на USB флешке) и речи быть не может.

уноси. =)

Spoofing ★★★★★ ()

Вроде бы автор и пытался доходчиво объяснить, как пользоваться его поделием, но он как-то выборочно объясняет что для чего нужно.

имеется нативная поддержка CRUX

Понимание закончилось здесь.

создаст initrd файл, включив в него два оверлея

Что такое оверлей нигде не объясняется.

Как быстро проверить работоспобность и начать работу? Установите и запустите.

А что делают указанные команды, объяснять не обязательно? Что мы устанавливаем и запускаем?

Xintrea ★★★★★ ()
Ответ на: комментарий от Spoofing

mkosi умеет создавать как образы диска (и физические, и для виртуальных машин), так и образы контейнеров (которые и в chroot можно запустить, при желании). Разумеется, initramfs она тоже умеет создавать.

Кроме того, mkosi поддерживает Secure Boot и dm-verity, а также может собирать образы для архитектур, отличных от архитектуры хоста, запуская программы в qemu-user при необходимости.

ISO не умеет создавать, да.

ValdikSS ★★★★★ ()
Ответ на: комментарий от Xintrea

ну что тут объяснять.

mkbootstrap. bootstrap знаете что такое?

mkinitramfs. initramfs знаете?

mkbootisofs. тут признаю, высосал из пальца чтобы количество буковок было одинаковое у всех трёх утилит.

в их названии их назначение.

> имеется нативная поддержка CRUX

Понимание закончилось здесь.

mkbootstrap умеет устанавливать CRUX в чрут, но не умеет другие дистрибутивы. для других дистрибутивов должны быть использованы их родные утилиты, debootstrap, pacstrap и другие если есть.

> создаст initrd файл, включив в него два оверлея

Что такое оверлей нигде не объясняется.

виноват, я слишком погряз в собственной терминологии. вот вы хотите сделать initrd. вы можете в сам initrd «зашить» целый дистрибутив. делается это одним параметром --overlay директория/, указывая директорию с установленным дистрибутивом (он же чрут как мы его называем).

а оверлеем это называется от того, что это слой, которых может быть много. например. --overlay chroot/ --overlay /home --overlay /root, указав несколько подряд директорий, все они будут работать как «слои» друг поверх друга.

в один «слой» вы можете засунуть ванильный дистрибутив без всего, в другой «слой» иксы, в «третий» слой браузер, и так далее.

слои это обычные директории которые вы укажете, которые тем же mkinitramfs могут преобразоваться в squashfs, указав соответствующий параметр --squashfs-xz.

> Как быстро проверить работоспобность и начать работу? Установите и запустите.

А что делают указанные команды, объяснять не обязательно? Что мы устанавливаем и запускаем?

не, там и так всё понятно. три строчки на шелл-скриптинге. просто посмотрите файл через cat.

Spoofing ★★★★★ ()
Ответ на: комментарий от ValdikSS

образы диска, контейнеры в виде директорий с чрутами, это всё конечно замечательно (нет).

умеет initramfs? каюсь, виноват, не увидел в файлах репозитория примеров с созданием initramfs. увидел только всякие федоры, убунты, дебьяны. что различные архитектуры умеет — да, увидел, это круто. и наверняка это всё заслуга debootstrap? которой указываешь, пакеты для какой архитектуры выкачивать из реп. поправьте если ошибаюсь.

----

отредактировано: ах ну да, конечно, прям так и написано

A fancy wrapper around dnf --installroot, debootstrap, pacstrap and zypper

то бишь из достоинств утилиты её мульти-архитектурность можно вычёркивать, это не её личная заслуга, а заслуга бутстраперов ) у меня в mkbootstrap тоже передаётся управление всем этим утилитам, потому что я вертел писать их реализацию. =)

осталось выяснить где там initramfs.

----

а об утилите сужу в целом по бложику Поцтеринга, где он описал как её использовать.

наша беседа будет информативнее, если вы приведёте собственные примеры использования этой утилиты. чтобы было с чем сравнивать. ибо всё, что я увидел в коде и прочитал в статье — это директории, которые в лучшем случае могут быть загрузочными RAW-образами для виртуалок, а-ля диски /dev/sda.

Spoofing ★★★★★ ()
Последнее исправление: Spoofing (всего исправлений: 1)