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

Автор Тема: Инсталлятор PuppyRus-Icewm-13.02  (Прочитано 25951 раз)

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

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #30 : 16 Март 2013, 23:05:25 »
потом решил пойти дальше, добавив в ваш скрипт
Код
echo "PUPFILEPATH='$PUPFILEPATH'" >> /root/m.txt
echo "PUPBASEPATH='$PUPBASEPATH'" >> /root/m.txt
echo "PUPBASENAME='$PUPBASENAME'" >> /root/m.txt
echo "PSUBDIR='$PSUBDIR'" >> /root/m.txt
echo "SFSDIR='$SFSDIR'" >> /root/m.txt
в итоге получил в m.txt
Код
PUPFILEPATH=''
PUPBASEPATH='/initrd/mnt/tmpfs/pupm-218-base.pfs'
PUPBASENAME='pupm-218-base.pfs'
PSUBDIR=''
SFSDIR='packages'
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #31 : 16 Март 2013, 23:15:56 »

 Посмотрите пожалуйста в /initrd/mnt/ куда примонтировался $PDEV1 (dev_save, dev_ro2, tmpfs). У меня монтируется к dev_save, при загрузке с CD должно монтироваться к dev_ro2, а у вас?
У меня без сохраненки, pupmode =5 , с HDD,   $PDEV1  он-же sda8 , смонтирован на /initrd/mnt/dev_ro2
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #32 : 17 Март 2013, 00:34:23 »
Так, как у меня установлено несколько  PuppyRus-Icewm-13.02, то выполнение  строки
Код
PUPFILEPATH=$(dirname $(find /initrd/mnt -type f -name $PUPBASENAME))
не удается Вот что выдает часть строки, отвечающая за поиск
Код
 find /initrd/mnt -type f -name pupm-218-base.pfs
/initrd/mnt/tmpfs/pupm-218-base.pfs
/initrd/mnt/dev_ro2/PR/pupm-218-base.pfs
/initrd/mnt/dev_ro2/Lego/pupm-218-base.pfs
/initrd/mnt/dev_ro2/Legoxfse/pupm-218-base.pfs
а несколько вариантов dirname не отработает
Код
 $(dirname $(find /initrd/mnt -type f -name pupm-218-base.pfs))
dirname: лишний операнд `/initrd/mnt/dev_ro2/PR/pupm-218-base.pfs'
Попробуйте `dirname --help' для получения более подробного описания.
Если изменить критерий поиска, как в сегодняшнем м5
Код
 $(dirname $(find /initrd/mnt/dev_*/ -type f -name pupm-218-base.pfs))
dirname: лишний операнд `/initrd/mnt/dev_ro2/Lego/pupm-218-base.pfs'
Попробуйте `dirname --help' для получения более подробного описания.
круг сузится - отпадает /initrd/mnt/tmpfs/pupm-218-base.pfs,  но все равно слишком много вариантов, и каталоги идут по алфавиту, а копировать нужно из того, откуда запускалась система, может к этому как-то прикрутить проверку по psubdir=  ? А, я и забыл, Вы не хотите использовать PUPSTATE  :'(
После создания сохраненки
Код
/initrd/mnt/dev_save/PR/pupm-218-base.pfs
/initrd/mnt/dev_save/Lego/pupm-218-base.pfs
/initrd/mnt/dev_save/Legoxfse/pupm-218-base.pfs
/initrd/mnt/tmpfs/pupm-218-base.pfs
« Последнее редактирование: 17 Март 2013, 02:14:41 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #33 : 17 Март 2013, 07:21:58 »
 Понятно. Нужно откуда то взять $PSUBDIR  :(
Моноблок 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

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #34 : 17 Март 2013, 10:47:17 »
;) Есть и еще варианты  :D Это я уже совсем " затестился" - у меня нашлось 3 каталога с pupm-218-base.pfs.  Для установки с CD  вариант поиска из v5
Код
PUPFILEPATH=$(dirname $(find /initrd/mnt/dev_*/ -type f -name $PUPBASENAME))
рабочая т.к отсекает /initrd/mnt/tmpfs/pupm-218-base.pfs и я ее проверил установкой с CD .  Проблема возникает только если у пользователя более 2-х PuppyRus, либо где-то в каталоге просто лежит файл pupm-218-base.pfs.
Самому это все " оформить"  не хватает знаний, поэтому опишу словами.
1. Создаем доп. переменную
Код
PUPFILEPATH1= $(find /initrd/mnt/dev_*/ -type f -name $PUPBASENAME)
Но в нее добавляем и поиск наличия initrd.gz и vmlinuz в одном каталоге с $PUPBASENAME  - этим мы отсекаем случайные pupm-218-base.pfs
2. Проверяем условие сколько в PUPFILEPATH1 строк
      2.1 если строк одна то передаем на
