Автор Тема: Переход на p10  (Прочитано 7180 раз)

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Re: Переход на p10
« Ответ #15 : 03.09.2021 11:45:36 »
Регулярки уже могут грузиться через ventoy (можно накидать кучу iso на exfat или ntfs раздел и выбирать с к какого грузиться, причём для разных архитектур). Декабрьские стартеркиты будут тоже уметь. К сентябрьским не успели.
Надо конечно попробовать. Самое главное, чтобы она не грузила весь ISO в память. А то это во первых долго, а во вторых памяти в итоге может и не хватить, если машина слабая. Такое решение конечно проще, но меня такие решения отталкивают именно из за добавления еще одной прослойки виртуализации. У нас и так загрузчик, initrd и сама файловая система - это три уровня виртуализации. А мы еще один добавим. Если у нас система при записи на флэшку все равно грузится через тот же загрузчик, initrd и архив с файловой системой, то проще будет просто положить их в папочку и указать другой путь для загрузки.

К тому же хочу еще раз напомнить, что для меня решение таких задач на самом деле имело некий образовательный смысл. Вот просто появилась в голове идея и одновременно возник вопрос, а могу ли я это сделать? Ни у понеслось. А на примере процесса пересборки я еще и bash изучил и еще много чего другого.
« Последнее редактирование: 03.09.2021 11:47:40 от Mr.Madguy »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Переход на p10
« Ответ #16 : 03.09.2021 13:20:21 »
Самое главное, чтобы она не грузила весь ISO в память.

Это не требуется. Пробовать отсюда:
http://nightly.altlinux.org/sisyphus/current/

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Переход на p10
« Ответ #17 : 03.09.2021 13:22:23 »
Такое решение конечно проще, но меня такие решения отталкивают именно из за добавления еще одной прослойки виртуализации. У нас и так загрузчик, initrd и сама файловая система - это три уровня виртуализации. А мы еще один добавим

Это не виртуализация, а этапы загрузки. Да, добавляется ещё один этап загрузки. Но на потребление памяти и ресурсов процессора после загрузки это не влияет.
« Последнее редактирование: 03.09.2021 13:35:56 от Антон Мидюков »

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Re: Переход на p10
« Ответ #18 : 03.09.2021 15:31:59 »
Это не виртуализация, а этапы загрузки. Да, добавляется ещё один этап загрузки. Но на потребление памяти и ресурсов процессора после загрузки это не влияет.
Я просто не знаю подробностей, каким способом оно это делает. Есть несколько вариантов. Syslinux вроде грузит все в память. Это подходит для маленьких образов, работающих через BIOS, типа DOS, но не очень подходит для образов на 3Гб. Они долго грузятся и могут сожрать всю память. Вроде в каком-то другом загрузчике, по моему Grub, если возможность организовать виртуальный ISO-диск. Но там все равно загрузчик может только выцепить из ISO ядро и initrd, а уже ядро должно само уметь грузить файловую систему из ISO, т.к. ядро Linux не работает с дисками через BIOS. Подозреваю, что этот ventoy тоже использует этот метод. И вот этот второй метод мне не нравится из за его неуниверсальности. Нужна поддержка со стороны ядра, а это не гарантировано.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Re: Переход на p10
« Ответ #19 : 04.09.2021 07:27:22 »
С файла наверное загрузится можно, если файловая система в нем не NTFS
можно и NTFS, у меня в итоге получилось

Это совершенно другая задача
значит мы о разном... но тем не менее, поддержки ntfs-3g в initrd не было, когда я решал подобную задачу
Сноси Винду, переходи на Линукс ! :)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Переход на p10
« Ответ #20 : 04.09.2021 14:44:46 »
Самое главное, чтобы она не грузила весь ISO в память. А то это во первых долго, а во вторых памяти в итоге может и не хватить, если машина слабая.

Стартеркиты в режиме загрузки через MBR, с опцией без сохранения сессии, по-умолчанию не грузят образ в память, используя параметр lowmem. Но и в режиме с сохранением сессии, ничто не мешает добавить lowmem в параметры загрузки.

