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

Автор Тема: PuppyRus Richy-219 - изменения  (Прочитано 20006 раз)

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

Оффлайн RoDoN

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6282
  • Репутация: +141/-0
Re: PuppyRus Richy-219 - изменения
« Ответ #15 : 27 Февраль 2015, 21:41:13 »
Чуть выше я давал ссылку на облако.
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE

Оффлайн for_wov

  • Ветеран
  • *****
  • Сообщений: 464
  • Репутация: +13/-0
  • TRUE
Re: PuppyRus Richy-219 - изменения
« Ответ #16 : 27 Февраль 2015, 21:45:21 »
вопрос в том исправлен ли запуск иксов в новом образе? (если брать по частям [пока на стадии пред-Х] решен ли вопрос с пользователем и правами?) не любитель (в силу объективных причин) выкачивать каждый раз новый образ. можно ли докачивать с облака через wget -c или любым альтернативным(с возможностью докачки) способом.
« Последнее редактирование: 27 Февраль 2015, 21:47:51 от for_wov »
Опыт увеличивает нашу мудрость, но не уменьшает нашей глупости.

Оффлайн for_wov

  • Ветеран
  • *****
  • Сообщений: 464
  • Репутация: +13/-0
  • TRUE
Re: PuppyRus Richy-219 - изменения
« Ответ #17 : 03 Март 2015, 18:23:33 »
нашел способ докачки с mail.ru - получить прямую ссылку через консоль разработчика в браузере (F12 в palemoon)
имеется следующее:
Код
find 219
219
219/base
219/base/Richy-219-base.sfs
219/base/kernel-3.14.17-pf4.sfs
219/vmlinuz-3.14.17-pf4
219/initrd_new_Ri.gz
219/modules
219/modules/dillo-3.0.2.pfs
219/modules/autoNet.pfs
219/modules/pidgin-2.10.9.pfs
219/modules/drv_mount-0.3.pfs
запись меню
Код
title Richy_219_k-3.14.17
set load=219
set home=UUID="9dc854a8-9ba9-4741-aabe-3ee181709fda"
kernel /%load%/vmlinuz-3.14.17-pf4 pdev1=sda6 dir=%load% pfix=copy %home%
initrd /%load%/initrd_new_Ri.gz
ошибка запуска bootinit.log
Код
sh: write error: Device or resource busy
mount: mounting /dev/loop2 on /pup_z failed: Invalid argument
/init: line 356: tail: not found
/init: line 356: dmesg: not found
/init: line 356: tail: not found
папка пользователя
Код
blkid /dev/sda5
/dev/sda5: LABEL="data" UUID="9dc854a8-9ba9-4741-aabe-3ee181709fda" TYPE="ext4" PARTUUID="0001d179-05"
Код
ls -a /mnt/sda5/live
.
..
вопрос: как запустить? если можно алгоритм диагностики что за чем по пунктам  проверять.
Опыт увеличивает нашу мудрость, но не уменьшает нашей глупости.

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #18 : 03 Март 2015, 19:40:18 »
ошибка запуска bootinit.log
Код
sh: write error: Device or resource busy
mount: mounting /dev/loop2 on /pup_z failed: Invalid argument
/init: line 356: tail: not found
/init: line 356: dmesg: not found
/init: line 356: tail: not found
Говорит о том, что kernel-3.14.17-pf4.sfs примонтировался с ошибкой. Попробую пошаманить с init.

Перезалил initrd_new_Ri.gz

Изменения: добавлены busybox dmesg и busybox tail
изменена строка монтирования /pup_z
параметр pdev1 можно указывать UUID (специально для флешек)
« Последнее редактирование: 05 Март 2015, 08:46:05 от DdShurick »
Моноблок 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

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #19 : 14 Ноябрь 2015, 22:29:50 »
 Обновил mksavesfs
