Debian flash

Автор andrew, 08 марта 2011, 01:12:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

andrew

Есть ли возможность создать систему на основе Дебиана, которую можно установить на флешке как лайв систему с возможностью сохранению изменений? Что-то типа возможностей таких линукс систем как  pappyrus http://www.puppyrus.org/ или Magos http://www.magos-linux.ru/ Если есть такая возможность как это сделать? Слышал что есть аптосид с такой возможностью вроде, но хотелось бы использовать стабильные ветки.

deb6

Для этого aufs должна монтировать изменения не в память, а, скажем, в loopback-файл. Вроде бы была такая возможность, это можно понять, проанализировав initrd от лайва.
http://deb6.ru | http://deb7.ru | люди любят debian | Какие тролли, какие фиги? Значит, я зря мчался сюда из Парижа!

andrew

Спасибо, но мне чайнику немного непонятно. Стандартный usb live debian имеет такую функцию чтобы работая под лайвом сохранять настройки или добавлять новые программы? :) Вот у Вас на сайте есть я так понимаю не законченная статья по этому поводу  Установка Debian на USB-flash  http://deb6.ru/arts-usbflash.html . Я так понимаю стандартная живая флешка просто предназначена для установки дебиана и немного озгакомиться а полноценно работать на ней не совсем удобно из-за того что нельзя настройки сохранять личные.

qupl

Такое точно умеет PuppyRus, одна из последних версий которого "кушает" deb-пакеты.

deb6

#4
Цитата: andrewСпасибо, но мне чайнику немного непонятно. Стандартный usb live debian имеет такую функцию чтобы работая под лайвом сохранять настройки или добавлять новые программы? <!-- s:) -->:)<!-- s:) --> Вот у Вас на сайте есть я так понимаю не законченная статья по этому поводу  Установка Debian на USB-flash  <!-- m -->http://deb6.ru/arts-usbflash.html<!-- m --> . Я так понимаю стандартная живая флешка просто предназначена для установки дебиана и немного озгакомиться а полноценно работать на ней не совсем удобно из-за того что нельзя настройки сохранять личные.

У меня на сайте пока нет ничего, если там что-то есть - это моя недоработка <!-- s:) -->:)<!-- s:) --> А в той недописанной статье говорилось, про установку полноценной системы на флешку, где, например, мегабайт 500-1000 выделено на /, а остальное - на /usr, и /usr - на btrfs с включёнными опциями compress и ssd.

То же, о чём вы говорите - это squashfs + реальная фс для изменений + aufs. Так работает livecd, только реальная fs для изменений там это tmpfs или ramfs. Чтобы сделать вместо них реальный файл или директорию - это реализуется довольно просто, но есть ли оно в стандартном debian live - я не знаю, сейчас посмотрю их initrd.

Сообщение дополнено через 7 минут 10 секунд

Что-то не нашёл пока ничего такого, где монтируется - вижу, как - вижу, а как изменить - не вижу. Суслик.
http://deb6.ru | http://deb7.ru | люди любят debian | Какие тролли, какие фиги? Значит, я зря мчался сюда из Парижа!

andrew

для qupl

Насчет паппи и паппируса это я в курсе. Уже им пользуюсь пару месяцев. Есть там версия Lupurus которая с Убунтой завязана. И даже есть версия паппи которая с Debian завязана dpup называется. Однако о полной синхронизации репозитариев однако говорить нельзя все же. Поэтому иногда приходиться плясать с бубном по установке недостающих зависимостей каких либо библиотек. Новичкам как мне это не совсем удобно.

Для deb6
Я понял. Просто статья недописанная вот немного и не допонял.  :)  Просто слышал что в аптосиде есть такая фича и вот недавно столкнулся с тем что уже Мандрива так может работать, в версии Magos. Ну и подумалось что умельцы в Дебиане такое реализовали.  :) А вы может статью допишете интересно почитать. Кстати например в паппи что прельщает так это то, что учтено что на флешку не нужно часто записывать промежуточные даннные, чтобы срок работы флешки не уменьшать. У вас это каким-то образом реализуется?

deb6

Цитата: "andrew"для qupl
Для deb6
Я понял. Просто статья недописанная вот немного и не допонял.  :)  Просто слышал что в аптосиде есть такая фича и вот недавно столкнулся с тем что уже Мандрива так может работать, в версии Magos. Ну и подумалось что умельцы в Дебиане такое реализовали.  :) А вы может статью допишете интересно почитать. Кстати например в паппи что прельщает так это то, что учтено что на флешку не нужно часто записывать промежуточные даннные, чтобы срок работы флешки не уменьшать. У вас это каким-то образом реализуется?

Монтирование в tmpfs и монтирование в реальную систему - для aufs это мало разницы. По крайней мере Ubuntu это умела ещё несколько лет назад, возможно, и Debian live текущий уже умеет. Можно ещё в live-build 3.0 заглянуть.
http://deb6.ru | http://deb7.ru | люди любят debian | Какие тролли, какие фиги? Значит, я зря мчался сюда из Парижа!

andrew

Вот нашел как в Убунту решали проблему эту http://forum.runtu.org/index.php/topic,754.0.html Может кому то пригодиться :)

deb6

Угу, посмотрел на live от Squeeze. Достаточно создать файл изменений live-rw и добавить к загрузке ключ persistent
http://deb6.ru | http://deb7.ru | люди любят debian | Какие тролли, какие фиги? Значит, я зря мчался сюда из Парижа!

