Представлена программа Booty, которая позволяет создавать загрузочные образы с дистрибутивами GNU/Linux. Утилита даёт возможность одной командой создавать загрузочные образы initrd, файлы ISO или накопители, включающие в себя любой дистрибутив GNU/Linux. Код написан на POSIX shell и распространяется под лицензией GPLv3...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53428
надо было назвать paizuri
Хорошее название, концептуально отражает все проблемы, возникающие при создании мультизагрузочных носителей.
Мне вот интересно почему за ними еще не выехали как за weboob?
Потому что автор живет в тотaлитарной стране, где нет SJW.
> Мне вот интересно почему за ними еще не выехали как за weboob?А что такого неполиткорректного в booty? Вроде как максимум так еще пираты награбленое называли вроде? На гитхабе дофига потомков ограбленых пиратами неудачников? Пираты обычно не очень церемонились с неудачниками, так что это - врядли.
Автор, ну пожалей людей на выходных, начни с того, какой профит по сравнению с dd if=.iso of=/dev/usb, с unetbootin, с ventoy и т.д.
вот вы говорите: dd if=.iso of=/dev/usb.
ну а где вы этот iso возьмёте?booty не пишет iso на диск, она не аналог cat или dd или unetbootin
booty как раз таки создаёт загрузочный iso со всем необходимым содержимым.
Тогда нужно уточнить формулировки с самого начала текста. Не "дистрибутивы" linux, а загружаемые образы или что вам больше нравится. Из-за этого я дальше по тексту поломался.
>нужно уточнить формулировки с самого начала текста
>программа Booty, которая позволяет одной командой создавать загрузочные образычукча не читатель
Кому какое дело что ты поломался
>ну а где вы этот iso возьмёте?K3B сделает.
> ну а где вы этот iso возьмёте?Сделаю с помощью http://altlinux.org/m-p -- как и последние лет десять, а что? :)
>mkimage-profiles, или m-p — технология создания семейств дистрибутивов свободного программного обеспечения на базе репозиториев ALT.если своместить пример из топика с утилитой из коммента, то можно сделать загрузочный образ генту "на базе репозиториев ALT."
щщикаааааарно
А ещё что-то было в АльтЛинуксе для генерации всяких там сборочек. Неужто такая популярная задача, что в каждом гараже её заново решают?
> для генерации всяких там сборочекSUSE Studio?
Миша, залогинься, реклама не прошла.
Дружище, я всегда подписываюсь.
Это достаточно специфическая задача с учётом того, что средства ранней загрузки, инсталяторы и прочие листовые пакеты в графе зависимостей бывают разные (понимаю, что у изобретателей машины для бритья на это своё мнение, но пусть сперва повзрослеют).Ссылку дал рядом, не дочитав было до этого вопроса -- но вот, вдруг заложенные идеи ещё кому пригодятся (в той же OBS зависимостей между описываемыми образами не было, когда несколько лет назад смотрел, а это ключевое для сохранения внимания и времени при выпуске семейств образов): http://altlinux.org/m-p
Но сабж -- немного другого класса утилита: оперирует не репозиториями, а бинарниками из чего-то уже существующего, решая вполне типовую и полезную задачу (хотя я думал, что за последние лет десять, если не двадцать, она более-менее решена во всех полезных дистрибутивах).
В некотором смысле это аналог подобных генераторов/обработчиков, только с более широкой и универсальной функциональностью на своей задаче:
http://git.altlinux.org/gears/m/mkimage.git?p=mkimage.git;a=...
http://git.altlinux.org/gears/m/make-initrd-propagator.git?p...
http://git.altlinux.org/gears/m/make-initrd-netboot.gitPS: Иван, Вас ещё никто не спрашивал насчёт тайного смысла "#! /usr/bin/env sh", если на POSIX-системах явно никак не меньше шансов найти /bin/sh, чем /usr/bin/env? :)
Хорошее название. Хочу.
> Хорошее название. Хочу.Оно что, грабит корованы?
А то автор явно гонит. Или наивный. "Don't be afraid to run shell-exploits". Хы, это он просто не видел списки сервисных команд у накопителей или периферии какой, от рута ему не страшно видите ли запускать. Экий наивный чукотский юноша :)
Название отдает харассментом.
Да и ветка в гит-репозитории какая-то расистская...
Домогательство к кому? booty есть у каждого хомосапиенса, независимо от пола, цвета кожи и пр.
Нет, тут феминистки вероятно увидят сексуальную объективацию. Если уж в blacklist/whitelist нашёлся расизм, то тут тогда вообще всё очевидно.
Раньше проект назывался по-другому.
А почему фуминистки? Ты сейчас ущемляешь геев!
Нужно. Потенциально должно сэкономить кучу работы руками
ну хоть один. спасибо. позвольте я расскажу о своих юзкейсах.все мои компьютеры дома, сервера, VDS, работают отныне в tmpfs. я сам живу в tmpfs.
я настраиваю всех дистрибутивы локально, пишу скрипт для сборки: от установки chroot-окружения (pacstrap, debootstrap, cruxstrap тоже мой проект), до создания загрузочного ISO.и всего одной командой на выходе получаю загрузочный образ. initrd, если мне надо просто обновить систему удалённо через kexec, или iso, если мне надо ногами дотопать воткнуть флешку.
я работаю из под рута, не боясь сломать систему. я не боюсь сделать rm -rf /, я перезагружу систему кнопкой Reset и она вернётся в своё первичное состояние. больше не нужно делать бэкапы системы, её настройки описываются в билд-скрипте локально, вы можете пересобрать образ где угодно.
делай раз: mkbootstrap crux_gnulinux chroot/ /mnt/crux/core/*
делай два: mkinitramfs initramfs/ > initrd
делай три: mkbootisofs iso/ --overlay chroot/ --squashfs --efi grub2 --output bootable.iso
понимаете? всего три команды чтобы развернуть систему в чруте и закатать её в загрузочный образ, будь то iso или initrd, во втором случае команды будет две.
я пробовал Gentoo, пробовал Arch Linux, -- установил его через виртуальную машину, затем смонтировал образ диска, и упаковал корень /mnt/archlinux как --overlay, и пожалуйста:
http://dl.voglea.com/gentoo.png
http://dl.voglea.com/archlinux.png
загруженная система будет работать в tmpfs или squashfs+overlayfs по вашему желанию.
устанавливаете систему, настраиваете один раз, создаёте загрузочный образ одной командой.
бутстрапите чруты, настраиваете в отдельной директории, чтобы потом чруты можно было переустановить удалением директории, а настройки ваши оставались в другой, и создаёте два оверлея:
mkinitramfs initramfs/ --overlay server-home/ --overlay rootfs-changes/ --squashfs --output initrd
и прямо из работающей системы выполняете команду: kexec -l vmlinuz --initrd=initrd && kexec -e, и ваш система перезагружается в этот initrd с упакованным в нём GNU/Linux дистрибутивом! всё!
никаких жёстких дисков, никаких больше бэкапов. бэкапить нужно только ваши данные, но не систему.
найс?
> я не боюсь сделать rm -rf /"Безумству храбрых ..."
https://www.opennet.dev/opennews/art.shtml?num=43795
> Выполнение rm -rf / может привести к неработоспособности UEFI-прошивки ноутбука
> 01.02.2016 09:44
Я не стал в общем читать эту простыню. Вы там что-то пытались доказать?
У кого-то явно много свободного времени :-)
Это нормально, пока учишься делать активнее, чем делаешь :-)Потом заводятся, к примеру, деньги на _свои_ палатку-спальник-итд, но куда-то девается время на _свои_ походы...
Это старость и угасание энтузиазма, и не стоит валить на занятость.
> Это старость и угасание энтузиазма, и не стоит валить на занятость.Да уж прям старость в двадцать четыре-то. Оказалось, синдром неспецифичный -- потому и счёл стоящим упомянуть. Точнее, вот тогда-то и понял иных знакомых постарше, которые с радостью одалживали снарягу -- "сходи хоть ты"...
> Да уж прям старость в двадцать четыре-то.Вы себе явно льстите.
А как модули ядра переваривают kexec?
В частности что произойдёт если в системе запущенно несколько виртуалок, очень интересует безболезненное обновление DRBD.
> А как модули ядра переваривают kexec?Это аналог ребута, только без посещения system firmware. Ядро рестартует с ноля. Модули тоже рестартуют с ноля.
> В частности что произойдёт если в системе запущенно несколько виртуалок, очень интересует
> безболезненное обновление DRBD.Если вы сделаете kexec на _хосте_ - виртуалки вылетят как будто вы нажали ресет. Если в виртуалке - перезапустится только затронутая виртуалка. Судя по вашему спичу вы хотите что-то типа live patching вообще.
Звучит логично, спасибо. Просто думал что kexec производит какую-то хитрую операцию по сохранению RAM и восстановлению процессов после загрузки.
> Звучит логично, спасибо. Просто думал что kexec производит какую-то хитрую операцию по
> сохранению RAM и восстановлению процессов после загрузки.Уж очень хитрая операция нужна, см. проект CRIU.
> я работаю из под рута, не боясь сломать системуЭто проходит с опытом, когда понимаешь, что разумные самоограничения -- в первую очередь средство экономии времени и сил при пальбе по своим ногам (в zsh есть ряд интересных подстраховочек на такие случаи, начиная с разбора параметров конкретно команды rm и возможности подождать-сбросить буфер-спросить: действительно ли надо именно rm * ~).
По-моему, обычным способом реализации такого режима работы является как раз LiveCD, причём обычно можно ровно так же закатывать гибридный образ на флэшку или стационарный загрузочный диск.
Ещё из проектов с перекликающимися идеями, только существенно более давний/развитый (насколько помню, вырос из образовательной среды), есть MagOS -- см., например, http://forum.altlinux.org/index.php?topic=33970 -- возможно, будет интересно познакомиться с neobht, интересный человек и грамотный. Хотя понятно, что свой скриптик для настройки easycyrillic ничьим иным не заменить ;-)
Ну и был такой проект http://altlinux.org/Netbook-live -- к сожалению, с автором последние лет пять общаться уже не получается.
> я работаю из под рута, не боясь сломать систему.Как насчет автоматы в щитке убрать и попробовать прыжки с парашютом без запасного? :)
> все мои компьютеры дома, сервера, VDS, работают отныне в tmpfs. я сам живу в tmpfs.
Не канает для больших рабочих наборов. И RAM жрет, при том что ее можно было бы допустим дисковому буферу отдать, с соотв прибавкой перфоманса в том случае.
Ну и в такой системе дико неудобно изменения делать. У виртуализаторов и даже просто ФС с CoW это лучше решается: можно и persistent state иметь, и откатить его до снапшота если вдруг то что получилось - не понравилось.
> вернётся в своё первичное состояние.
Ежели вам вон тот свопфайл (или что там у вас) в какой-нибудь hdparm --fwdownload завернуть, или попробовать что-нибудь не менее интересное (рут может довольно много, а с kexec - так и вообще совсем все) - то что у вас получится перезагрузка и девайсы выйдут на режим - далеко не факт. А на вон той виртуалке вы так, допустим, не сможете. Потому что она не настоящая и апдейтить фирмварь виртуальному накопителю... нууу... теоретически, эмуляцию можно и накодить, но зачем? :)
> больше не нужно делать бэкапы системы, её настройки описываются в билд-скрипте локально,
> вы можете пересобрать образ где угодно.А бэкапы всех потребных фирмварей у вас есть? :) Можно для начала с flashrom начать, позырить умеет ли он в стирание вашего bios'а, допустим. И заодно проверить как от стертого биоса ресет помогает. В современной системе можно просто EFI vars помучать, иногда получается интересно.
> делай три: mkbootisofs iso/ --overlay chroot/ --squashfs --efi grub2 --output bootable.iso
А потом жмем ребут - хренакс - хренакс - а чойта?! Сервак диски не видит? А, это ж вообще всего то вендорской утилей фирмвару контролера обновили, и она ... теперь не находит взаимопонимания с системным фирмваре или ОС :). Ну а что, от рута можно и RAID на серваке перешить, утилитка для этого на сайте производителя лежит. Порой даже и под линукс уже.
> понимаете? всего три команды чтобы развернуть систему в чруте и закатать её
> в загрузочный образ, будь то iso или initrd, во втором случае команды будет две.Снапшотами как-то поприкольнее ворочать. А сделать stateless на уровне тупороутера-мыльницы из компа или сервера все же уже неудобно. Да и даже на роутере openwrt как раз хорош тем что умеет в overlay с state'ом, в отличие от фабричной дроявной фирмвари, куда даже прогу хрен поставишь напостоянно. А ребилдить системный образ каждый раз когда какая-то прога потребовалась все же несколько не рационально...
> устанавливаете систему, настраиваете один раз, создаёте загрузочный образ одной командой.
Оно тоже полезно временами - но все же не такая супер-панацея.
> и прямо из работающей системы выполняете команду: kexec -l vmlinuz --initrd=initrd
И все же kexec не 100% аналог ребута и далее возможны варианты. В лучшем случае это прокатит, конечно.
> никаких жёстких дисков, никаких больше бэкапов. бэкапить нужно только ваши данные, но не систему.
Я у себя сделал снапшоты. Системе один, данным другой. Если с системой доигрался - вернулся на более старый, да и делов. А если мне на десктопе вон та прога понадобится и я ей планирую пользоваться далее - мне что, системный образ ребилдить и реимажить? Это канительнее установки пакета. С снапшотами это как-то более плавно друг от друга развязано.
> найс?
Со своими плюсами и минусами.
Спуфинг, ты молодец. Так держать!
(следил за процессом на лоре)
спасибо!
Посмотрел на первую строчку первого попавшегося файла:#! /usr/bin/env sh
Дальше смотреть явно смысла нет.
Ах, да, я же на опеннете, сейчас какой-нибудь иксперт решит, что я просто не люблю шелл. Вот специально для него: дело не в этом.
Знаете, почему Вы глупо поступили? Потому что не соизволили вылезти из своей башни слоновой кости перед отправкой своего ну очень уверенного комментария. И проверить матчасть самостоятельно, а затем постараться донести уже проверенное/дополненное/опровергнутое понимание до коллег.В общем, если судить по одной строчке, я бы скорее его к себе позвал, чем Вас. Но это ведь тоже было бы опрометчивое суждение. :)
> я бы скорее его к себе позвал, чем ВасИ правильно. Если бы позвал меня, был бы послан очень далеко.
Вы не поняли -- Вы уже пошли далеко. :)
а что вы, простите, ожидали увидеть? смуззи-технологии? python запускающий nodejs?данная программа должна быть максимально портируема и независима от окружения и/или дистрибутива.
вы наверное будете неприятно удивлены, узнав, что makepkg в вашем Арчике это тоже "баш-портянка".
Я думаю он подразумевал то что автор шизофреник судя по коду.
автор -- я. интересно, почему это? не понравилось /usr/bin/env sh? это единственный верный способ для запуска POSIX shell интерпретатора, поскольку сам sh в различных дистрибутивах лежит в разных местах: /bin/sh, /usr/bin/sh, а env лежит всегда в /usr/bin/env. что не так-то?
Можно, пожалуйста, пример дистра, в котором есть /usr/bin/sh и нет /bin/sh (даже в виде симлинка)?
В NixOS у тебя сработает `#!/usr/bin/env sh` и не сработает никакой `#!/bin/sh`, например
Все правильно в этом месте автор сделал
В NixOS /bin/sh есть. Ты такой же эксперт, как и автор этого скрипта.
В процессе создания программы мне писали пользователи различных дистрибутивов, к слову, пользователей Debian я до сих пор обижаю, не переименовывая mkinitramfs (не знаю во что переименовать).Соответственно, мне приходилось ставить дистрибутивы тех пользователей и повторять баги самому. Так вот один из багов. Пользователь Manjaro Linux. Пишет, что у него не загружается /init из initramfs, kernel panic.
Я так же как и вы, использовал #! /bin/sh в /init для initramfs образа. Оказалось, что sh в Manjaro лежит в /usr/bin/sh, и при копировании "родных" утилит в initramfs интерпретатор sh копируется в свою директорию /usr/bin/sh. А у меня в /init стоит #! /bin/sh. Вот поэтому /init не мог запуститься ядром и случался kernel panic.
Теперь я везде пишу #! /usr/bin/env sh и со 100% уверен, что sh будет исполнен где бы тот не находился.
Такая предыстория. А теперь отвечая на ваш вопрос, скажите, где лежит sh в дистрибутиве Manjaro? Могу скачать сам посмотреть, но мне лень.
Это следствие криво сделанного initramfs. «Спасибо» Лёньке Потному,теперь почти во всех дистрах /bin стал симлинком на /usr/bin. Похоже, в initramfs про симлинк забыли.
Вообще же, если говорить не о systemd/linux, а более общо, куда выше вероятность того, что /usr/bin не будет на месте, потому что /usr может быть не смонтирован. Скрипт с шебангом #!/bin/sh в таком случае хотя бы запустится (но не факт, что сможет что-то полезное сделать, конечно).Я таки посмотрел скрипт чуть более детально, и прошу прощения за наезд: написан он весьма грамотно. Но, как говорится, есть нюанс. Уже был проект, пытавшийся делать загрузочные флешки из каких угодно iso, может быть, даже и сейчас есть. К счастью, я не слышал про него достаточно давно, чтобы забыть название (ну все поняли, о чём я, очень популярная штука была). Дело в том, что, как они ни старались, вероятность получить загружающуюся систему была примерно такой же, как встретить динозавра на улице. Вероятно, что-то они чинили, в результате переставало работать другое… За сотней дистрибутивов угнаться — это не за какими-то там двумя зайцами. В конечном итоге некоторым дистростроителям надоели жалобы юзеров на левую, в общем-то, утилиту, и они везде, где только можно, написали, что она не поддерживается. Так вот, дело там было не в криворукости разработчиков, а в изначальной провальности самой затеи. Тут она ещё более масштабная, а значит, и сложностей будет больше, и ломаться будет чаще. Короче, не верю я, что это будет жить. Как учебный проект или дополнение к резюме — вполне норм.
Ненавижу манджару, манджара гавно, не надо делать поддержку манджары, пусть стралают
sh в Manjaro лежит в /bin/sh. У него было сломана система, а он тебе баг накатал. А ты вместо того, чтобы послать идиота, сам им стал.
А где sh лежит в initramfs у Manjaro?
Думаю, он ожидал что в любой системе [на поддержку которой не жалко тратить время] можно писать просто #!/bin/sh
Честно говоря, у меня тоже такие ожидания есть.
Applications should note that the standard PATH to the shell cannot be assumed to be either /bin/sh or /usr/bin/sh, and should be determined by interrogation of the PATH returned by getconf PATH
Сначала объясни это вон тем чувакам: https://www.sourceware.org/bugzilla/show_bug.cgi?id=12678
там правильно ответили - зачем системе искать где в системе шелл?
Спасибо за ссылку и цитату. Трагично это, конечно, но придётся в дальнейшем учесть.
Как настоящие позикс-мужыки определяют путь до интерпретатора в шебанге: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/s...
PS: ага, уже спрашивали."Не судите опрометчиво" (ц) радикал Кишелье
Не поленился чуть копнуть -- и вот:
---
Applications should note that the standard PATH to the shell cannot be assumed to be either /bin/sh or /usr/bin/sh, and should be determined by interrogation of the PATH returned by getconf PATH, ensuring that the returned pathname is an absolute pathname and not a shell built-in.For example, to determine the location of the standard sh utility:
command -v sh
On some implementations this might return:
/usr/xpg4/bin/sh
--- http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh...М-да, тяжёлые были времена.
PPS: разумеется, после отправки комментария он оказался под (чуть менее точной) той же ссылкой ;-] Хороший признак.
Да что вы все про эти applications цитату цитируете? Не знаете, для кого shebang пишется? Он не applicationом каким-то интерпретируется, а ядром. Как сказать ядру использовать getconf, а? Расскажи, всезнайка очкастый. И где там сказано, что использование /usr/bin/env чем-то лучше?
Вообще, по той же ссылке написано, как делать совсем уж «правильно». Буквально несколькими строчками ниже. И это таки не имеет никакого отношения к /usr/bin/env. Но я всё равно продолжу использовать #!/bin/sh (в скриптах без инсталлятора, по крайней мере), потому что это более переносимо и менее уродливо, чем #!/usr/bin/env sh.
Перечитайте #20. Но да, я тоже оставлю #!/bin/sh и предложу чинить сломанное там, где его нет (или писать под такое самостоятельно).
Это как в справочнике по C (Болски, вроде?) написано что-то вроде - "нельзя полагаться на то, что у байта на вашей машине будет 8 бит". :)
> ... в котором могут использоваться родные утилиты ...Благодарность автору за то, что пишет "родные" вместо "<очень плохое слово>"
Родные хоть и родная но херовая замена нативным
Теория от практики отличается больше на практике, чем в теории.
Спуф, а ШВИМ и alpha'ч уже забанили это название на тРОЛе?
его на гитхабе скоро забанят.
На ЛОРе все няшки и поньки. :3
ну да людей почти не осталось
даешь понячую колбасу
Спуфинга знатно бомбануло :)Его тема в толксах: "ААААА!!! НЕНАВИСТЬ!1111 Или как я создавал тред на opennet.ru"
Да уж, с ломанувшимися сюда в ~2008 лоровскими анонимами много... дигидрогенсульфида... принесло, увы.
лоровские регистранты стали гораздо хуже
и это тоже бай-продукт репрессивных мер
надеюсь на лоре метапрог отравит звенидара и фрактала и станет главным контрибутором в ветку неправильных сообщений (и главным модыром до кучи)
короче станет королём РОЛаэтот сайтик не заслуживает ничего менее ужасного
Спасибо, так получилось что для меня это нужно и актуально.Занятно, как раз вчера или позавчера наткнулся на аналогичный проект: https://github.com/Tomas-M/linux-live
Плюс, задолго до этого в то же место заметок в разное время были добавлены (да, это разные проекты, но всё крутится вокруг близких задач):
https://github.com/neobht/uird
https://github.com/unixabg/remaster-iso
https://github.com/zac87/debootstrap_live
https://github.com/sharhalakis/fsprotectА ещё мне уже двое недавно посоветовали использовать xCAT для создания загружаемых по сети образов.
Посмотрим, что из этого в итоге у меня приживётся для разных задач.
Надеюсь, не придётся велосипедить.
В случае с моим проектом у вас есть русскоязычная поддержка, пинайте на ЛОРе если что.Успешно использую в продакшене. Самый частый баг, когда пользователи ставят свои ядра, в которых "всё должно работать". Правда в том, что всё зависит от модулей в ядре. Я рекомендую всем make defconfig ядро, и ручками ещё включить Overlay FS и SquashFS XZ. Моим проектом пользуется уже достаточно людей, чтобы иметь хорошую обратную связь для исправления ошибок. То, что описано в новости, лишь верхушка возможностей. Для того, чтобы собрать собственный дистрибутив больше не нужно велосипедить и ломать голову, всё сделано за вас.
Ещё немного истории.
http://dl.voglea.com/crux36-embedded-qemu.png
Вот, давеча сделал сборочку а-ля "Proxmox на минималках", собрал дистрибутив загружающийся в tmpfs (SquashFS + Overlay FS) с QEMU. Всего 200мбайт занято показывает htop, это включая и саму корневую файловую систему, и расход на сервисы "из коробки". Сервак стоит в кладовке.
А в этом "Proxmox на минималках" будут запускаться QEMU, в которых линуксы тоже в свою очередь будут загружаться в RAM. Образы получать по DHCP. Абсолютная отказоустойчивость. Никаких тебе HDD, никакого резервного питания. Только не забывай время от времени rsync'ать данные с виртуалок в надёжное место.
Скрипт для создания сборки: https://github.com/sp00f1ng/booty/blob/c1d8fb2305d2c067b122f...
Обычный CRUX Core + QEMU, хотя можно и любой другой дистрибутив взять за основу, booty позволяет создавать загрузочные образы с любыми дистрибутивами. Хотите, Arch Linux, хотите Debian, хотите Gentoo используйте в качестве --overlay при создании образов.
И да, booty очень похож на проект на автора SLAX, Tomas M.
Я сам пользовался SLAX долгое время, проникся им, когда кнопочкой Reset решается всё. С тех пор мне конечно же хотелось, чтобы я мог любой линукс сделать как SLAX. Теперь такая возможность есть у всех.
Ну ладно, Оки. Только я все таки храню overlay на ext4 (при буте с dvd на tmpfs, при буте с флэшки на ext4) .
Squash то как хранится, надеюсь не в initrd, а файлом на iso?
Если вы прочитаете новость, то узнаете, что, mkinitramfs --overlay помещает оверлей в initrd, а mkbootisofs --overlay помещает оверлей на ISO или USB-накопитель.Куда положите, там и будет искать.
Более того, есть опция загрузки, booty.search-rootfs=?????, которой в качестве параметра вы можете передать: файл, он же оверлей, например /filesystem.squashfs, и тогда он будет искать этот файл на всех накопителях в корне, и при нахождении загрузится в него, либо указать /system или любую другую директорию, с оверлеями, которые будут загружены, либо указать /dev/sda1, где установлена ваша ОС, и тогда целиком вся ваша ОС будет загружена в ОЗУ и работать как оверлей, а жёсткий диск /dev/sda вы можете отстегнуть. Да.
Я скачал и посмотрел. Хорошо сделано.
> Куда положите, там и будет искать.А вот это предположение может быть и неверным, как показано на http://web.archive.org/web/20171209162852/https://forensicsw...
(и да, в альте и это учтено -- в отличие от подавляющего большинства спасательных образов на основе дебиана, кроме разве что grml: "расследователю" с условным kali можно подсунуть initrd специального вида на особом жёстком диске или флэшке, который при загрузке получит управление и всё_сделает_как_надо)
> Самый частый баг, когда пользователи ставят свои ядра,
> в которых "всё должно работать". Правда в том, что всё зависит
> от модулей в ядре. Я рекомендую всем make defconfig ядро, и
> ручками ещё включить Overlay FS и SquashFS XZ.Думаю, это самая задалбывающая часть проекта -- ну кому в здравом уме охота поддерживать своё ядро?
Возможно, есть смысл сделать грепалку по /proc/config.gz либо /boot/config-`uname -r`, которая бы перед отсыланием в пешее ядросборочное проверила -- а не годится ли то, что уже под руками.
> Для того, чтобы собрать собственный дистрибутив больше не нужно
> велосипедить и ломать голову, всё сделано за вас.Ну не дистрибутив, а производное от образа, строго говоря ;-)
> Образы получать по DHCP. Абсолютная отказоустойчивость.
> Никаких тебе HDD, никакого резервного питания. Только не забывай
> время от времени rsync'ать данные с виртуалок в надёжное место.Вот здесь немного покривили душой или не подумали: выделенные пункты противоречат друг другу, при этом бесперебойное питание как бездисковых узлов, так и "надёжного места" (отказоустойчивость которого в данном разе легко оказывается определяющим фактором) всё так же полезно/необходимо.
Да, есть случаи, когда достаточно порой rsync'ать по часам или иным событиям, а задача некритична к возврату в одно из предыдущих состояний (возможно, несогласованное по данным). Но в базу так особо не попишешь обычно.
Если интересно, почитайте про уже прокопанные подходы к stateless-системам, это из той же оперы.
> Спасибо, так получилось что для меня это нужно и актуально.А что именно надо и на основе какого именно дистрибутива?
Например, ко мне как-то постучался в почту человек, которого почти полностью устроило http://altlinux.org/rescue для загрузки на узлах небольшого кластера, но что-то хотелось бы доточить. Удивился тогда ещё, не проще ли сразу выпекать образ "под себя". Не помню, чем закончилось, но генерировать такое обычно надёжней и быстрей, чем патчить.
> А что именно надо и на основе какого именно дистрибутива?Нужное разное (в смысле, есть две разные задачи, как минимум), на основе, пожалуй, Debian.
> Например, ко мне как-то постучался в почту человек, которого почти полностью устроило
> http://altlinux.org/rescue для загрузки на узлах небольшого кластера, но что-то хотелось бы доточить.Благодарю, как минимум в одной задаче это может существенно помочь.
скачать исошку с официального сайта
или париться, делая самомукакой однако сложный выбор
мне периодически требуется устанавливать ось с исошек удалённо, через IP-KVM. Net-install исошки весят по несколько сотен метров (например, Centos 7 - 422 MB), а интернет не всегда позволяет эти сотни метров заливать на удалённый сервер.
лично мне будет удобнее попариться и самому сделать облегчённую исошку на несколько десятков мегабайт, чем использовать официальную.
Так что автору луч добра; нужно, годно, ждём ебилдов.
Опять же из альта как-то делал образы вида "ядро+initrd", лет десять назад они весили что-то метров шестнадцать.
Но из альта нельзя сделать центось.
Это фича.
Fennec F-Droid - ничего не пришло.
Шедевр, я считаю - https://github.com/sp00f1ng/booty/issues/8
Я могу сделать загрузочные не Линукс дистрибутив с помощью этого?
Под не линуксом я подразумеваю FreeBSD и https://ru.wikipedia.org/wiki/Illumos
Интересно! В качестве замены LTSP подойдёт?
> Интересно! В качестве замены LTSP подойдёт?LTSP решает две задачи -- организацию сервера приложений + доступ к нему (в т.ч. проброс устройств) _и_ сетевую загрузку (вместе с серверной частью); сабж занимается в т.ч. подмножеством второй задачи, насколько понимаю.
Т.е. "нет, но при желании можно задействовать в замене".
Хорошая штука, спасибо автору!
не работает нифига
делал точно по вышепредставленному мануалу на свежеустановленной манджаро - https://i.imgur.com/MQSx5pM.png
пока что не пытался разобраться что ему не хватает так как не работает даже ввод в консоли.
кстати, при попытке загрузиться через UEFI нет даже этого выхлопа, там вообще ничего нет..
> не работает даже ввод в консолидай угадаю, ты взял Арчевское ядро.
выше один пользователь написал очень хороший комментарий, почему такие поделки не взлетают: каждый пихает что захочет и потом
> не работает нифига
поверьте, работает.
начните с того, что скачайте ядро с kernel.org и соберите: make defconfig && make, затем вместо Арчевского ядра положите дефолтное, arch/x86/boot/bzImage
да, баги есть, мелкие, вроде отсутствующей проверки на установленный cpio, ведь подразумевается что создавая initrd, который делается только через cpio, этот самый cpio будет установлен. но нет, Issue открыли. буду вносить проверки теперь.
> при попытке загрузиться через UEFI нет даже этого выхлопа
очень интересно, вы ведь указали -bios ovmf для qemu? проблема загрузки в efi действительно имеется, актуальна она для ISO / SYSLINUX, -- SYSLINUX вообще не поддерживает загрузку UEFI с ISO образов.
ещё баги могут всплывать на реальном железе, это тоже правда. но виртуальная машина всеядная, загружает всё, даже то, где явно не указан EF-раздел.
будьте на связи, будем разбираться. поверьте, вы не первый, так говорит.
> дай угадаю, ты взял Арчевское ядро.5.6.19-2-MANJARO
> очень интересно, вы ведь указали -bios ovmf для qemu?
указал. как бы я иначе еще смог попытаться загрузить систему с UEFI ?
> проблема загрузки в efi действительно имеется, актуальна она для ISO / SYSLINUX
делал по вашему примеру, а там --efi grub2
> выше один пользователь написал очень хороший комментарий, почему такие поделки
это типовейшее оборудование (qemu) и типовейшее ядро. у меня на этом ядре успешно запускается все мое оборудование, начиная от китайского телефона и заканчивая двухпроцессорной рабочей станцией от Dell. и загрузка по сети работает для бездисковых станций и какие угодно squashfs с каким хочешь сжатием и т.д...
> поверьте, работает.
у меня тоже все мои скрипты работают. но заработают ли они еще у кого-то?
> начните с того, что скачайте ядро
качать и канпелять я умею... только вот какое дело - в таком случае ваше issue под номером 1 получается как нельзя к месту, понимаете?
мне весьма бы пригодился инструмент под мои задачи. но если нужно что-то качать и канпелять... да я вручную все сделаю и получится быстрей и лучше (благо манджаровский initrd умеет работать с squashfs с оверлеями и умеет все грузить в память, достаточно добавить параметр copytoram).> будьте на связи, будем разбираться. поверьте, вы не первый, так говорит.
завтра попробую загрузить на живом оборудовании, может чего увижу...
> качать и канпелять я умею...тогда почему вы не можете понять, почему арчевское ядро не работает?
в арче все драйвера скомпилированы как модули. вы загружаете ядро, которому неоткуда взять эти модули. поэтому ничего не работает. да, даже ввод с клавиатуры. потому что даже драйвер клавиатуры тоже собран как модуль.
начните с того, чтобы собрать make defconfig ядро, если хотите продвинуться в этом вопросе.
все, теперь понял - вопрос закрыт.
инструмент походу предполагает вканпеляцию всего и вся в ядро.
ну что ж, я тоже так делал 15 лет тому, когда был гентушником...))> тогда почему вы не можете понять
да, каюсь. вина целиком моя.
я было обрадовался, что наконец-то кто-то написал некий универсальный инструмент...
и не только написал, а еще и расписал его таковым.
а что касается модулей ядра, хз.. мне казалось что скрипт подхватит их из системы или же просто добавит необходимый минимум..
а теперь я понимаю, что нужно было хорошенько подумать когда увидел issue №1
> инструмент походу предполагает вканпеляцию всего и вся в ядро.вот это, кстати, надо вынести в ридми.
написал вот каммент и только потом дошло - откуда ваш скрипт вообще берет модули при создании initrd ?
про это нет ни слова здесь в новости, а простыню на гитхабе я не читал естественно...
походу оно без модулей ядра у меня получилось (initrd) вот и не грузится.
подготовить ядро это ваша задача, в пятый раз в этом треде пише: make defconfig
> подготовитьчто бы не пришлось повторять несколько раз, нужно изначально не вводить людей в заблуждение.
как минимум не писать "любой дистрибутив GNU/Linux" и уточнять, что придется руками канпелять ядро, еще и монолитно вкомпиливая все драйвера в него.
тогда и проблем не будет с пониманием. а то, прикинь, люди ожидают некий универсальный скрипт, который поможет им облегчить какую-то "монотонную работу" (аж целых пять команд ввести), а на деле оказывается, что помимо этой монотонной работы приходится еще чего-то качать и канпелять, попутно ломая идеологию "любого дистрибутива".
> выше один пользователь написал очень хороший комментарий, почему такие поделки не взлетаютВидите ли какое дело, юноша... В свете вот этой вашей рекомендации:
> Я рекомендую всем make defconfig ядро, и ручками ещё включить Overlay FS и SquashFS XZ.
поделкой выглядит именно ваше "поделие", ни как не ядро Арча.
Причем поделкой исключительно крaсноглазo-гентушного уровня.
Потому что initrd в тех же арче и манджаре умеют из каробки все тоже самое, что и вы "добавили" в свое поделие и пытаетесь тут преподнести как какую-то уникальную фичу. Да, всего лишь несколько команд и один аргумент в загрузку и вуаля - та же самая загрузка в оперативку и работа без носителя.
И все это без крaсноглазия, без скачивания ядра и без его сборки. Сохраняется полная целостность системы. Так что все "взлетает" из коробки. "Не взлетает" здесь только ваше поделие если ядро не канпелять, как мы можем видеть из треда.
я покидаю этот тред, если потребуется помощь и будут вопросы, спрашивайте на ЛОРе.
> я покидаю этот тред, если потребуется помощь и будут вопросы,
> спрашивайте на ЛОРе.Передайте кто-нить человеку предложение глянуть мои сообщения: на ЛОР с 2003 года не хожу, кроме нескольких случаев, когда особо просили.
Вдруг что-то из наводок или уже набитых шишек пригодится.
Написать о том что ушел из темы, не лень было, а ответить на мой вопросЮ можно ли использовать бути для FreeBSD и illumos лень было. Делаю вывод что нельзя.
Spoofing, зачем ты поменял название?
Скрипты, которые создают загрузочный ISO образ, LiveCD/DVD. Поддерживается только Gentoo. Сборка ISO образа с набором софта и зависимостей под заказ. Результат: клонирование рабочей системы на загрузочный LiveCD/DVD, загрузка посети как толстого клиента (с LiveCD/DVD или жесткого диска), установка с LiveCD/DVD или по сети на жесткий диск.https://sourceforge.net/projects/monitoring/files/DYSTRYK/DY.../
Пример: https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../
Spoofing, посмотрите в сторону UIRD, если заменить им Ваш инитрд сборки сразу станут много функциональнее.https://github.com/neobht/uird
https://gitter.im/uird/discussion
https://forum.magos-linux.ru/c/uird/З.Ы. И поддержка тоже на русском :)
Usage: mkinitramfs [option]... -o outfile [version]Options:
-c compress Override COMPRESS setting in initramfs.conf.
-d confdir Specify an alternative configuration directory.
-k Keep temporary directory used to make the image.
-o outfile Write to outfile.
-r root Override ROOT setting in initramfs.conf.See mkinitramfs(8) for further details.
вот как-бы так:
/sbin/mkinitramfs: unrecognized option '--overlay'
/sbin/mkinitramfs: unrecognized option '--squashfs'
/sbin/mkinitramfs: unrecognized option '--output'
может в антиксе какой-то особенный mkinitramfs ?