Код
#!/bin/sh
# DdShurick GPL-v2 14.11.15 for Richy
if [ "$(whoami)" != "root" ]; then
loginroot $0
exit
fi
#Задаём переменные
. /etc/DISTRO_SPECS
. /etc/rc.d/PUPSTATE
SAVEPATH=$(grep $PDEV1 /proc/mounts | cut -f2 -d' ')$PSUBDIR/base
#SAVEPATH=/initrd$(dirname $(head -n 1 /initrd/tmp/PUPPYFILES)) 2>/dev/null &&
#Последовательно копируем 2 1 0 слои
mkdir -p /tmp/savesfs-root
[ "$(grep "pup_ro1 " /proc/mounts)" ] && cp -a /initrd/pup_ro1/* /tmp/savesfs-root/
[ "$(grep "pup_ro0 " /proc/mounts)" ] && cp -a /initrd/pup_ro0/* /tmp/savesfs-root/
cp -a $(ls -d /initrd/pup_rw/[!dimstv]*) /tmp/savesfs-root/
echo false > /tmp/savesfs-root/etc/.XLOADED
#Удаляем "затенённые" (отмеченные как удалённые) файлы и каталоги.
find /initrd/pup_rw -mindepth 2 -name .wh.*|sed 's/\/initrd\/pup_rw//;s/.wh.//g'|while read WH
do rm -r /tmp/savesfs-root$WH
done
#Создаём новый файл сохранения
mksquashfs /tmp/savesfs-root/ /tmp/${DISTRO_FILE_PREFIX}-save.sfs -comp xz
mv $SAVEPATH/${DISTRO_FILE_PREFIX}-save.sfs $SAVEPATH/${DISTRO_FILE_PREFIX}-save.sfs.old
mv /tmp/${DISTRO_FILE_PREFIX}-save.sfs $SAVEPATH/${DISTRO_FILE_PREFIX}-save.sfs
Моноблок 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

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re: PuppyRus Richy-219 - изменения
« Ответ #20 : 15 Ноябрь 2015, 12:42:03 »
Цитата
Код
#Удаляем "затенённые" (отмеченные как удалённые) файлы и каталоги.
find /initrd/pup_rw -mindepth 2 -name .wh.*|sed 's/\/initrd\/pup_rw//;s/.wh.//g'|while read WH
do rm -r /tmp/savesfs-root$WH
done

О!  А я вот об этом не подумал, надо тоже сделать.
Но тут еще вылезают несколько тонкостей. 
В вашем примере можно -name .wh.* заменить на -name '.wh.*',
разница ощущается, если скрипт запускать из /tmp (в pra это отдельная файловая система, может, у вас и не так, не смотрел) и существует какой-нибудь /tmp/.wh.abcd.
rm -r /tmp/savesfs-root$WH точно надо менять на rm -r "/tmp/savesfs-root$WH", посмотрел сейчас, несколько файлов с пробелами нашлись, у меня от chrome, но могут и еще откуда-нибудь взяться, мало ли.  И, даже, пожалуй, лучше rm -rf "/tmp/savesfs-root$WH", а то затенит .wh. какой-нибудь файл не из сохраненки, rm ругаться будет.

И еще возникает вопрос: а что делать с самими .wh. файлами?
Если существовали файлы, к примеру, /initrd/pup_ro0/abcd.txt и /initrd/pup_rw/.wh.abcd.txt, то abcd.txt из сохраненки можно удалять однозначно, а вот удалять ли .wh.abcd.txt - это будет зависеть от того, существует ли abcd.txt на более глубоких слоях.
Пока в голову приходит только перебор всех слоев.  В Richy, насколько понимаю, с этим сложностей особых нет, а вот в pra вылезает проблема - если .wh. затенял что-то из модуля, то нужно его в сохраненке оставлять, но что будет, если в следующий раз будет подключен другой модуль, но содержащий тот же файл?  Например, это были два модуля с разными вариантами настроек одной программы?
Ситуация, конечно, маловероятная, но пожалуй, возможная.

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #21 : 15 Ноябрь 2015, 13:10:03 »
И еще возникает вопрос: а что делать с самими .wh. файлами?
Вопрос очень интересный. Richy в этом отношении покладистее, по меткому выражению neobht, pup_rw "прибит гвоздями" к tmpfs, поэтому всегда "белый и пушистый". В вашем случае для удаления ненужных .wh.-теней единственное, что приходит в голову, как вы и предлагаете, двойной цикл: поиск find /tmp/savesfs-root -name .wh.*, найденное в цикл поиска по всем небазовым слоям && удалить .wh.*. Хотя и тут могут быть накладки. ИМХО - проще отказаться от портеуса, чем под него извращаться.
Моноблок 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

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #22 : 18 Ноябрь 2015, 21:07:08 »
 Вот, вроде бы и овцы целы, и волки сыты
Код
#Удаляем "затенённые" (отмеченные как удалённые) файлы и каталоги.
find /tmp/savesfs-root -mindepth 2 -name .wh.* | while read WH
do
F=$(echo $WH | sed 's/\/tmp\/savesfs-root//;s/.wh.//g')
if [ -e "/initrd/pup_rw$F" ]; then
rm $WH #если удалённый файл заново создан, удаляем .wh.*
else
[ -e "/tmp/savesfs-root$F" ] && rm -r /tmp/savesfs-root$F #если ранее сохранённый файл удалён, удаляем его.
fi # если .wh.* относится к нижним слоям - ничего не делаем
done
Моноблок 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

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re: PuppyRus Richy-219 - изменения
« Ответ #23 : 19 Ноябрь 2015, 12:41:42 »
Поэкспериментировал.
Получилось, что если имеющийся в старой сохраненке файл удалить, в rw слое появляется тень.  Если после этого файл вновь создать, то сам он появляется в rw, а тень исчезает.
Посему условие под if, как мне кажется, излишнее.
А вот тень в вашем коде не удаляется, причем тут нужна еще одна проверка, ведь тот факт, что файл нашелся в старой сохраненке еще не означает, что на нижнем слое его нет, файл мог быть изменен и попасть в сохраненку, а потом уже удален путем затенения.
У вас, насколько понимаю, нижний слой один, так что проверить несложно.
Итого получается:
Код
#Удаляем "затенённые" (отмеченные как удалённые) файлы и каталоги.
find /tmp/savesfs-root -mindepth 2 -name ".wh.*" | while read WH
do
F=${WH//.wh.}
[ -e "$F" ] && rm -r "$F" #если ранее сохранённый файл затенен, удаляем его.
         [ ! -e "/путь к нижнему слою${F#/tmp/savesfs-root}" ] && rm -r "$WH"  # файла нет - удаляем ненужную тень
                                                                                # если .wh.* относится к нижним слоям - ничего не делаем
done

UPD. Нет, с ненужностью условия под if, я пожалуй, ошибся.
Итак.  Будем рассуждать тупо.  Какие ситуации c .wh. вообще возможны?  Надо составить табличку.

            1     2     3     4     5     6  
rw        .wh.  file  .wh.  .wh.    -   file
ro save   file  .wh.    -   file  .wh.  .wh.
ro base   file  file  file    -     -     -  


В сохраненку падают файлы со слоев rw и ro save
Действия                                      Признаки
1) Удалить файл, оставить тень     !f.rw && f.s
2) Удалить тень                             f.rw
3) Ничего не удалять                     !f.rw && !f.s
4) Удалить и файл и тень               !f.rw && f.s && !f.b
5) Удалить тень                             !f.rw && !f.s && !f.b
6) Удалить тень                             f.rw

Код
#Удаляем "затенённые" (отмеченные как удалённые) файлы и каталоги.
find /tmp/savesfs-root -mindepth 2 -name ".wh.*" | while read WH
do
FS="${WH//.wh.}" ; F="${FS#/tmp/savesfs-root}"
     if [ -e "/initrd/pup_rw$F" ] ; then
        rm $WH # 2,6 если удалённый файл заново создан, удаляем .wh.*
     else
        [ -e "$FS" ] && rm -r "$FS" # 1,4 если ранее сохранённый файл затенен, удаляем его.
        [ ! -e "/путь к нижнему слою$F" ] && rm -r "$WH"  # 4,5 файла нет - удаляем ненужную тень
     fi              # 3 если .wh.* относится к нижним слоям - ничего не делаем
done
Вот, теперь вроде правильно.  Добавилось условие удаления ненужных теней.

Это я больше для себя разбираюсь с логикой работы с тенями.
« Последнее редактирование: 19 Ноябрь 2015, 17:45:10 от ander »

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #24 : 19 Ноябрь 2015, 13:59:17 »
файл мог быть изменен и попасть в сохраненку, а потом уже удален путем затенения.
Исходя из логики работы обычной "плоской" системы: удалён, значит удалён. Для восстановления таких файлов нужны руки, а не автоматика.
У вас, насколько понимаю, нижний слой один, так что проверить несложно.
Нижних слоёв сколько угодно, только проверять не нужно.
Моноблок 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

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Re: PuppyRus Richy-219 - изменения
« Ответ #25 : 19 Ноябрь 2015, 22:29:19 »
Можно и не проверять, только тогда в сохраненке могут остаться лишние тени.
С другой стороны, места они займут немного, так что можно и плюнуть на них, мешать вроде не должны.

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #26 : 30 Ноябрь 2015, 16:05:54 »
 Обновил ROX-Filer до последнего 2.3
Моноблок 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

Оффлайн RoDoN

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6282
  • Репутация: +141/-0
Re: PuppyRus Richy-219 - изменения
« Ответ #27 : 30 Ноябрь 2015, 17:38:49 »
Обновил ROX-Filer до последнего 2.3
Странно, на википедии такая инфа:
Цитата
Последняя версия    2.11 (9 октября 2011)
:-[
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: PuppyRus Richy-219 - изменения
« Ответ #28 : 02 Декабрь 2015, 07:13:35 »
 Да, ошибся, вернул 2.11
Моноблок 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

Оффлайн RoDoN

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6282
  • Репутация: +141/-0
Re: PuppyRus Richy-219 - изменения
« Ответ #29 : 02 Декабрь 2015, 09:31:04 »
DdShurick, хорошо бы ссылку на твое облако в шапку темы, чтоб не ломать голову, а где ж посмотреть твои изменения.
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE