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

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

Название: sqmod-tools - работа с модулями
Отправлено: DdShurick от 17 Февраль 2017, 10:05:06
 Создаём простой модуль (пакет) руками.
1) Создаём дерево каталогов (при необходимости)
Код
bash-4.3# mkdir -p sqmod-tools/usr/bin
2) Копируем файлы (при необходимости)
Код
bash-4.3# cp ../live/Git/pfs-utils/usr/bin/mkaufs sqmod-tools/usr/bin/
bash-4.3# cp ../live/Git/pfs-utils/usr/bin/addlayer sqmod-tools/usr/bin/
*При перепаковке из .rpm, .deb и компиляции из исходников эти действия не нужны.
3) Создаём метадату
Код
bash-4.3# cd sqmod-tools/
bash-4.3# mkdir -p etc/packages/mount/sqmod-tools
bash-4.3# echo 'name="sqmod-tools"'>etc/packages/mount/sqmod-tools/pfs.specs
bash-4.3# find . ! -type d|cut -b2- >etc/packages/mount/sqmod-tools/pfs.files
bash-4.3# cd ../
4) Пакуем
Код
bash-4.3# mksquashfs sqmod-tools/ /mnt/sda1/219/optional/sqmod-tools.pfs -comp xz -Xbcj x86
5) Подключаем
Код
bash-4.3# addlayer /mnt/sda1/219/optional/sqmod-tools.pfs

Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 17 Февраль 2017, 10:48:11
А составные.pfs?
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 17 Февраль 2017, 13:52:17
 Объединение двух каталогов в составной модуль (аналог  pfsmerge-dir):
Код
# su
Password:
# mkaufs
# addlayer 1 Arp-scan-1.9.5_XZM/
aufs смонтирована в /initrd/aufs1, сохранение изменений /initrd/changes1
# addlayer 1 smbtree-3.6.25_XZM/
aufs смонтирована в /initrd/aufs1, сохранение изменений /initrd/changes1
# mksquashfs /initrd/aufs1/ /home/ScanLan.pfsParallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on /home/ScanLan.pfs, block size 131072.
[===============================================================-] 136/136 100%
........
# file /home/ScanLan.pfs
/home/ScanLan.pfs: Squashfs filesystem, little endian, version 4.0, 618493183 bytes, 121 inodes, blocksize: 0 bytes, created: Thu Aug 17 11:52:32 1989
Модуль готов.
 *в данном случае использовались подготовленные, содержащие метадату, каталоги.
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 17 Февраль 2017, 19:34:59
 Объединение модуля и каталога с созданием метедаты:
Код
# su                                                    
Password:
# mkaufs
# addlayer 1 ../cups-2.1.0.xzm
aufs смонтирована в /initrd/aufs1, сохранение изменений /initrd/changes1
# addlayer 1 ghostscript-9.18-all_PFS
aufs смонтирована в /initrd/aufs1, сохранение изменений /initrd/changes1
Записываем метадату в корень aufs1
Код
# cd ghostscript-9.18-all_PFS/
# mkdir -p /initrd/aufs1/etc/packages/mount/ghostscript-9.18-all   
# echo 'name="ghostscript-9.18-all"'>/initrd/aufs1/etc/packages/mount/ghostscript-9.18-all/pfs.specs
# find . ! -type d|cut -b2- >/initrd/aufs1/etc/packages/mount/ghostscript-9.18-all/pfs.files
# find . -type d -empty|cut -b2- >/initrd/aufs1/etc/packages/mount/ghostscript-9.18-all/pfs.dirs.empty
# [ -s /initrd/aufs1/etc/packages/mount/ghostscript-9.18-all/pfs.dirs.empty ] || rm /initrd/aufs1/etc/packages/mount/ghostscript-9.18-all/pfs.dirs.empty
# cd ../
*если pfs.dirs.empty пустой - удаляем.
Код
# mksquashfs /initrd/aufs1/ /home/Cups-2.1.0.xzm -comp xz -Xbcj x86
............
# unsquashfs -l /home/Cups-2.1.0.xzm -e /etc/packages/mount
Parallel unsquashfs: Using 4 processors
4 inodes (4 blocks) to write

squashfs-root
squashfs-root/etc
squashfs-root/etc/packages
squashfs-root/etc/packages/mount
squashfs-root/etc/packages/mount/cups-2.1.0
squashfs-root/etc/packages/mount/cups-2.1.0/pfs.files
squashfs-root/etc/packages/mount/cups-2.1.0/pfs.specs
squashfs-root/etc/packages/mount/ghostscript-9.18-all
squashfs-root/etc/packages/mount/ghostscript-9.18-all/pfs.files
squashfs-root/etc/packages/mount/ghostscript-9.18-all/pfs.specs
Что и было нужно
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 18 Февраль 2017, 10:39:25
Объединение двух каталогов в составной модуль (аналог  pfsmerge-dir):
Пытаюсь повторить в ПРА
1. mkaufs
Код
tmpfs on /mnt/changes2 type tmpfs (rw,relatime)
aufs on /mnt/aufs2 type aufs (rw,relatime,si=fb21b7cbb61f7569)
т.е. вроде ок
2. sh -vx `which addlayer` 2 first/ - где first - каталог
Код
mount -o remount,add:1:/home/live/Downloads/pfs-dds-170218/usr/local/bin/3/first /mnt/aufs2
mount: /mnt/aufs2 not mounted or bad option
Что я сделал не так?
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 18 Февраль 2017, 13:19:55
Что я сделал не так?
Вы сначала дали команду addlayer, а затем mount -o remount,add:2: с одним и тем же каталогом?
У меня работает:
Код
root@pra64:dev_modules# mkaufs

