<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>42965</bug_id>
          
          <creation_ts>2022-06-09 19:22:26 +0300</creation_ts>
          <short_desc>Передаёт инсталятору неверный $PREFIX</short_desc>
          <delta_ts>2022-10-19 10:16:37 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>make-initrd-bootchain-cifs</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>33000</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон Мидюков">antohami</reporter>
          <assigned_to name="Leonid Krivoshein">klark</assigned_to>
          <cc>antohami</cc>
    
    <cc>george</cc>
    
    <cc>klark</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>211624</commentid>
    <comment_count>0</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-06-09 19:22:26 +0300</bug_when>
    <thetext>Инсталятор при использовании метода cifs ожидает, что в /image будет смонтирован  ресурс samba.
Например, указываем в качестве directory /public/jeos.iso
Скрипт /usr/share/install2/initinstall.d/90-pkg.sh ищет /image/public/jeos.iso
А по факту в /image уже смонтирован каталог /image/public/jeos.iso
В результате не происходит копирование pkg-groups.tar с последующей его распаковкой. Шаг установки пакетов пропускается и имеем ошибку &quot;destination filesystem remount  error&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211625</commentid>
    <comment_count>1</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-06-09 19:27:52 +0300</bug_when>
    <thetext>Для метода nfs аналогичная проблема.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211626</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-06-09 19:40:58 +0300</bug_when>
    <thetext>А зато установка live работает. Надо то было livecd-install исправлять, чтобы с propagator работал, а его никто не исправлял.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211627</commentid>
    <comment_count>3</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-06-09 19:57:47 +0300</bug_when>
    <thetext>Проблема не в том, что образ в image монтируется так, а в том, что bootchain сообщает $PREFIX неправильный. В данном случае он должен был быть пустым, а не равен directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211748</commentid>
    <comment_count>4</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2022-06-14 18:10:33 +0300</bug_when>
    <thetext>make-initrd-bootchain-0.1.5-alt10 -&gt; sisyphus:

 Fri Jun 10 2022 Anton Midyukov &lt;antohami@altlinux&gt; 0.1.5-alt10
 - cifs, nfs: set PREFIX to &apos;/&apos; (Closes: 42965)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214154</commentid>
    <comment_count>5</comment_count>
    <who name="Fr. Br. George">george</who>
    <bug_when>2022-08-29 16:03:17 +0300</bug_when>
    <thetext>Сломалось монтирование оверлеев по NFS
Теперь какие бы параметры ни были в cmdline, поиск оверлеев выглядит так:
[2022-08-29 12:16:00] liveboot: [0] KEY: &apos;PREFIX&apos;
[2022-08-29 12:16:00] liveboot: [0] stage2_getenv(&apos;PREFIX&apos;) result: &apos;/&apos; 
[2022-08-29 12:16:00] liveboot: [0] LEAVE: stage2_getenv
[2022-08-29 12:16:00] liveboot: mounting NFS overlays from 10.29.48.21://overlays-live
[2022-08-29 12:16:00] liveboot: [0] RUN: mkdir -p -- /root.rw/rw/tmp/images
[2022-08-29 12:16:00] liveboot: [0] RUN: mount.nfs 10.29.48.21://overlays-live /root.rw/rw/tmp/images -o ro,intr,soft,nolock,timeo=30,retry=0
mount.nfs: mounting 10.29.48.21://overlays-live failed, reason given by server: No such file or directory
[2022-08-29 12:16:00] liveboot: NFS mount failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214172</commentid>
    <comment_count>6</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-08-30 01:40:27 +0300</bug_when>
    <thetext>Да, это регрессия в отношении исходно определённого поведения: PREFIX не только экспортируется в stage2 для установщика, но и повторно используется модулями одного из последних шагов liveboot, в данном случае смотрим код:

bootchain-nfs/data/lib/altboot/livecd-slice.d/700-nfs

Если бы PREFIX был пустым, его бы перебивал суб-параметр directory, но он равен &quot;/&quot;, и для этого значения ищется каталог верхнего уровня, к которому добавляется &quot;/overlays-live&quot;. Но если сейчас не исправлять ошибку, оставить как есть, данное значение можно перебить суб-параметром overlays. В строке 33 сейчас такой код:

[ -n &quot;$overlays&quot; ] ||
        overlays=&quot;${parentdir:-$OEM_NFS_NETINST}/overlays-live&quot;
message &quot;mounting NFS overlays from $server:$overlays&quot;

Т.е.,  Fr. Br. George может пока &quot;обойти&quot; проблему, добавив в /proc/cmdline:

automatic=...,overlays:/путь/к/родителю-overlays-live

