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

Дистрибутивы проекта PuppyRus Linux => Сборки Linux от пользователей => Richy => Тема начата: DdShurick от 16 Май 2019, 13:46:45

Название: Installer
Отправлено: DdShurick от 16 Май 2019, 13:46:45
 Вот сижу и думаю, а не написать ли мне свой инсталлер? Куски кода есть, а как их увязать, на уровне идеи не вытанцовывается. Именно дизайн. Хочется сделать что-то похожее на мой connect, но информативнее: ярлык диска (hd, flash), ёмкость, название, ниже список разделов (для каждого диска отдельно свой). Так получится и понятно, и в один клик.
??
Название: Re: Installer
Отправлено: k0l0p0k от 16 Май 2019, 14:17:26
Куски кода есть, а как их увязать, на уровне идеи не вытанцовывается. Именно дизайн.
тоже этот вопрос интересует, и тоже дизайн :)
предлагайте какой-нибудь прототип, может еще кто варианты предложит..
начнем критиковать  :)
Название: Re: Installer
Отправлено: knn от 16 Май 2019, 16:01:08
есть интерес/намерение к "установщику загрузчика" -
- gr4dos( думаю будет применимо и к многим другим загрузчикам).

Насчет "дизайна" - dialog( просто-dialog) - сложнее, но тогда переделать при нужде на всё остальное проще ( ну и Консоль - всегда в наличии) .

Часть мыслей уже выкладывал где-то на Форуме. Есть и подсобранные наметки.
---------------
интерес - для "своего удобства", но в намётках и для "расширенного пользователя"
Название: Re: Installer
Отправлено: DdShurick от 16 Май 2019, 16:58:33
начнем критиковать  :)
Начинайте :) Это начало, blkid и gtkdialog. Дальше будет больше.
Название: Re: Installer
Отправлено: sfs от 16 Май 2019, 17:12:15
Это девайсы для выбора, куда ставить в MBR?
Название: Re: Installer
Отправлено: DdShurick от 16 Май 2019, 17:57:36
куда ставить
Просто куда ставить.
Название: Re: Installer
Отправлено: sfs от 16 Май 2019, 18:14:58
Ну так загрузчик надо в MBR девайса, а файлы дистра в раздел
Название: Re: Installer
Отправлено: k0l0p0k от 16 Май 2019, 18:21:46
Начинайте :) Это начало
все же хоть немного текста нужно добавить
чтобы юзер, знал, что произойдет если нажать на кнопки
типа: "выберите, куда ставить систему\загрузчик"
или: "куда устанавливаем?"
добавить небольшую кнопку [help], где текста(разъяснений) будет уже побольше
В теме про установщик пра процентов 30 пользователей хотели бы видеть подробные инструкции в инсталяторе, может прислушаться к пожеланиям?
----
blkid и gtkdialog.
а если lsblk и gtkdialog ?
Название: Re: Installer
Отправлено: DdShurick от 16 Май 2019, 21:14:12
а если lsblk и gtkdialog ?
Я это и имел в виду.
немного текста нужно добавить
Можно, но нужно ли? Кто его читает?

