Сайт | Скачать | Видео | Wiki

Автор Тема: mkpfs -w (тени)  (Прочитано 9837 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
    • PuppyRus-A
Re: mkpfs -w (тени)
« Ответ #15 : 30 Ноябрь 2018, 14:32:12 »
да
И так никто и не ответил, зачем ему понадобились тени...

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
  • Автор темы
Re: chroot2pfs
« Ответ #16 : 30 Ноябрь 2018, 14:39:45 »
И так никто и не ответил, зачем ему понадобились тени...
Если я хочу установить софт, который конфликтует с программой в одном из базовых модулей. Случай скорее потенциальный, чем реальный, но возможность включить тени думаю никому не помешают.
То есть и в mkpfs  и в  chroot2pfs -w | --wh включает тени. Так делать?
Да, единообразие хоть будет.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: mkpfs -w (тени)
« Ответ #17 : 01 Декабрь 2018, 11:15:39 »
Вроде работает как обговорили. Хелп только забыл поправить.

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
  • Автор темы
Re: mkpfs -w (тени)
« Ответ #18 : 02 Декабрь 2018, 19:32:00 »
С опцией включения теней корневые тени тоже сохраняются. Они нужны вообще?

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
    • PuppyRus-A
Re: mkpfs -w (тени)
« Ответ #19 : 03 Декабрь 2018, 12:51:22 »
Вроде работает как обговорили. Хелп только забыл поправить.
поправил в вики
***-w** - включать в модуль AUFS тени. Будет работать но только с ключем -l
Только это дока  к в3...
Последние темы с chroot2pfs пр. хорошо бы и туда

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
  • Автор темы
Re: mkpfs -w (тени)
« Ответ #20 : 03 Декабрь 2018, 14:17:41 »
корневые тени тоже сохраняются. Они нужны вообще?
Так нужны именно корневые тени в модуле или достаточно тех что на файлы создаются? Кто понимает? Мне почему-то кажется что корневые тени в модуле не нужны, они наверно нужны только в changes. Надо бы разобраться, вопрос то ведь серьезный  :D

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: mkpfs -w (тени)
« Ответ #21 : 03 Декабрь 2018, 14:46:11 »
Насколько я в теме - тени нужны только того файла, который в нижнем слое есть, а в верхнем должен быть удален. Что на практике очень редко
Еще в теме параметры mount
Ильфат имеет ввиду эти. Я не в курсе что они делают. Нужны или нет в модуле, когда сохраняем тени?
 .wh..wh.aufs
 .wh..wh.orph/ 
.wh..wh.plnk/

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
    • PuppyRus-A
Re: mkpfs -w (тени)
« Ответ #22 : 03 Декабрь 2018, 14:51:14 »
Эти точно не нужны. Сами образуются когда соберете слоеный пирог aufs

Оффлайн ilfat

  • Ветеран
  • *****
  • Сообщений: 438
  • Репутация: +11/-0
  • Автор темы
Re: mkpfs -w (тени)
« Ответ #23 : 03 Декабрь 2018, 14:53:29 »
Насколько я в теме - тени нужны только того файла, который в нижнем слое есть, а в верхнем должен быть удален
Значит корневые можно смело удалять.
Что на практике очень редко
Пробовал собирать модуль с дровами nvidia 390 (все что новее не поддерживает мою видюху) при установленных в системе 396-ых. Конфликт. 396-ые пришлось удалить. В итоге если модуль собран с тенями, то иксы запускаются на 390-ых дровах, если собран без теней, то ни на каких не запускаются, разве что на nouveau. Все-таки тени иногда могут быть полезны.
Конечно в МагОС 2 версии драйвера для видеокарт nvidia, current (396) для современных карт и 304 для старых. Моя на 304-ых работает, причем как оказалось даже лучше чем на 390-ых (артефакты).. Так вот, если бы мне по какой-то причине нужны были бы именно 390-ые, то тени бы облегчили задачу. Вариант с пересборкой системных модулей не рассматривался.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: mkpfs -w (тени)
« Ответ #24 : 03 Декабрь 2018, 14:56:36 »
Эти точно не нужны. Сами образуются когда соберете слоеный пирог aufs
Тогда правильнее в pfs trim удалить.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: mkpfs -w (тени)
« Ответ #25 : 07 Февраль 2020, 21:56:45 »
Думал над тем как сохранить тени при склейке модулей. Если и файл и тень в склеиваемых модулях  то проблем нет ауфс разберется, а если тень от файла которого в источниках нет, то она просто исчезнет, а она может быть нужна. Такая ситуация может быть при склейке сохраненок в которых есть тени для файлов из системных модулей.
Вариант 1. По сценарию mksavexzm. С shwh ауфс. Только все сильно усложнится из-за количества слоев. Если вариант ДядиШурика я переписал без циклов, то тут думаю не получится и все будет очень медленно. И нужно будет в mkpfs оба варианта монтирования ауфс делать. Не айс.
Вариант 2. Зайти с другой стороны. Монтировать ауфс как обычно, а потерянные тени искать в бандлах. Но тут другая проблема, как это потом запихать в модуль. Расчитывал на возможность дописывать в сквош, оказалось это работает совсем не так как я ожидал. Пока сделал чтоб собирался отдельный модуль с потерянными тенями.
Нужны идеи!!!

Вот кусок mkpfs v4 начиная со 180 строки и до конца. Код возможно кривой, просто для эксперимента.

Код
lost_wh() {
mkdir $SYSMNT/lost_wh$N
find $SYSMNT/bundles$N |sed "s:$SYSMNT/bundles$N/[^/]*/:/:" > $SYSMNT/lost_wh$N/allfiles
((cat $SYSMNT/lost_wh$N/allfiles |grep /.wh.* |sed 's/.wh.//' ; cat $SYSMNT/lost_wh$N/allfiles ) \
|sort |uniq -d |sed -r 's:(/.*/)(.*):\1.wh.\2:' ; cat $SYSMNT/lost_wh$N/allfiles |grep /.wh.* ) |sort |uniq  > $SYSMNT/lost_wh$N/lost_whiteout
mkdir $SYSMNT/lost_wh$N/whiteouts
curpwd=$(pwd)
for a in $(cat $SYSMNT/lost_wh$N/lost_whiteout) ; do
adir=$(find $SYSMNT/bundles$N |grep  -m1 $a | sed -r "s:($SYSMNT/bundles$N/[^/]*/)(.*$):\1:")
cd $adir
cp  --parents .$a $SYSMNT/lost_wh$N/whiteouts/
done
cd $curpwd
[ $(ls -A $SYSMNT/lost_wh$N/whiteouts/ |wc -l) -ne 0 ] && echo $SYSMNT/lost_wh$N/whiteouts/
}

[ $TRIM ] && trim $n

w=$(lost_wh)
if echo ${userout} | grep -q "^.*\.$EXT$" ; then
mksqmod "${n}" "${userout}" noexit
mksqmod "${w}" "lost_wh_${userout}" noexit
else
echo "Please wait..."
rmdir ${userout} 2>/dev/null
if [ -d "${userout}" ] ; then
delaufs "$nn"
exitmsg "Output diectory already exist" 6
fi
mkdir -p "$(dirname ${userout})"
cp -fax "${n}" "${userout}"
cp -fax "${w}" "lost_wh_${userout}"
fi
rm -rf $SYSMNT/lost_wh$N 2>/dev/null
exitmsg "mksqmod error" $?  noexit
delaufs "$nn"
exitmsg "delaufs error" $?

« Последнее редактирование: 07 Февраль 2020, 21:58:43 от betcher »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: mkpfs -w (тени)
« Ответ #26 : 08 Февраль 2020, 07:48:53 »
все сильно усложнится из-за количества слоев.
Количество это сколько? Я исхожу из двух (сохранёнка - модуль и сохранёнка ram). В остальных модулях теней быть не должно, или я не прав?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: mkpfs -w (тени)
« Ответ #27 : 08 Февраль 2020, 07:58:51 »
 В вашем случае - да. Здесь же разговор о склейке любых мрдулей, слоев может быть сколько угодно и проверять наличие файла в одном из двух слоев недостаточно. Нужно повидимому по всей стопке слоев проверять что выше тень или файл, учитывая что в слоях могут встречаться как одинаковые файлы так и одинаковые тени.
З.Ы. Ваш код, если интересно, у меня тут:
https://github.com/neobht/uird/blob/master/modules.d/00uird/shutdown-uird.sh
Функция wh_exclude
« Последнее редактирование: 08 Февраль 2020, 08:05:07 от betcher »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: mkpfs -w (тени)
« Ответ #28 : 08 Февраль 2020, 08:31:26 »
по всей стопке слоев
А не проще будет собрать эту стопку слоёв в aufs и рассматривать как один? Где-то я это делал, но давно и не помню, ибо не пользуюсь. Короче всё здесь.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: mkpfs -w (тени)
« Ответ #29 : 08 Февраль 2020, 09:41:54 »
mkpfs так и работает, собирает в ауфс. Но тени из слоев не принадлежащие файлам из склеиваемых слоев пропадут. А в идеале не должны.