А я посмотрю, как это лучше исправить в коде, поскольку откатить коммит Антона не сложно, а вот проверить по новой все варианты загрузки на стенде -- дело не быстрое.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214175</commentid>
    <comment_count>7</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-08-30 02:53:40 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #0)
&gt; Инсталятор при использовании метода cifs ожидает, что в /image будет
&gt; смонтирован  ресурс samba.
Пропагатор монтирует внахлёст ISO и сквош то в /root, то в /image. При перекрытии первоначально смонтированного по CIFS или NFS в stage2 выставляется флаг PIGGYBACK=1. Метод CIFS добавлял sin@, используя аналогию с NFS, хотя у SAMBA проглядывается выделение первой части пути как названия ресурса (всегда), остальная часть -- относительный путь. Полагаю, в инсталлятор метод CIFS также добавлялся не изначально.

(Ответ для Антон Мидюков на комментарий #3)
&gt; Проблема не в том, что образ в image монтируется так, а в том, что bootchain
&gt; сообщает $PREFIX неправильный. В данном случае он должен был быть пустым, а
&gt; не равен directory.
Чтобы не сломать ожидаемое поведение, $PREFIX д.б. таким же, как он выставляется пропагатором. В нём PREFIX=&quot;/&quot; для методов nfs/cifs/cdrom и равен суб-параметру directory для методов disk/ftp/http, при этом, для методов nfs и cifs дополнительно зачем-то экспортируется ещё и $DIRECTORY. Я решил их &quot;выровнять&quot;, поскольку в коде установщика нигде не видел использования DIRECTORY, передавать везде путь через PREFIX для всех методов. Возможно, &quot;так себе&quot; идея, но пересматривать тогда придётся весь код altboot, чтобы это поменять.

Правильно ли я тебя понял, что сейчас достаточно просто откатить последний коммит, что никакие куски инсталлятора уже не закладываются на PREFIX=&quot;/&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214176</commentid>
    <comment_count>8</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-08-30 03:09:30 +0300</bug_when>
    <thetext>(Ответ для Leonid Krivoshein на комментарий #6)
&gt; Т.е.,  Fr. Br. George может пока &quot;обойти&quot; проблему, добавив в /proc/cmdline:
&gt; automatic=...,overlays:/путь/к/родителю-overlays-live
Да, именно такое же поведение было и в случае с пропагатором:
https://git.altlinux.org/gears/m/make-initrd-propagator.git?p=make-initrd-propagator.git;a=blob;f=propagator/data/sbin/init-bottom#l55</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214177</commentid>
    <comment_count>9</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-08-30 04:45:42 +0300</bug_when>
    <thetext>(Ответ для Leonid Krivoshein на комментарий #7)
&gt; Правильно ли я тебя понял, что сейчас достаточно просто откатить последний
&gt; коммит, что никакие куски инсталлятора уже не закладываются на PREFIX=&quot;/&quot;?

Код в install2-shfunctions такой (вырезал только то, что про $PREFIX):
PREFIX=&quot;${PREFIX:-}&quot;

[ &quot;$PREFIX&quot; != &quot;/&quot; ] || PREFIX=
readonly PREFIX

case &quot;$METHOD&quot; in
    ftp|http)
	image_url=&quot;$METHOD://$AUTH_DATA$HOST/$PREFIX&quot;
	;;
	cdrom|disk|nfs|cifs)
	image_url=&quot;$image_dir/$PREFIX&quot;
	# If booted from iso file, the $image_dir/$PREFIX directory will be missing
	[ -d &quot;$image_url&quot; ] || image_url=&quot;$image_dir&quot;
	;;
    *)
	fatal &quot;Unsupported method:$METHOD&quot;
    esac

Я недавно добавил тут строчки:
	# If booted from iso file, the $image_dir/$PREFIX directory will be missing
	[ -d &quot;$image_url&quot; ] || image_url=&quot;$image_dir&quot;

Чтобы в случае смонтированного образа $PREFIX не влиял. А больше $PREFIX нигде не используется. Если кто-то на него будет надеяться, то у него будет проблема в случае смонтированного образа. Но с method=disk у propagator проблема аналогичная с bootchain. поэтому сделал такое исправление в инсталляторе.

Так что предлагаю окатить и нигде в инсталляторе на $PREFIX не закладываться.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214246</commentid>
    <comment_count>10</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-08-31 01:48:49 +0300</bug_when>
    <thetext>Отправил 0.1.5-alt11, это должно исправить проблему с оверлеями.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216132</commentid>
    <comment_count>11</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-10-19 10:16:37 +0300</bug_when>
    <thetext>(Ответ для Leonid Krivoshein на комментарий #10)
&gt; Отправил 0.1.5-alt11, это должно исправить проблему с оверлеями.

Закрываю.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>