Вариант 2. Никак не получается взять переменную to_part :(
Название: Re: Installer
Отправлено: k0l0p0k от 16 Май 2019, 21:19:45
на скрине пока красиво получается
Можно, но нужно ли? Кто его читает?
но не понятно - то ли это установщик, то ли просто инфа о разделах :)
нужно хотя бы:
или: "куда устанавливаем?"
где-нибудь(сверху?) прилепить
Название: Re: Installer
Отправлено: DdShurick от 16 Май 2019, 21:31:13
просто инфа о разделах
Да, выбираем раздел для установки.
прилепить
Прилепить всегда успеется. Сначала надо эту гуёвину заставить работать. Или выкинуть.
Название: Re: Installer
Отправлено: sfs от 17 Май 2019, 09:18:44
Пока Ваша картинка выглядит как неплохая альтернатива моему ymount (см. скрин)
Только иконки сделать кнопками с картинкой состояния (монтировано\нет)
И на эти кнопки : (u)mount
Только при большом к-ве разделов, наверное вылезут проблемы (не влезет)
Название: Re: Installer
Отправлено: DdShurick от 17 Май 2019, 09:45:38
Ваша картинка выглядит
Явно симпатичнее :)
сделать кнопками
Вариантов масса: button, radiobutton, checkbox, combobox...
Название: Re: Installer
Отправлено: k0l0p0k от 17 Май 2019, 12:12:49
Выберите раздел  -> Выберите раздел для установки
Название: Re: Installer
Отправлено: k0l0p0k от 17 Май 2019, 12:17:12
зачем три чекбокса ?
когда юзер выберет раздел, проверять, есть\нет на диске с этим разделом g4d, если нет - предлагать устанавливать
?
Название: Re: Installer
Отправлено: sfs от 17 Май 2019, 12:34:04
последняя картинка еще лучше
Может иконки уменьшить....  на случай большого к-ва девайсов
зачем три чекбокса ?
Чтобы г4д поставить на 1 девайс, а систему на другой
Название: Re: Installer
Отправлено: k0l0p0k от 17 Май 2019, 12:47:49
Чтобы г4д поставить на 1 девайс, а систему на другой
ок, пусть под каждым диском будет
-----
в окошке с разделами:
тип фс и размер раздела поменять местами - чуть поровнее будет
данные о размере раздела заменить на свободно на разделе ( df справляется, пробовал :) )
свободное место - более актуальная инфа при установке, чем просто общий размер
Название: Re: Installer
Отправлено: sfs от 17 Май 2019, 12:55:26
поровнее будет
printf '"col1"\t"col2"'
Название: Re: Installer
Отправлено: k0l0p0k от 17 Май 2019, 13:05:45
да, можно табуляцию использовать(даже нужно)
если местами поменять - без табуляции ровно будет. почти
Название: Re: Installer
Отправлено: DdShurick от 17 Май 2019, 14:16:59
Может иконки уменьшить....
Надписи не поместятся
данные о размере раздела заменить на свободно на разделе
Данные о размере юзер ещё как-нибудь знает, а вот свободно.... сомневаюсь
свободное место
Проверяется перед копированием модулей
Гораздо интереснее проверить наличие (и тип) загрузчика по MBR. У меня там "5eeb 0090" а потом "шестнадцать тактов паузы" (C) "Волга-Волга"
Код
# hexdump -n 96 /dev/sda
0000000 5eeb 0090 0000 0000 0000 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
*
0000050 0000 0000 0000 0000 0000 0080 3920 ffff
0000060
на sdb аналогично, а вот sdc (SDcard)
Код
# hexdump -n 80 /dev/sdc
0000000 b8fa 1000 d08e 00bc b8b0 0000 d88e c08e
0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
0000050
Проверял на двух карточках - одинаково.
Название: Re: Installer
Отправлено: sfs от 17 Май 2019, 14:24:51
grub2
# hexdump -n 96 /dev/sda
Код
0000000 63eb 1090 d08e 00bc b8b0 0000 d88e c08e
0000010 befb 7c00 00bf b906 0200 a4f3 21ea 0006
0000020 be00 07be 0438 0b75 c683 8110 fefe 7507
0000030 ebf3 b416 b002 bb01 7c00 80b2 748a 8b01
0000040 024c 13cd 00ea 007c eb00 00fe 0000 0000
0000050 0000 0000 0000 0000 0000 8000 0001 0000
0000060
MBR. У меня там "5eeb 0090" а потом "шестнадцать тактов паузы"
grub4dos - у меня так же
Название: Re: Installer
Отправлено: DdShurick от 17 Май 2019, 15:02:50
Код
case $(hexdump -n 4 /dev/sda | awk '/0000000/ {print $2$3}') in
 5eeb0090) echo "Grub4dos";;
 63eb1090) echo "Grub2";;
 *) echo "??";;
esac
??
Название: Re: Installer
Отправлено: sfs от 17 Май 2019, 15:10:39
Гораздо интереснее проверить наличие (и тип) загрузчика по MBR
Подумал - а смысл....
Если система загружается - юзер и так знает какой загрузчик
Если нет - все равно переставлять
Название: Re: Installer
Отправлено: k0l0p0k от 17 Май 2019, 16:20:47
Данные о размере юзер ещё как-нибудь знает, а вот свободно.... сомневаюсь
недопонял? если речь о правах, то достаточно юзерских, вот пример:
Код
live@DDR01:~$ list1=/dev/sdc1
live@DDR01:~$ df -h "$list1"
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sdc1           29G          26G  3,7G           88% /mnt/sdc1
live@DDR01:~$ df -h "$list1" | grep "$list1" | sed 's/\ \{1,\}/:/g' | cut -d':' -f 4
3,7G
почему-бы юзеру сразу не показать, где есть место, а где точно не влезет :)
можно и оба числа выводить и размер и свободное место .. после типа фс
Название: Re: Installer
Отправлено: DdShurick от 17 Май 2019, 16:49:29
почему-бы юзеру сразу не показать, где есть место, а где точно не влезет
Придётся монтировать все разделы, а оно того стоит?
Название: Re: Installer
Отправлено: k0l0p0k от 17 Май 2019, 16:51:35
Придётся монтировать все разделы, а оно того стоит?
точно .. у кого-то не смонтированы могут быть .. недодумал
Название: Re: Installer
Отправлено: DdShurick от 18 Май 2019, 17:11:21
Гораздо интереснее проверить наличие (и тип) загрузчика по MBR
Подумал - а смысл....
Смысл? Зная тип загрузчика, можно реализовать сценарий автоматической правки конфигфайла, или, как минимум, предотвратить затирание уже существующего загрузчика.
63eb 1090
У меня на старом диске "63eb d090" (Альтлинукс Grub2), все варианты вновь скомпилированного grldr.mbr "5eeb 0090" и дальше нули до позиции 0x000005a

