Как создать собственный Live-дистрибутив на базе Debian Linux?
Доброго времени суток, уважаемые!
Изучаю вопрос создания собственного Live CD/USB дистрибутива на базе Debian Linux. По существу требуется минимальный Debian с конкретным набором программного обеспечения, умеющий загружаться с usb-флешки, который можно легко обновлять и иметь возможность сохранять изменения внесенные в систему.
Подскажите, пожалуйста, доходчивое руководство или поделитесь собственным опытом.
Спасибо!
Нет, с установкой Debian на флешку ни каких проблем нет. Меня интересует сборка собственного загрузочного образа, как в предложенном ниже руководстве (willhaley.com/blog/create-a-custom-debian-live-env..., что бы загрузочный образ был read only, но с возможность сохранять изменения и устанавливать ПО. Данную возможность, как я понял способны обеспечить технологии AUFS и UnionFS.
Adamos: прошу прощения за не грамотную формулировку! Имеется в виду, что сама система не изменна, ее не возможно "сломать" или внести изменения в ее структуру, но существует возможность устанавливать ПО и сохранять файлы на смежной файловой системе, что для пользователя не будет очевидным, для него это будет единое целое.
VladimirSE:
"Потому что они питались маленькими тюленями…
— Карликовыми морскими свиньями, обитающими в реках, — поправил магистр. — Не будьте невеждой. Не путайте тюленей с…
— …питались морскими свиньями, а морских свиней истребили, так как они походили на тюленей, и поставляли тюлений мех и жир."
Вы забыли уточнить - зачем вам неизменный образ, если пользователь все равно будет видеть измененный. Ради установки? Не проще вторую флешку с LiveCD завести, чем такой огород городить?
Adamos: не буду кривить душой и признаюсь, что мне просто интересно, я знаю, что такое реализуемо и хочу разобраться, а технологическое применение всегда найдется.
Интересное решение, обязательно поэкспериментирую! Но, тут человек создает установочный образ, а мне необходимо создать именно Live-версию, для работы с флешки. Я подразумевал использование squashfs и debootstrap, что бы не брать за основу какой то образ, а создать систему с нуля, попутно освоить процесс загрузки и инициализации системы.
Axian Ltd.: вот, это уже ближе к делу! Вопрос следующий, в данном руководстве создается просто Live-дистрибутив, а как сделать так, чтобы изменения в загруженной системе можно было сохранить и установленное ПО, так же оставалось на месте. Подобная идея реализована в Kali Linux (docs.kali.org/downloading/kali-linux-live-usb-pers..., и нечто подобное есть в Finnix, там можно устанавливать ПО из репозиториев, но после перезагрузки оно пропадает (но идея интересная). При создании Live, как указано в руководстве выше, система будет ругаться, что ФС смонтрирована только для чтения, и ПО не будет установлено. Знаю, что есть такие вещи как AUFS и UnionFS, но так и не смог найти руководства, в котором создается Live "с нуля" и применяются эти технологии.
Kali не сохранит установленные программы (точнее будет хранить если вы их поставите в каталог пользователя):
the preservation of data on the “Kali Live” USB drive — across reboots of “Kali Live”. This can be an extremely useful enhancement, and enables you to retain documents, collected testing results, configurations, etc.,
Т.е. будет храниться только то, что в домашнем каталоге пользователя. Ну или что они там подтягивают при монтировании.
Возможность оставить на флешке место под данные дают стандартные инструменты вроде unetbootin.
К сожалению, я сам с aufs не разбирался. Однако, если посмотреть, то Debian LiveCD поддерживает это "из-коробки", т.е. если сделать дистрибутив по инструкции, то в нем уже будет использоваться aufs. (https://en.wikipedia.org/wiki/Aufs)
Axian Ltd.: проблема в том, что ТС хочет, чтобы и наставленное в системные каталоги сохранялось. Но в отдельном "слое" ФС поверх неизменного LiveCD.
Стоя и в гамаке, имхо.
Axian Ltd.: Docker имеет смысл для поддержания работоспособными разных версий ПО. Тут же получается, что в него запихиваются обновления.
Кстати, когда ТС ядро обновит - его тоже в контейнер? ;)
Adamos: я про обновления ни чего не писал! Но, в упомянутом выше Finnix, это вполне работает. Я не уверен насчет ядра, но прикладное ПО там нормально обновляется и работает, хотя и до перезагрузки.
В контейнерах ядро не обновляется, его тупо не дают обновить. А если и удастся что-нибудь воткнуть, то с него все равно контейнер не загрузится, потому как в самом контейнере ядра нет.
Axian Ltd.: да мне и не нужно обновлять ядро или вообще что либо, необходимо иметь возможность ставить ПО, хотя бы до перезагрузки, и сохранять home. В принципе я разобрался как это сделать при помощи aufs.