такие решения отталкивают именно из за добавления еще одной прослойки виртуализации.

Образ в памяти не виртуализация.
Теоретически, после загрузки лайва с образом в памяти, должна использоваться не система с флешки, а система в памяти. Скорость доступа и скорость выполнения быстрее если доступ к файлам системы идёт не к накопителю по usb, а к памяти. Оперативная память, самый быстрый "накопитель".

Такое решение конечно проще, но меня такие решения отталкивают именно из за добавления еще одной прослойки виртуализации. У нас и так загрузчик, initrd и сама файловая система - это три уровня виртуализации.

initrd не виртуализация. Это то же самое что и ram-диск в *dos. Но с другим наполнением и другим целевым назначением.
На AT286 например, рам-диск иногда содержал минимально необходимый набор приложений и утилит, который на мелких файлах, с математическим сопроцессором, по скорости выполнения может и сегодня поспорить с современной системой на ssd.
initrd, это ram-disk инициализирующий загрузку основной системы, - init(ialization)-r(am)-d(isk).
Например на загрузке системы xfce-sysv, в которой нет плимута, сплешей и все сообщения начиная с рам-диска доступны в tty1 для полного контроля загрузки системы, сообщение "INIT: Running init (/sbin/init)" пишет не основная система, а рам-диск инициализации, передавая управление загрузкой основной системе:
# tail -n 4 /tmp/initrd/etc/rc.d/rc.sysexec
msg "INIT: Running init ($INIT)"

# Run system init with arguments. Goodbye!
exec runas /sbin/init /bin/environ -cf /.initrd/kernenv /sbin/switch_root "$rootmnt" "$INIT" "$@"

/sbin/init в свою очередь, может быть или файлом (в системах на sysvinit) или симлинком (в системах на systemd):
# file /sbin/init
/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
# ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 сен  3 16:38 /proc/1/exe -> /sbin/init

В системах на systemd, /proc/1/exe указывал бы на /lib/systemd/systemd.
В зависимости от того, что такое /sbin/init, файл или симлинк, им и передаёт управление загрузкой рам-диск инициализации.
Это же и объясняет, почему init в системе, это PID 1.
« Последнее редактирование: 04.09.2021 15:11:17 от Speccyfighter »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Переход на p10
« Ответ #21 : 04.09.2021 19:22:11 »
Совершенно верно, параметр lowmem принудительно отключает загрузку сквоша в /dev/ramN. В некоторых кейсах propagator и altboot включают эту опцию внутри себя, в остальных можно регулировать через /proc/cmdline. Но при сетевой загрузке по протоколам FTP или HTTP и propagator, и altboot будут сначала загружать целиком в память весь ISO-образ, после чего включать внутри себя lowmem, чтобы ещё и сквошом не занимать место.
To moan or to solve -- that is the question!

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Re: Переход на p10
« Ответ #22 : 04.09.2021 23:31:15 »
Я говорю не о загрузке initrd и stage2 в память. Тут уж так устроен Linux и тут ничего не поделать. Я говорю о загрузке ISO напрямую без распаковки. Можно как загрузить его в память, так и, при более продвинутой виртуализации, обеспечить доступ к нему напрямую без загрузки в память. Но сколько веревочке не виться, а конец всегда один. Можно выцепить с этого виртуального образа загрузчик, ядро и initrd и stage2. Но как только запускается ядро, ему становится плевать на всю эту виртуализацию. И чтобы оно загрузило все остальное - оно само должно уметь это грузить из ISO. Потому то для этого, насколько я понимаю, и нужна какая то специальная поддержка со стороны ядра. Но она не гарантирована. А потому мне этот метод не нравится. Он конечно проще, но он не универсален.

Я поискал в интернете и похоже, что ventoy использует grub. И если почитать про загрузку ISO из grub, то там почти всегда есть что то типа findiso=${isofile} или iso-scan/filename=${isofile}, т.е. ядро должно само уметь искать ISOшник и грузится с него. А если не умеет?

