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

Автор Тема: Initrd (от DdShurick)  (Прочитано 111908 раз)

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

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re:initrd_mnt
« Ответ #90 : 06 Январь 2016, 11:38:55 »
именно! но сделано сейчас наоборот. ошибка.
Где наоборот? Где ошибка?
Код
[ "$(grep $ONEEXTRA /proc/mounts)" = "" ] || continue
и
Код
[ "$(grep $ONEEXTRA /proc/mounts)" ] && continue
одно и то же.
Моноблок 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

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
Re:initrd_mnt
« Ответ #91 : 06 Январь 2016, 11:43:59 »
именно! но сделано сейчас наоборот. ошибка.
Где наоборот? Где ошибка?
Код
[ "$(grep $ONEEXTRA /proc/mounts)" = "" ] || continue
и
Код
[ "$(grep $ONEEXTRA /proc/mounts)" ] && continue
одно и то же.

или я чего-то не понимаю, но это противоположное, а не одно и тоже.

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
Re:initrd_mnt
« Ответ #92 : 06 Январь 2016, 11:47:20 »
Блин.... Я невнимателен был.  Все правильно.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re:initrd_mnt
« Ответ #93 : 06 Январь 2016, 11:49:23 »
Если ставки принимаются, то я за "одно и тоже"   :)
Упс... Не успел.
« Последнее редактирование: 06 Январь 2016, 11:51:21 от betcher »

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:initrd_mnt
« Ответ #94 : 06 Январь 2016, 11:52:49 »
bash это как русский язык, машина запор, в туалет не можешь - запор, на воротах - запор.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34033
  • Репутация: +231/-0
    • PuppyRus-A
Re:initrd_mnt
« Ответ #95 : 06 Январь 2016, 12:37:31 »
по overlay - можно попробовать сделать инкрементальные сохранения через слои. то есть берем поверх / монтируем оверлей и переключаемся на новый /. в итоге получаем естественную версионность с заданного момента.
Чем это будет лучше нескольких версионных save.pfs?
save.pfs - это полностью сохранение изменений, и для того, чтобы добиться версионности - требуется перезагрузка.
Версионность по горячему - это очень экзотический функционал
Если из overlay больше ничего не выжать - надо ли с ним вообще заморачиваться....

Оффлайн neobht

  • Ветеран
  • *****
  • Сообщений: 1031
  • Репутация: +15/-0
Re:initrd_mnt
« Ответ #96 : 06 Январь 2016, 13:21:12 »
по overlay - можно попробовать сделать инкрементальные сохранения через слои. то есть берем поверх / монтируем оверлей и переключаемся на новый /. в итоге получаем естественную версионность с заданного момента.
Чем это будет лучше нескольких версионных save.pfs?
save.pfs - это полностью сохранение изменений, и для того, чтобы добиться версионности - требуется перезагрузка.
Версионность по горячему - это очень экзотический функционал
Если из overlay больше ничего не выжать - надо ли с ним вообще заморачиваться....

Перекомпиляцией софта тоже не надо заморачиваться. Но тем не менее вы это делаете.
И много другого есть, чем можно не заморачиваться.

Но это творчество программинга. И поэтому каждый заморачивается ради процесса в большей степени, чем ради результата.

« Последнее редактирование: 06 Январь 2016, 13:24:01 от neobht »

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:initrd_mnt
« Ответ #97 : 06 Январь 2016, 13:48:18 »
ноуп, если делать качественно, то заморачиваться надо всем. другое дело что знания не бесконечны.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re:initrd_mnt
« Ответ #98 : 06 Январь 2016, 14:14:23 »
 Рабочий вариант:
Код
PDEV=$(blkid | grep $PDEV | cut -f1 -d:) #if $PDEV - UUID
echo -n "Поиск файлов Puppy" > /dev/console
 
for DEV in $PDEV $(blkid | awk -F: '!/loop|swap/ {print $1}')
 do
  blkid $DEV | grep ntfs && MNT=ntfs-3g || MNT=mount
  DEV=${DEV:5}
  mkdir /mnt/$DEV
  N=0
  until $MNT /dev/$DEV /mnt/$DEV $RO 2>/dev/null
do
  sleep 1
  echo -n . >/dev/console
  N=$(expr $N + 1)
  [ $N = 10 ] && break