andrew

а может вы сможете написать подробное хау-ту? :) Для полных чайников типа где берем live версию, как файл сохраненки делаем live-rw, куда параметры дополнительные вставляем и т. п. :oops: Это был очень интересный и актуальный материал. Я по Дебиану покрайней мере не находил еще. В основном все ограничивается как сделать загрузочную флэху. А с такой фичей можно уже на флешке спокойно работать практически с любого компа на стабильном Дебиане. :Yahoo!:

kstati

Цитата: "andrew"а может вы сможете написать подробное хау-ту? :) Для полных чайников типа где берем live версию, как файл сохраненки делаем live-rw, куда параметры дополнительные вставляем и т. п. :oops: Это был очень интересный и актуальный материал. Я по Дебиану покрайней мере не находил еще. В основном все ограничивается как сделать загрузочную флэху. А с такой фичей можно уже на флешке спокойно работать практически с любого компа на стабильном Дебиане. :Yahoo!:

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

В ходе работы "с нуля" необходимо:
1. Собрать ядро с патчами и поддержкой squashfs, aufs; Учесть возможные казусы при разных конфигурациях на разных машинах.
2. Написать initrd скрипт, который создавал бы корень на базе sqashfs+указанный раздел (возможно и просто каталог).


По сути, создание такой флешки сводится к написанию маленькой операционной системы, размещаемой в initrd, которая выполняет функции:
Парсер настроек  (куда скидываются rw-данные)
Поиск самого себя
Монтирование сквоша+дельту в качестве будущего корня
Передача управления в корень.

На деле это означает немало хлопот. Было дело, создавал подобную систему на базе gentoo, но всё не смог решить проблему демонтирования корня, ибо initrd монтирует squash, который находится на каком-то разделе, который тоже требуется смонтировать.
А "полученая система" завершает работу даже не зная о том, что этот "какой-то" раздел был смонтирован.

В общем, если бы было всё так просто, то уже существовала бы большая кучка дистрибутивов с подобной фишкой ;)

Альтернативные варианты, в ходе которого рабочая система знает, что она на ro-fs и, беря настройки командной строки пытается подгрузить себе rw-раздел тоже страдают той же проблемой. чтобы initrd мог монтировать squash, он должен примонтировать раздел, на котором этот squash находится.

То есть потенциально работа squashfs+rw-область возможна, но в этом случае возникает проблема неправильного демонтирования несущего раздела.

Итак, кратко резюмирую откуда нужно начинать копать:
ядро: патчинг ядра (aufs, squashfs+lzma), компиляция ядра с поддержкой initrd
initrd: cpio, init, и, рекомендую изучить возможности busybox
В качестве неплохого примера initrd можно взять абсолютно любой livecd/livedvd

deb6

Зачем людей пугать?

Достаточно live-build, ядро дебиановское, initrd собирает live-build.

И в полученной live-build флешке достаточно в параметры загрузки добавить persistent, и в корень, как я понимаю, добавить файл live-rw, являющийся loopback-файлом (создать можно, напрмер так dd if=/dev/zero of=live-rw bs=1M count=1024 ; mkfs.ext4 live-rw, получится файл 1024 mb с ext4)
http://deb6.ru | http://deb7.ru | люди любят debian | Какие тролли, какие фиги? Значит, я зря мчался сюда из Парижа!

polzovatel

Люди, а не проще установить систему на флешку?
По сути получится то, что вам надо  :)

Только флешка от операционки в любом случае недолго прослужит - несколько месяцев (4-6 при частом использовании, как пишут те кто пользуются).

deb6

ЦитироватьПо сути получится то, что вам надо :)

В live-системе всегда можно привести систему к эталонной, очистив файл/каталог настроек.

Ну и сжатие. Куда проще squashfs, чем морока с /usr на btrfs или reiser4.
http://deb6.ru | http://deb7.ru | люди любят debian | Какие тролли, какие фиги? Значит, я зря мчался сюда из Парижа!

kstati

#14
Цитата: deb6Зачем людей пугать?

Достаточно live-build, ядро дебиановское, initrd собирает live-build.

И в полученной live-build флешке достаточно в параметры загрузки добавить persistent, и в корень, как я понимаю, добавить файл live-rw, являющийся loopback-файлом (создать можно, напрмер так dd if=/dev/zero of=live-rw bs=1M count=1024 ; mkfs.ext4 live-rw, получится файл 1024 mb с ext4)
не спорю, но возникает закономерный вопрос. подсвеченная фраза проверена? Если да, то - кайф

Сообщение дополнено через 4 минуты 10 секунд

Цитата: ПользовательЛюди, а не проще установить систему на флешку?
По сути получится то, что вам надо  <!-- s:) -->:)<!-- s:) -->

Только флешка от операционки в любом случае недолго прослужит - несколько месяцев (4-6 при частом использовании, как пишут те кто пользуются).
На мой взгляд не совсем то, что хотелось бы
squash-fs обладает возможностью СЖАТИЯ. Как следствие меньшее количество секторов будут считываться с медленной флехи, которая обладает ограниченым циклом записи-чтения.

То есть, да, предложенный вариант будет работать, но НЕТ, он не идеален.

В общем, если бы было всё так просто, то уже существовала бы большая кучка дистрибутивов с подобной фишкой ;)