Мой же метод работает всегда. Я не встречал еще ни одного дистрибутива, который бы я не смог бы загрузить таким способом. Были конечно проблемы с поддержкой NTFS в Alt и какой-то баг при работе с NTFS в Debian. Но они всегда решались пересборкой дистрибутива. А все дело в том, что я по сути использую штатный метод загрузки, просто немножко его модифицирую.
« Последнее редактирование: 04.09.2021 23:43:59 от Mr.Madguy »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Переход на p10
« Ответ #23 : 05.09.2021 01:48:30 »
Я говорю о загрузке ISO напрямую без распаковки. Можно как загрузить его в память, так и, при более продвинутой виртуализации, обеспечить доступ к нему напрямую без загрузки в память.
Если речь о мультизагрузке, то, во-первых, мультизагрузочная флэшка -- это не ISO-образ. grub-конфиг формируемый ventoy -- это скрипт, который сканирует ISO-образы на разделе флэшки и формирует из их списка меню динамически. Во-вторых, речь совсем не о виртуализации, а об очень хитром механизме доступа к содержимому ISO-образа. После того, как пользователь выберет тот или иной дистрибутив, загрузчик может изменить переменные EFI, может передать BIOS-блок через нижние адреса памяти. И оставить в памяти кусок кода, который будет обеспечивать доступ к описанному устройству, не только псевдо-CD, но и целевой HDD можно так передавать, можно передать из файлика на той же флэшке раздел диска для постоянного хранилища. Это не виртуализация оборудования, а расширение возможностей BIOS/Firmware. По аналогии работают iPXE, IBM VIOS, iDrac, BMC, IPMI, итд. Они позволяют не сидеть за сервером непосредственно, а через браузер и HTML5 или Java прямо со своей машины пробросить по сети "виртуальный" ISO-образ, "виртуальный" NVME, который просто здесь же локальный файл, итд.

Но сколько веревочке не виться, а конец всегда один. Можно выцепить с этого виртуального образа загрузчик, ядро и initrd и stage2. Но как только запускается ядро, ему становится плевать на всю эту виртуализацию.
Ядро умеет работать с железом и через доступ к firmware, за счёт этого мультизагрузочные диски ventoy с altboot грузятся. А диски с propagator не грузятся только потому, что метод cdrom в пропагаторе жёстко проверяет известные ему типы железа, и не найдя нужного, обламывается. Метод cdrom используется в АЛЬТ по умолчанию. Однако и в пропагаторе, и в altboot есть метод disk, более приспособленный для мультизагрузочных флэшек. Он позволяет указать полный путь к ISO-образу на флэшке, так что грузиться с ним можно и без ventoy.

Мой же метод работает всегда.
Полагаю, штатный способ с перебивкой метода cdrom на disk тоже дадут положительный эффект. И ventoy оказался прикольной штукой, попробуйте.
To moan or to solve -- that is the question!

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Re: Переход на p10
« Ответ #24 : 05.09.2021 08:35:09 »
Вот тут описана проблема, о которой я говорю.

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Переход на p10
« Ответ #25 : 05.09.2021 15:41:54 »
Вот тут описана проблема, о которой я говорю.
Да, но там говорится, что это работает до загрузки в большинстве случаев. А далее даётся пояснение, почему так происходит -- многие дистрибутивы ищут конкретное аппаратное устройство, с которого выполняется загрузка. К их числу относится и метод cdrom в propagator. Он сканирует всё, что есть в /dev, при этом жёстко отфильтровывает незнакомое оборудование. Куда важнее, что когда работает propagator или altboot, ядро и initrd уже загружены, мы работаем в защищённом режиме ОС и ядро экспортирует некий /dev/NODE. На этой же странице приведён git, и по исходнику видно, какие DEV-узлы не могут быть ventoy-носителем.