done
  DIR=$(ls /mnt/$DEV/*/base/kernel-`uname -r`.sfs 2>/dev/null | cut -d'/' -f4)
if [ ! $DIR ]; then
umount /mnt/$DEV
rmdir /mnt/$DEV
  continue
  fi
  PDEV=$DEV
  PDIR=/$DIR
  check_status 0
  break
 done
Параметр PDEV можно указывать по UUID, что полезно для флешек. Параметр PDIR вроде бы вообще не нужен.
Моноблок 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:initrd_mnt
« Ответ #99 : 06 Январь 2016, 14:53:12 »
Примерно так:
Код
if [ ! "$PDIR" ]; then  
 for DEV in $PDEV $(awk '/sr[0-9]|sd.[0-9]/ {print $4}' /proc/partitions)
  do
   PDIR=$(ls /mnt/$DEV/*/base/file.sgn 2>/dev/null | cut -d'/' -f4)
   [ $PDIR ] || continue
   PDEV=$DEV
  done
fi

awk, конечно, штука хорошая, вот только в busybox его нет.  А отдельно в initrd положить - так размером он побольше всего бизибокса будет.
$(grep -E 'sr[0-9]|sd.[0-9]|hd.[0-9]' /proc/partitions |tr -s ' '|cut -d' ' -f5) или
$(sed -n '/sr[0-9]\|sd.[0-9]\|hd.[0-9]/s/ *[0-9]\+ \+[0-9]\+ \+[0-9]\+ \+\([a-z]\+[0-9]\)/\1/p' /proc/partitions)
пострашнее на вид, но зато в бизибоксе присутствуют.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re:initrd_mnt
« Ответ #100 : 06 Январь 2016, 14:57:43 »
awk, конечно, штука хорошая, вот только в busybox его нет.
Код
# busybox awk --help
BusyBox v1.21.1 (2015-02-06 09:37:08 UTC) multi-call binary.

Usage: awk [OPTIONS] [AWK_PROGRAM] [FILE]...

-v VAR=VAL Set variable
-F SEP Use SEP as field separator
-f FILE Read program from FILE
Моноблок 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:initrd_mnt
« Ответ #101 : 06 Январь 2016, 15:21:18 »
А в
BusyBox v1.21.1 (2015-02-08 23:47:00 UTC) multi-call binary.
-rwxr-xr-x 1 1015 513 316916 дек 21 20:46 /mnt/live/bin/busybox
нету :)  тоже ведь вроде бы ваша сборка.

Кстати, у меня в выводе blkid
/dev/sdb1 отсутствует.  А смонтирован ведь, и как раз на нем pra...

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re:initrd_mnt
« Ответ #102 : 06 Январь 2016, 15:33:56 »
А в
BusyBox v1.21.1 (2015-02-08 23:47:00 UTC) multi-call binary.
-rwxr-xr-x 1 1015 513 316916 дек 21 20:46 /mnt/live/bin/busybox
нету :)  тоже ведь вроде бы ваша сборка.
Это спецзаказ.
Кстати, у меня в выводе blkid
/dev/sdb1 отсутствует.
У меня есть.
Код
# blkid
/dev/sdb1: UUID="412B-F273" TYPE="vfat"
/dev/sr1: LABEL="MegaFon Internet" TYPE="iso9660"
/dev/sda4: UUID="a01606ca-15bc-49a5-9ae9-39a4e1f8c55a" TYPE="ext4"
/dev/sda1: LABEL="SYSTEM" UUID="fab6e7ae-ea22-4786-851e-0d673bbf7e87" TYPE="ext3"
/dev/sda3: UUID="5682bcea-ad74-486f-892b-f82c534922d1" TYPE="ext4"
/dev/sda2: UUID="3cecd7d7-6642-4451-ab72-0a572a33b7a9" TYPE="swap"
  А смонтирован ведь, и как раз на нем pra...
Тогда понятно..... Я же PRA в упор не вижу  :D
Моноблок 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

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re:initrd_mnt
« Ответ #103 : 06 Январь 2016, 15:39:10 »
 После удаления /etc/rc.d/PUPSTATE не работает freememapplet "Ошибка сегментирования" и жалуется на "grep: /etc/rc.d/PUPSTATE: No such file or directory". Как бы исходники посмотреть? Подпилить.
Моноблок 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:initrd_mnt
« Ответ #104 : 06 Январь 2016, 15:46:19 »
pra, не pra - просто видимо blkid разные бывают.

А еще у меня на этом устройстве несколько версий в раздых директориях лежит.  Думаю, не редкий случай.  А ядра там одинаковые, соответственно кусок кода
Код
  DIR=$(ls /mnt/$DEV/*/base/kernel-`uname -r`.sfs 2>/dev/null | cut -d'/' -f4)
if [ ! $DIR ]; then
umount /mnt/$DEV
rmdir /mnt/$DEV
  continue
  fi
  PDEV=$DEV
  PDIR=/$DIR
однозначно присвоит PDIR не то, что ожидалось из-за многострочности DIR