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

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

    <bug>
          <bug_id>32476</bug_id>
          
          <creation_ts>2016-09-06 16:07:35 +0300</creation_ts>
          <short_desc>вернуть возможность запуска livecd без rw slice на флэшке</short_desc>
          <delta_ts>2016-10-24 22:34:59 +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-propagator</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>http://git.altlinux.org/gears/m/make-initrd-propagator.git?p=make-initrd-propagator.git;a=commit;h=eb592241a93852d2658bcf58c98e35c2cdc8744a</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>regression</keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28289</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Shigorin">mike</reporter>
          <assigned_to name="Michael Shigorin">mike</assigned_to>
          <cc>aen</cc>
    
    <cc>boyarsh</cc>
    
    <cc>ildar</cc>
    
    <cc>sem</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158463</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-09-06 16:07:35 +0300</bug_when>
    <thetext>Пользователи уже не впервые жалуются на низкую скорость работы LiveCD с флэшки -- похоже, на недорогих флэшках, сильно тормозящих на запись, режим live_rw по умолчанию попросту не годится (а сейчас де-факто так и есть, поскольку вследствие моего слишком сильного исправления bug 28289 для тех же стартеркитов пункты загрузки &quot;LiveCD&quot; и &quot;LiveCD с поддержкой сеансов&quot; практически одинаковы).

Предложение: учеть сказанное в коммите eb592241a93852d2658bcf58c98e35c2cdc8744a и выровнять условия *монтирования* rw-раздела с условиями его создания, либо хотя бы сделать монтирование условным по &quot;live_rw&quot; в командной строке ядра.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158470</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-09-06 21:31:17 +0300</bug_when>
    <thetext>Изменил поведение make-initrd-propagator в 0.30: без live_rw в параметрах
не монтирует и уже существующий rw slice.

На UEFI думаю сделать умолчанием всё-таки вариант &quot;live_rw без lowmem&quot;, т.е. грузить squashfs в RAM для чтения, а писать на флэшку (если это флэшка).
Резон -- машины с UEFI, как правило, имеют от 2 Гб памяти и флэшки с ними
применяются обычно тоже не самые древние/медленные (хотя...).

Сейчас это выглядит так:

-       if get_cmdline automatic label || get_cmdline live_rw; then
-               create_disk_slice
+       if [ -d /sys/firmware/efi ] || get_cmdline automatic label; then
+               get_cmdline live_rw &amp;&amp; create_disk_slice
        fi

См. тж.:
https://bugzilla.altlinux.org/show_bug.cgi?id=28289#c14
https://bugzilla.altlinux.org/show_bug.cgi?id=28289#c32
https://bugzilla.altlinux.org/show_bug.cgi?id=28289#c34

PS: ещё может иметь смысл сделать проверку на разумный объём места: напоролся на ситуацию, когда образ впритирку влез на четырёхгиговую флэшку, /.rw получился размером мегабайт двести и без дополнительных действий даже apt-get update было не выполнить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158471</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-09-06 21:41:45 +0300</bug_when>
    <thetext>make-initrd-propagator-0.30-alt1 -&gt; sisyphus:

* Tue Sep 06 2016 Michael Shigorin &lt;mike@altlinux&gt; 0.30-alt1
- only mount rw slice when live_rw is specified explicitly
  due to severe I/O penalty coming with it (closes: #32476)
- slightly better package description</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159329</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-10-20 18:46:52 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; - only mount rw slice when live_rw is specified explicitly
&gt;   due to severe I/O penalty coming with it (closes: #32476)
Это неправда, т.к. условие get_cmdline live_rw накладывалось только на вызов create_disk_slice(), но не на объемлющий его вызов disk_slice().

Обсудили с george@, он подсказал мнемонику для refind -- &quot;RO&quot; показывать как CD (что сейчас и делается), live_rw -- как флэшку.  Это потребуется реализовать в том куске mkimage, который давно надо бы оттуда вынести в профили, и в refind (для начала починив сборку, это обновление efi toolchain со всеми вытекающими).

Пока думаю выровнять условия _создания_ и _монтирования_ disk slice,
перенеся дополнительное условие из &quot;внутри disk_slice()&quot; в место вызова этой функции (при этом остаётся возможность монтирования раздела с меткой &quot;alt-live-storage&quot; с локального диска или другой флэшки, чем пользовался ildar@):

 disk_slice(){
        local dev=/dev/disk/by-label/alt-live-storage
        case &quot;$(get_cmdline -p automatic method)&quot; in
        disk|cdrom)
                if [ -d /sys/firmware/efi ] || get_cmdline automatic label; then
-                       get_cmdline live_rw &amp;&amp; create_disk_slice
+                       create_disk_slice
                fi
                ;;
        esac
[...]
     if equal_cmdline live stagename || equal_cmdline rescue stagename; then
-           disk_slice
+           get_cmdline live_rw &amp;&amp; disk_slice
     fi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159441</commentid>
    <comment_count>4</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-10-24 22:34:59 +0300</bug_when>
    <thetext>make-initrd-propagator-0.31-alt1 -&gt; sisyphus:

* Mon Oct 17 2016 Michael Shigorin &lt;mike@altlinux&gt; 0.31-alt1
- improve RW slice operation (closes: #32476, #32562):
  only create/use it when there&apos;s enough space (1Gb or more), and
  it&apos;s been either
  + explicitly asked for (BIOS mode), or
  + fast enough (UEFI mode; otherwise the filesystem
    will be marked &quot;alt-slow-storage&quot;)
- add mkfs/mount options for faster operation
- extend debug support</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>