Код
PUPFILEPATH=$(dirname $PUPFILEPATH1)
      2.2 если  две и более  то выводится окошко для выбора, по типу окна выбора раздела для установки,    ИЗ какого каталога устанавливать
Код
/PR/
/Lego/
/Legoxfse/
И уже выбранный путь передается на PUPFILEPATH=
 Немного громоздко , но позволяет обойтись без $PSUBDIR
« Последнее редактирование: 17 Март 2013, 13:00:43 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #35 : 17 Март 2013, 11:03:18 »
 Идея!
Вместо копирования /packages
Код
cp -a -L $PUPFILEPATH/$SFSDIR ${PMNTPT}${INPSUBDIR}/packages/
запустить losetup в цикл
Код
losetup | cut -f3 -d' ' | sed 's/^\/mnt/\/initrd\/mnt/' | while read PFS
do cp $PFS ${PMNTPT}${INPSUBDIR}/${PFSDIR}
PFSDIR=packages/ #второй и последующие модули - в packages
done
Преимущества:
- более быстрое копирование, если модули загружены в RAM
- не нужен поиск $PFSDIR
- будут скопированы только подключенные модули, зато подключенные из любого места.
 Недостатки:
- пока не вижу. Но обязательно будут.
Моноблок 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-Icewm-13.02
« Ответ #36 : 17 Март 2013, 13:21:58 »
 Пробуем очередной "блин"
Моноблок 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

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #37 : 17 Март 2013, 15:08:06 »
Поздравляю  :) :D ;D Ваш " блин"  только немножко " элипс" . Хотя, может быть , это назначат не багом, а фичей  ;)  На установленном в каталог на HDD PuppyRus-Icewm-13.02 заменил инсталлятор и установил   на флешку в каталог, все скопировалось, потом с этой флешки загрузился - все ОК.  Еще раз переустановил с HDD на флешку в корень, тоже все скопировалось  и с флешки загрузился - ОК .

" Фича" в том, что в каталог packages  закидывает и pupm_save.3fs  :) Хорошо,еще что я для тестовой сделал всего 128 мб , а не 512, как обычно.  Долго я бы ждал завершения установки на низкоскоростной флешке  :D
  С другой стороны - функция автобэкапа  ;)
 Да, естественно, что при загрузке система не автоподключает pupm_save.3fs  из packages, просто бэкап :)
« Последнее редактирование: 17 Март 2013, 15:35:24 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #38 : 17 Март 2013, 17:16:31 »
 Спасибо. Исправил. Строка 81
Код
losetup | cut -f3 -d' ' | sed 's/^\/mnt/\/initrd\/mnt/' | grep -v "\.[234]fs" | while read PFS
« Последнее редактирование: 17 Март 2013, 17:21:15 от 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

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #39 : 17 Март 2013, 17:52:38 »
вечером проверю
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #40 : 17 Март 2013, 22:43:32 »
Как говорится в анекдоте, есть одна хорошая новость и одна плохая  :D
Хорошая - с последним исправлением перестало копировать pupm_save.3fs
Плохая- все это то работает только при наличии сейва
 Что с CD, что с флешки, что с винта при PUPMODE=5 не может скопировать initrd.gz и  vmlinuz
 при установке с CD в терминале написало
Код
cp: невозможно выполнить stat для `/initrd/mnt/tmpfs/vmlinuz': Нет такого файла или каталога
cp: невозможно выполнить stat для `/initrd/mnt/tmpfs/initrd.gz': Нет такого файла или каталога
При установки с флешки без сейва - тот-же текст

« Последнее редактирование: 17 Март 2013, 22:51:53 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #41 : 17 Март 2013, 23:08:09 »
Что с CD, что с флешки, что с винта при PUPMODE=5 не может скопировать initrd.gz и  vmlinuz
Понял из-за чего. Нужен смонтированный /mnt/home (он же /initrd/mnt/dev_*). Буду копать. Кстати у меня нет сейва но с новым init всё работает. Но это другая история.

 А теперь ФОКУС!
Предварительно две команды:
Код
# curlftpfs ftp://mirror.yandex.ru/puppyrus/pfs/packages-pfs/ /initrd/mnt/repo
# load_sfs /initrd/mnt/repo/pupradio-0.14_Richy.pfs
Запускаю новый инсталлер и устанавливаю ОС на sda4/example/
Код
ls -l /home/example/packages/pupradio-0.14_Richy.pfs
-rw-r--r-- 1 root root 8192 2013-03-17 21:49 /home/example/packages/pupradio-0.14_Richy.pfs
Факт налицо - прямая установка выбранного пакета с репозитория. Буржуи так не могут  ;D
Интернет у меня - Мегафоновский свисток Huawei-E150. Вот так.
Моноблок 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

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
  • Автор темы
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #42 : 18 Март 2013, 00:27:09 »
Что с CD, что с флешки, что с винта при PUPMODE=5 не может скопировать initrd.gz и  vmlinuz
Понял из-за чего. Нужен смонтированный /mnt/home (он же /initrd/mnt/dev_*). Буду копать. Кстати у меня нет сейва но с новым init всё работает. Но это другая история.

