Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Разработка PFS и Initrd => Альтернатива PFS => Тема начата: DdShurick от 14 Февраль 2017, 15:06:56

Название: mkaufs
Отправлено: DdShurick от 14 Февраль 2017, 15:06:56
 Пока вопросов больше чем ответов. Думаю.
Точки монтирования /$SYSMNT/aufs$N - корень, /$SYSMNT/changes$N - верхний слой rw. Если модуль примонтирован или это каталог, монтируем новым слоем к aufs$N, если "свободный" - создаём стандартную точку монтирования в /$SYSMNT/bundles$N/ ($N № aufs)
Проблемы с changes$N: Это либо точка монтирования tmpfs, либо ссылка на каталог на разделе. Первое требует много памяти, но удобно при паковке модуля, второе требует линуксовый раздел и удобно для сохранения в каталоге.
Вот и думай тут  :-[
Название: Re: mkaufs
Отправлено: betcher от 14 Февраль 2017, 15:12:28
Думаю нормально. А при каком раскладе в верхний слой много пишется? Все что приходит в голову большого размера не требует.
Название: Re: mkaufs
Отправлено: DdShurick от 14 Февраль 2017, 15:29:17
в верхний слой много пишется?
В момент создания aufs три "тени" : .wh..wh.aufs .wh..wh.orph .wh..wh.plnk, а дальше - сколько сами туда напишем. При extract может быть и много.
Название: Re: mkaufs
Отправлено: DdShurick от 14 Февраль 2017, 16:56:02
Заготовка (https://github.com/DdShurick/pfs-utils/blob/master/usr/bin/mkaufs). Требуется крытика.
Название: Re: mkaufs
Отправлено: betcher от 14 Февраль 2017, 17:03:00
Заготовка (https://github.com/DdShurick/pfs-utils/blob/master/usr/bin/mkaufs). Требуется крытика.
/$DEV/$MODULENAME - Это что?

Остальное норм. Там все понятно.
Название: Re: mkaufs
Отправлено: betcher от 14 Февраль 2017, 17:06:11
if [ 1 = 1 ];then - тут нет ошибки?
Заготовка же :)
Название: Re: mkaufs
Отправлено: DdShurick от 14 Февраль 2017, 17:42:22
/$DEV/$MODULENAME - Это что?
$DEV - устройство, раздел на котором будет создан каталог $MODULENAME
if [ 1 = 1 ];then - тут нет ошибки?
Здесь надо определять по ключу, но это ещё не написано.
Думаю по умолчанию tmpfs, по ключу -d в каталог на разделе.
Пожалуй всё это лучше использовать как библиотечную функцию.
Название: Re: mkaufs
Отправлено: sfs от 14 Февраль 2017, 18:20:19
$DEV - устройство, раздел на котором будет создан каталог $MODULENAME
Самое логичное ./ по дефолту . И проверить что это не то что нельзя
Название: Re: mkaufs
Отправлено: DdShurick от 14 Февраль 2017, 20:45:35
Самое логичное ./ по дефолту
Не спорю, но в данном случае место запуска (./) не имеет значения.
И проверить что это не то что нельзя
Можно, и уже кое-что сделано. Смотрите git (https://github.com/DdShurick/pfs-utils/blob/master/usr/bin/mkaufs).
Название: Re: mkaufs
Отправлено: betcher от 15 Февраль 2017, 05:48:53
То есть создается aufs  с одним rw слоем, этот слой либo tmpfs либо /раздел  /папка. Так? Почему не просто /папка ? (или даже file.img  для fat|ntfs)
Учитывая стандартизированное расположение точек монтирования штука получается специфичная для pfs-utils. Вряд ли она будет востребована отдельно. Может в либу?
В проверки фс кроме ext добавьте, пожалуйста, еще btrfs, и прочие ныне модные.
В остальном вроде нормально. Переменных никаких не надо, мне кажется. Кода завершения достаточно особенно если будет либа :)
Название: Re: mkaufs
Отправлено: DdShurick от 15 Февраль 2017, 08:54:54
Почему не просто /папка ?
Не монтируется :(
или даже file.img  для fat|ntfs
Теоретически это можно, но практически геморрой. Не думаю, что у разработчика не найдётся подходящего раздела.
Может в либу?
Я это и предлагал.
Переменных никаких не надо
Пожалуй надо UMNTME - что отмонтировать по окончании.
Название: Re: mkaufs
Отправлено: betcher от 15 Февраль 2017, 10:09:09
Цитата: DdShurick link=topic=19689.msg129164#msg129164
date=1487138094
Не монтируется
Странно. Надо будет попробовать.
Если это либа и только один список передать нужно, то лучше не переменная,  а stdout. Вот так потом создавать aufs.
umountlist=$(mkaufs)
Название: Re: mkaufs
Отправлено: sfs от 21 Февраль 2017, 12:50:45
mkaufs работает в двух режимах, без аргументов в tmpfs, с аргументами (dev и dir) на указанном разделе.
mkaufs home tmp (home - симлинк на /mnt/sda1) - "Такого раздела не существует"
mkaufs sda1 tmp && delaufs 1 - в tmp остаются тени. Так задумано?
Название: Re: mkaufs
Отправлено: DdShurick от 21 Февраль 2017, 16:52:31
Так задумано?
Да.
Название: Re: mkaufs
Отправлено: sfs от 22 Февраль 2017, 09:34:03
mkaufs home tmp (home - симлинк на /mnt/sda1) - "Такого раздела не существует"
Зачем тогда в хелпе про home
mkaufs sda1 tmp && delaufs 1 - в tmp остаются тени
Остаются для какой-то цели?
Название: Re: mkaufs
Отправлено: DdShurick от 22 Февраль 2017, 09:58:39
mkaufs home tmp (home - симлинк на /mnt/sda1) - "Такого раздела не существует"
Это я исправлю.
Остаются для какой-то цели?
Тени, да, на случай, если что-то удалено. Отфильтровать их не сложно.
Название: Re: mkaufs
Отправлено: DdShurick от 23 Февраль 2017, 07:37:14
Это я исправлю.
Исправил.
Изменил строку определения SYSMNT
Код
SYSMNT=$(cut -f2 -d/ /sys/fs/aufs/si_$(grep ' / aufs' /proc/mounts | cut -f2 -d= | tr ',' ' ' | cut -f1 -d' ')/br0)
иначе при созданной aufs sda3 save вылетает с ошибкой.
Название: Re: mkaufs
Отправлено: betcher от 23 Февраль 2017, 08:47:54
Изменил строку определения SYSMNT
У нас тоже будет ошибка? Надо тогда в pfsfunc утащить.
Название: Re: mkaufs
Отправлено: sfs от 23 Февраль 2017, 10:40:18
Надо тогда в pfsfunc утащить.
Поэтому я и говорил - не торопиться включать в pfsfunc
Название: Re: mkaufs
Отправлено: betcher от 23 Февраль 2017, 11:08:23
Я о строке, которая СИСМНТ определяет. При одной ауфс там все хорошо, а вот с увеличением их числа могут быть грабли у тех у кого нет /etc/initvars
Название: Re: mkaufs
Отправлено: sfs от 23 Февраль 2017, 11:12:08
Я о строке, которая СИСМНТ определяет.
да - надо проверить и поправить
Название: Re: mkaufs
Отправлено: DdShurick от 23 Февраль 2017, 19:41:58
 Попробовал mkaufs в Simply-7.0.5 (естественно full), создалась aufs с корнем в /aufs0. Если немного доработать, можно применять и в full  :o
Название: Re: mkaufs
Отправлено: sfs от 24 Февраль 2017, 10:31:16
Зачем это в фул?
Название: Re: mkaufs
Отправлено: DdShurick от 04 Март 2017, 18:53:17
Зачем это в фул?
Диверсия. Добавил ключ -r|--root, который задаёт корень создаваемой aufs. В frugal это не особо нужно, а вот в full позволяет создать создать aufs с корнем например в /opt и монтировать туда соответствующим образом собранные (--prefix /opt) программы, причём абсолютно безопасно.
Осталось только объяснить это разработчикам больших линуксов и они будут наши ;)
Название: Re: mkaufs
Отправлено: betcher от 04 Март 2017, 21:58:36
создать создать aufs с корнем например в /opt и монтировать туда соответствующим образом собранные (--prefix /opt)
Интересная идея как мне кажется
Название: Re: mkaufs
Отправлено: sfs от 05 Март 2017, 09:57:59
Как идея может и интересно. Только если в фул не заморачиваются загрузкой модулей в память и т.п. - им привычнее просто поставить\удалить пакет ПМ
Может для каких-нибудь docker...
Название: Re: mkaufs
Отправлено: DdShurick от 10 Март 2017, 12:35:51
 Добавил блокировку
Код
#Ищем первую свободную
for N in $(seq 10); do [ -f /tmp/aufs$N ] || break; done