root@pra64:dev_modules# grep aufs /proc/mounts
aufs / aufs rw,relatime,si=fcf5e51c7db9d30d,nowarn_perm 0 0
aufs /mnt/aufs1 aufs rw,relatime,si=fcf5e51c59b9330d 0 0

root@pra64:dev_modules# grep tmpfs /proc/mounts
tmpfs /mnt/live tmpfs rw,relatime,mode=755 0 0
none /mnt/live/dev devtmpfs rw,relatime,size=1021324k,nr_inodes=255331,mode=755 0 0
run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0
dev /dev devtmpfs rw,nosuid,relatime,size=1021324k,nr_inodes=255331,mode=755 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /mnt/changes1 tmpfs rw,relatime 0 0

root@pra64:dev_modules# addlayer 1 Arp-scan-1.9.5_XZM
aufs смонтирована в /mnt/aufs1, сохранение изменений /mnt/changes1
root@pra64:dev_modules# mkaufs
root@pra64:dev_modules# addlayer 2 3G-tools
aufs смонтирована в /mnt/aufs2, сохранение изменений /mnt/changes2
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 18 Февраль 2017, 13:39:07
Вы сначала дали команду addlayer
sh -vx `which addlayer` 2 first/
а затем mount -o remount,add:2: с одним и тем же каталогом?
нет
Это я привел вывод ошибки от addlayer 2 first
Может дело в mount -o remount,add:1:
Может здесь надо 2 ?
Не помогло
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 09:09:55
sqmod-tools.pfs (https://github.com/DdShurick/pfs-utils/blob/master/sqmod-tools.pfs)
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 09:22:02
sqmod-tools.pfs
sh -vx `which addlayer` 2 first/
Без улучшения
+ mount -o remount,add:1:/home/live/Downloads/3/first /mnt/aufs2
mount: /mnt/aufs2 not mounted or bad option
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 10:20:11
Без улучшения
Попробуйте вручную покомандно, должно вылезти.
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 10:45:54
Что и как еще можно попробовать?
mount -o remount,add:1:/home/live/Downloads/3/first /mnt/aufs2
mount: /mnt/aufs2 not mounted or bad option
В консоле тот же результат
mount (результат mkaufs):
Код
tmpfs on /mnt/changes2 type tmpfs (rw,relatime)
aufs on /mnt/aufs2 type aufs (rw,relatime,si=a25b6e6fd8b6409f)
/home/live/Downloads/3/first - папка

Код
# grep aufs /proc/mounts
aufs / aufs rw,relatime,si=a25b6e6f3139b09f,nowarn_perm 0 0
aufs /mnt/aufs2 aufs rw,relatime,si=a25b6e6fd8b6409f 0 0

root@pra64:bin# grep tmpfs /proc/mounts
tmpfs /mnt/live tmpfs rw,relatime,mode=755 0 0
none /mnt/live/dev devtmpfs rw,relatime,size=2022016k,nr_inodes=505504,mode=755 0 0
tmpfs /mnt/live/memory/changes tmpfs rw,relatime,size=2429872k 0 0
run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0
dev /dev devtmpfs rw,nosuid,relatime,size=2022016k,nr_inodes=505504,mode=755 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /mnt/changes2 tmpfs rw,relatime 0 0
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 11:19:20
Разобрался, откуда берется aufs2
Код
# ls /sys/fs/aufs/
config  si_a25b6e6f3139b09f
У меня большое manjaro ядро
Везде надо добавить  ls /sys/fs/aufs/ |egrep '^si_'
Но
mount -o remount,add:1:/home/live/Downloads/3/first /mnt/aufs1
mount: /mnt/aufs1 not mounted or bad option
остается
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 11:45:50
1. Везде надо добавить  ls /sys/fs/aufs/ |egrep '^si_'
2. mount -o remount,add:1:/home/live/Downloads/3/first /mnt/aufs1 Получилось перемещением /home/live/Downloads/3/first на винт. Нужно добавить проверки и выдачу ошибки
В остальном - кода мало, он понятен. Местами "" не помешало бы подстраховаться от пробелов в именах
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 12:43:16
ls /sys/fs/aufs/ |egrep '^si_'
ls /sys/fs/aufs/si_* ??
Получилось перемещением
Да, aufs в aufs не монтируется. У меня /home это примонтированный /dev/sda3
кода мало, он понятен
И это хорошо.
Перепаковка sqmod-tools.pfs в ~/Git/pfs-tools/ :
Код
# su
Password:
# mkaufs
# addlayer 1 sqmod-tools.pfs
aufs смонтирована в /initrd/aufs1, сохранение изменений /initrd/changes1
# cp usr/bin/addlayer /initrd/aufs1/usr/bin/addlayer
# rm sqmod-tools.pfs && mksquashfs /initrd/aufs1/ sqmod-tools.pfs -comp xz -Xbcj x86
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on sqmod-tools.pfs, block size 131072.
[===================================================================|] 5/5 100%
.....
# delaufs 1
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 12:59:43
ls /sys/fs/aufs/si_* ??
Нет
Код
# ls /sys/fs/aufs/si_* 
br0   br13  br18  br22  br27  br4  br9     brid12  brid17  brid21  brid26  brid30  brid8
br1   br14  br19  br23  br28  br5  brid0   brid13  brid18  brid22  brid27  brid4   brid9
br10  br15  br2   br24  br29  br6  brid1   brid14  brid19  brid23  brid28  brid5   xi_path
br11  br16  br20  br25  br3   br7  brid10  brid15  brid2   brid24  brid29  brid6
br12  br17  br21  br26  br30  br8  brid11  brid16  brid20  brid25  brid3   brid7
Какие мысли про
Нужно добавить проверки и выдачу ошибки
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 14:26:55
Нет
ls -d /sys/fs/aufs/si_* - да.
Нужно добавить проверки и выдачу ошибки
Какие именно?
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 16:19:22
ls -d /sys/fs/aufs/si_* - да.
да
Какие именно?
Продетектить что подключаемые папки не где нельзя
Как - пока нет идей
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 17:59:39
Продетектить что подключаемые папки не где нельзя
Монтирование само покажет.
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 19 Февраль 2017, 18:16:31
Монтирование само покажет.
mount: /mnt/aufs2 not mounted or bad option
Я не сразу допер
Т.е. если не смонтировалось - выдать ошибку: "Перенеси на винт" или как лучше сформулировать?
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 18:22:50
как лучше сформулировать?
Для кого? Разработчики это и так знают.
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 19 Февраль 2017, 20:13:28
 Обновился на git
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 20 Февраль 2017, 09:23:17
Код
mkaufs ; addlayer 1 Arp-scan-1.9.5_XZM/
Не будет ли удобнее добавить в mkaufs вывод слоя
Код
addlayer `mkaufs` Arp-scan-1.9.5_XZM

Разработчики это и так знают.
Т.е других идей нет ? Как определить на какой fs файл
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 20 Февраль 2017, 09:35:30
Код
addlayer `mkaufs` Arp-scan-1.9.5_XZM
А следующий слой как?
Как определить на какой fs файл
Код
# blkid $(df /home/dev_modules/Arp-scan-1.9.5_XZM | awk '!/^F/ {print $1}') | sed 's/.*TYPE=//'
"ext4"
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 20 Февраль 2017, 09:44:20
Код
n="`mkaufs`" || exit 1
addlayer $n 1.pfs
addlayer $n 2.pfs
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 20 Февраль 2017, 12:21:41
Код
# blkid $(df /home/dev_modules/Arp-scan-1.9.5_XZM | awk '!/^F/ {print $1}') | sed 's/.*TYPE=//'
Можно проще
Код
df -x aufs "$1" || echo "На aufs нельзя"
т.е. не на aufs
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 20 Февраль 2017, 12:29:34
Можно проще
Можно, но не busybox df
Код
n="`mkaufs`" || exit 1
addlayer $n 1.pfs
addlayer $n 2.pfs
Так не получится, каждый раз будет создаваться новая aufs.
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 20 Февраль 2017, 13:02:11
не busybox
А мы договаривались этим заморачиваться?
каждый раз будет создаваться новая aufs.
Почему? mkaufs 1 раз запускается. Я так pfsmerge-dir переделал - работает
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 20 Февраль 2017, 15:02:16
Я это имел ввиду
https://github.com/pfs-utils/pfs-utils-cli/blob/master/project-files/usr/bin/mkaufs - предлагаю принять этот вариант
https://github.com/pfs-utils/pfs-utils-cli/blob/master/project-files/usr/bin/pfsmerge-dir
Название: Re: sqmod-tools - работа с модулями
Отправлено: DdShurick от 20 Февраль 2017, 15:48:11
А мы договаривались этим заморачиваться?
В Puppy busybox по умолчанию. Чтож я должен систему из-за вас менять? Почему вы считаете Puppy ниже PRA, когда PRA всего лишь паплет?
Почему? mkaufs 1 раз запускается.
Да сколько угодно раз. Я пример двух приводил.
Название: Re: sqmod-tools - работа с модулями
Отправлено: sfs от 20 Февраль 2017, 15:53:30
Ок - переделайте df на busubox
В остальном?