Может я что-то недопонял в терминах но...
Загрузился с флешки без сейва, запустил инсталлятор - не пошло  Посмотрел mount
Код
# mount
rootfs on / type rootfs (rw,relatime)
tmpfs on /initrd/pup_rw type tmpfs (rw,relatime,size=1312656k)
/dev/sdc1 on /initrd/mnt/dev_ro2 type ext3 (rw,relatime,errors=continue,barrier=1,data=ordered)
tmpfs on /initrd/mnt/tmpfs type tmpfs (rw,relatime,size=49300k)
/dev/loop0 on /initrd/pup_ro2 type squashfs (ro,noatime)
unionfs on / type aufs (rw,relatime,si=fe73c156)
none on /proc type proc (rw,relatime)
none on /dev/pts type devpts (rw,relatime,gid=2,mode=620)
none on /sys type sysfs (rw,relatime)
/dev/loop1 on /mnt/.xorg-meta-13.02.pfs type squashfs (ro,relatime)
/dev/loop2 on /mnt/.usoft-libflashplayer.pfs type squashfs (ro,relatime)
/dev/loop3 on /mnt/.puppyrus-soft-13.03.pfs type squashfs (ro,relatime)
/dev/loop4 on /mnt/.puppyrus-icewm-13.02.pfs type squashfs (ro,relatime)
/dev/loop5 on /mnt/.firefox-19_ru+adblock.pfs type squashfs (ro,relatime)
Т.е /initrd/mnt/dev_ro2 есть и  /mnt/home как ссылка на  /initrd/mnt/dev_ro2
Сейчас перезагружусь, создав сейв и посмотрю, как там.
Перезагрузился создав сейв.  Посмотрел mount
Код
# mount
rootfs on / type rootfs (rw,relatime)
/dev/sdc1 on /initrd/mnt/dev_save type ext3 (rw,noatime,errors=continue,barrier=1,data=ordered)
/dev/loop1 on /initrd/pup_ro1 type ext3 (rw,noatime,errors=continue,barrier=1,data=ordered)
tmpfs on /initrd/pup_rw type tmpfs (rw,relatime,size=1312656k)
/dev/loop0 on /initrd/pup_ro2 type squashfs (ro,noatime)
unionfs on / type aufs (rw,relatime,si=94926c64)
none on /proc type proc (rw,relatime)
none on /dev/pts type devpts (rw,relatime,gid=2,mode=620)
none on /sys type sysfs (rw,relatime)
/dev/loop2 on /mnt/.xorg-meta-13.02.pfs type squashfs (ro,relatime)
/dev/loop3 on /mnt/.usoft-libflashplayer.pfs type squashfs (ro,relatime)
/dev/loop4 on /mnt/.puppyrus-soft-13.03.pfs type squashfs (ro,relatime)
/dev/loop5 on /mnt/.puppyrus-icewm-13.02.pfs type squashfs (ro,relatime)
/dev/loop6 on /mnt/.firefox-19_ru+adblock.pfs type squashfs (ro,relatime)
Сейчас /mnt/home - это ссылка на /initrd/mnt/dev_save
Запустил инсталлятор - все отработало замечательно - установил на винт, в отдельный каталог. Все файлы скопировались в нужные места и в нужном количестве .
 Может эта информация вам поможет. Если будет новый вариант , протестировать смогу только вечером.
« Последнее редактирование: 18 Март 2013, 00:55:13 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #43 : 18 Март 2013, 02:21:22 »
пожалуйста, дайте существующий инсталятор с исправленным копированием paskages
Текущие эксперименты до выхода beta версии в систему не пойдут.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Инсталлятор PuppyRus-Icewm-13.02
« Ответ #44 : 18 Март 2013, 08:59:07 »
не может скопировать initrd.gz и  vmlinuz
Вопрос решён. Во всём виновата моя бестолковая голова и дырявая память. В ходе экспериментов я укоротил строку поиска пути к файлам (стр. 84)
Код
PUPFILEPATH=$(dirname $(find /initrd/mnt/ -name $(basename $PFS) | head -n1))
а было
Код
PUPFILEPATH=$(dirname $(find /initrd/mnt/dev_*/ -name $(basename $PFS) | head -n1))
С этой строкой vmlinuz и initrd.gz копируются нормально. Проверил.
Моноблок 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