По сути, проблема, которая там описана, лежит в несколько иной плоскости. Загрузочные диски дистрибутивов заточены для работу не с ventoy, их загрузка чувствительна к тем параметрам, которые передаются загрузчиком в initrd. Их запуск в окружении мультизагрузки может поломать нормальный процесс загрузки и на приведённой странице говорится, как дистрибутив может найти точную информацию об источнике загрузки в случае ventoy. Теперь самое интересное: ни АЛЬТ с altboot, ни большинство других поддерживаемых дистрибутивов, не делают ничего специального. Они просто грузятся, как с обычного CD/DVD.
To moan or to solve -- that is the question!

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Re: Переход на p10
« Ответ #26 : 05.09.2021 23:12:00 »
Нет. Там написано несколько другое. Там написано, что либо ОС поддерживает ventoy, а для этого она должна уметь принимать информацию через определенные структуры данных, либо приходится использовать определенного рода костыли, разные для разных ОС. Как я и говорил, в обычной ситуации ОС ничего не будет знать про виртуальный диск в памяти, созданный загрузчиком, и не сможет с него загрузится. И меня такая ситуация не устраивает. Во первых операционные системы не обязаны поддерживать именно ventoy. С чего, как говорится, такие привилегии? А во вторых ОС не обязаны поддерживать загрузку с ISO (какой-нибудь "iso-scan/filename=/ubuntu.iso") или еще какие-то другие костыли, которые для этого нужны. Т.к. в стандартной ситуации это не нужно.

Отсюда и вывод. Как то не хочется связываться с методом, который может и сработает, а может и подведет. Собственно с образа файловой системы stage2 загрузится сможет любое ядро. Для этого нужно, чтобы путь не был захардкожен и его можно было указать. Где то это делается проще (Debian-подобные системы), где то сложнее (Red Hat-подобные системы). Но это работает всегда.

А вообще это извечная проблема Linux. Вместо того, чтобы придумывать все эти костыли, надо было просто установить единый стандарт на загрузку stage2 с виртуального диска, чтобы любой загрузчик точно знал, что любое ядро будет его поддерживать. И мучения бы закончились.
« Последнее редактирование: 05.09.2021 23:18:27 от Mr.Madguy »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Переход на p10
« Ответ #27 : 05.09.2021 23:58:04 »
Там написано, что либо ОС поддерживает ventoy, а для этого она должна уметь принимать информацию через определенные структуры данных, либо приходится использовать определенного рода костыли, разные для разных ОС.
Там это сказано в контексте того, что ОС может прочитать эту информацию, чтобы по ней ориентироваться и продолжить загрузку с нужного файла на разделе. Однако ещё раз замечу: никаких специальных хаков в altboot нет, система с ventoy грузится обычным методом cdrom. Полагаю, как и большинство других дистрибутивов. Именно по этой самой причине:
Во первых операционные системы не обязаны поддерживать именно ventoy. С чего, как говорится, такие привилегии?
To moan or to solve -- that is the question!

Оффлайн Mr.Madguy

  • Давно тут
  • **
  • Сообщений: 249
Re: Переход на p10
« Ответ #28 : 06.09.2021 13:32:06 »
Ладно. Пока отложим этот вопрос. 10я платформа явно еще не доработана. С 9й сборка не пошла, т.к. надо добавить репозитории. Решил не заморачиваться и просто скачать новый 10й стартер. Но там возникли проблемы. Ладно там шрифт мелковат (хотя это еще в последних 9ках началось) и цветовая тема в терминале слишком темная (серое на черном). Так ведь X-сы постоянно падают или что то в этом роде. Начинаю набивать что то в терминале - бах, вывалился на логин-скрин. И так по нескольку раз.
« Последнее редактирование: 06.09.2021 13:46:16 от Mr.Madguy »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Переход на p10
« Ответ #29 : 06.09.2021 13:41:28 »
И чтобы оно загрузило все остальное - оно само должно уметь это грузить из ISO. Потому то для этого, насколько я понимаю, и нужна какая то специальная поддержка со стороны ядра. Но она не гарантирована.
mount -o loop <iso> <mount point> давно в любом Linux работает.