Bug 55305

Summary: Не работает установка по HTTP с нераспакованного образа
Product: Sisyphus Reporter: Kostevich Arseniy <kostevichae>
Component: make-initrd-bootchainAssignee: Leonid Krivoshein <klark>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, klark
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Kostevich Arseniy 2025-07-22 14:48:37 MSK
Версии пакетов:
installer-1.16.23-alt1
make-initrd-bootchain-0.1.5-alt30

Проверялось с образами, собранными в профилях:
Sisyphus:
* kworkstation-install.iso

P11+task 388514:
* alt-server.iso
* alt-education.iso
* alt-workstation.iso
* kworkstation-install.iso

Шаги для воспроизведения:
Настроить сервер http
1)Установить пакет веб-сервера Apache:
# apt-get install -y apache2

2)В файле /etc/httpd2/conf/sites-enabled/000-default.conf заменить содержимое:

# cat > /etc/httpd2/conf/sites-enabled/000-default.conf << '_EOF_'
    <VirtualHost *>
        ServerAdmin webmasterr@localhost
        DocumentRoot "/srv/public/netinst/mnt/"
        <Directory />
                Include conf/include/Directory_root_default.conf
        </Directory>
        ErrorLog /var/log/httpd2/error_log
        LogLevel warn
        <IfModule alias_module>
                Alias /share/ "/mnt/sharefolder/"
        </IfModule>
    </VirtualHost>
    _EOF_

3)В файле /etc/httpd2/conf/include/Directory_root_default.conf заменить строку:
# sed -i "s|Require all denied|Require all granted|g" /etc/httpd2/conf/include/Directory_root_default.conf

4)Перезапустить сервис Apache:
# systemctl restart httpd2
# systemctl enable httpd2

5)Создать папку для хранилища ISO-образов и поместить туда образ:
# mkdir -p /mnt/sharefolder

На клиенте:
1) Загрузиться с проверяемого образа 
2) В параметрах загрузки убрать ramdisk_size(согласно https://bugzilla.altlinux.org/show_bug.cgi?id=50888#c16)
3) Указать параметры загрузки ip=dhcp automatic=method:http,server:<IP адрес сервера>,directory:/share/<isoname>.iso,type:iso

Ожидаемый результат:
Загружается установщик

Фактический результат:
Образ загружается в RAM, но после этого бесконечно выводятся сообщения вида "initramfs: Waiting for root (bootchain)".

Дополнительная информация:
1. Ошибка не воспроизводится с образом, собранным с профилем alt-server.iso(p11+task 388514), в остальных случаях воспроизводится.
2. uefi/legacy не влияет на воспроизведение
3. Проверялось также с релизным kworkstation-install-11.0.iso - ошибка не воспроизводится
4. Полная команда загрузки:
linux /boot/vmlinuz$KFLAVOUR fastboot live $CONSOLE $SAFEMODE root=bootchain bootchain=fg,altboot ip=dhcp automatic=method:http,server:<server-ip>,directory:/share/<isoname>.iso,type:iso stagename=live systemd.unit=install2.target lowmem lang=$lang
Comment 1 Антон Мидюков 2025-07-22 14:59:33 MSK
Сколько оперативной памяти?
Comment 2 Kostevich Arseniy 2025-07-22 15:00:07 MSK
(Ответ для Антон Мидюков на комментарий #1)
> Сколько оперативной памяти?
16GB, для релизного kwork-11.0 хватило
Comment 3 Антон Мидюков 2025-07-22 15:09:57 MSK
(Ответ для Kostevich Arseniy на комментарий #2)
> (Ответ для Антон Мидюков на комментарий #1)
> > Сколько оперативной памяти?
> 16GB, для релизного kwork-11.0 хватило

Для kwork-11.1, похоже, уже недостаточно. Для alt-education 11.0 точно недостаточно. Для alt-workstation 11.1 точно достаточно.
Comment 4 Антон Мидюков 2025-07-22 15:13:56 MSK
Проверяйте на alt-workstation-11.1-rc1.
Добавьте параметр загрузки bc_debug. Когда зависнет, попробуйте перейти на tty3. Что там будет?
Comment 5 Kostevich Arseniy 2025-07-22 15:32:30 MSK
(Ответ для Антон Мидюков на комментарий #3)
> (Ответ для Kostevich Arseniy на комментарий #2)
> > (Ответ для Антон Мидюков на комментарий #1)
> > > Сколько оперативной памяти?
> > 16GB, для релизного kwork-11.0 хватило
> 
> Для kwork-11.1, похоже, уже недостаточно. Для alt-education 11.0 точно
> недостаточно. Для alt-workstation 11.1 точно достаточно.

Увеличил до 32гб, установщик загрузился и установка выполняется корректно, действительно не хватало памяти.
С workstation на 16гб не удалось повторно воспроизвести.
Comment 6 Leonid Krivoshein 2025-07-22 17:42:37 MSK
Обратитие внимание, что для работы с очень большими нераспакованными ISO-образами был введён ещё один параметр -- reserve:

https://github.com/klark973/make-initrd-bootchain/commit/1549115148bcb4a0d492c24ad6bd4299a008a2c9

В документации он также описан. По аналогии можно поменять и дефолтный размер TMPFS на стадии создания ISO-образа:

https://github.com/klark973/make-initrd-bootchain/commit/4a4af50c9a466b405e96308a89311165c85ef7a8

Всё перечисленное имеет смысл учитывать при создании образов, когда их размер превышает ожидаемые 50% свободной ОЗУ целевой машины. Тогда и подобных "холостых" багов будет меньше.