С menu.lst можно сделать так:
menu.part1 (шапка, пишется когда загрузчика и menu.lst нет
Код
timeout 5
default 5
gfxmenu /boot/pictures/PUPPYRUS.gz
/boot/unifont/unifont-rus.hex.gz

# Frugal installed Puppy
У вас шапка может быть другой.
menu.part2 (шаблон, дописывается к menu.lst)
Код
title Richy
 kernel (hd)/boot/vmlinuz dev=DEV dir=DIR "прочее труляля"
 initrd (hd)/boot/initrd.gz
обрабатываем sed-ом
Код
# sed 's/(hd)/(hd0,0)/;s/boot/Richy/;s/DEV/sda1/;s/DIR/Richy/' menu.part2

title Richy
 kernel (hd0,0)/Richy/vmlinuz dev=sda1 dir=Richy "прочее труляля"
 initrd (hd0,0)/Richy/initrd.gz
Естественно, вместо заданных значений будут использоваться переменные $to_dev, $to_dir, $to_MBR
??
Название: Re: Installer
Отправлено: DdShurick от 19 Май 2019, 13:29:49
 Не знаю, будет ли это работать, но... installer (https://cloud.mail.ru/public/4tUs/knWtU118N) для Richy. Терзайте
Название: Re: Installer
Отправлено: k0l0p0k от 19 Май 2019, 15:12:51
пока только по UI поправки\предложения
убавил высоту иконок дисков до 50:
<pixmap>
    <height>50</height>
добавил параметр height к <list> :
 <list>
     <height>150</height>
окошечки там миниатюрные, когда разделов не один - скроллбары появляются - вид портят  ???
а так вроде получше
одну табуляцию убрал тут (было две, между разделом и типом фс):
... awk '{print $2"\t"$4"\t\t"$3}')</item>" | tee -a /tmp/installer
-----
168 строчка
скобочка закрывающая } нужна ? у меня ругается на нее  :-\
-----
и еще
после проверки свободного места предлагаю вывести окошко с очень краткой инфой:
раздел - свободно (- всего),
но главное - в этом же окошке переспросить юзера - "точно на этот раздел ставить?"
??



Название: Re: Installer
Отправлено: k0l0p0k от 19 Май 2019, 16:23:33
файлики.pfs копирует нормально
но под ддр01 список модулей пришлось подправить :
#modules=$(realpath $(losetup -a|awk '{print $3}'))
modules=$(realpath $(losetup|awk '{print $6}')| egrep "*.pfs")
заодно changes.dat исключил
----
но
cp пару раз ругнулся:
cp: невозможно создать обычный файл '/mnt/sdc1/Richy4/copy2ram/': Это не каталог
cp: невозможно создать обычный файл '/mnt/sdc1/Richy4/sda2/': Это не каталог
и соответственно /mnt/live/memory/copy2ram/001-ddr01-sf17.pfs
не скопировался  ???
вторая ошибка на подключенный на горячую модуль - его как раз не нужно было копировать
---
может так список получать:
modules=`realpath $(ls /mnt/live/memory/images)`
?
Название: Re: Installer
Отправлено: DdShurick от 19 Май 2019, 16:23:40
<pixmap>
    <height>50</height>
64 ??
<list>
     <height>150</height>
Принято.
одну табуляцию убрал
С одной некрасиво, несимметрично.
скобочка закрывающая }
Убрал.
"точно на этот раздел ставить?"
Добавил.
Название: Re: Installer
Отправлено: k0l0p0k от 19 Май 2019, 16:55:51
<pixmap>
    <height>50</height>
----------
64 ??
да
С одной некрасиво, несимметрично.
то же на это думал, у меня почемуто и с одной ровно выводит
ну пусть две будет
Название: Re: Installer
Отправлено: DdShurick от 19 Май 2019, 18:43:08
с одной ровно выводит
У меня несимметрично.

Осталось решить вопрос с монтированием /home.

Залил на github (https://github.com/DdShurick/Installer).
Название: Re: Installer
Отправлено: sfs от 22 Май 2019, 14:25:23
Явно симпатичнее
Ваш инсталлятор установит только г4д (без системы)?
Если да - как такое выбрать в этом гуе?
Название: Re: Installer
Отправлено: k0l0p0k от 22 Май 2019, 14:27:32
Ваш инсталлятор установит только г4д (без системы)?
копирует файлики системы, но все подряд, в тч "мусор" :)
установку г4д не проверял
Название: Re: Installer
Отправлено: k0l0p0k от 22 Май 2019, 14:31:39
имхо эта тема - определится с ГУИ, как выглядеть установщику?
Куски кода есть, а как их увязать, на уровне идеи не вытанцовывается. Именно дизайн. Хочется сделать что-то похожее на мой connect, но информативнее: ярлык диска (hd, flash), ёмкость, название, ниже список разделов (для каждого диска отдельно свой). Так получится и понятно, и в один клик.

Название: Re: Installer
Отправлено: DdShurick от 22 Май 2019, 14:49:01
Ваш инсталлятор установит только г4д (без системы)?
Нет.