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

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

    <bug>
          <bug_id>28255</bug_id>
          
          <creation_ts>2012-12-21 18:02:22 +0400</creation_ts>
          <short_desc>открытие LUKS-контейнеров с некорневыми ФС</short_desc>
          <delta_ts>2014-01-08 15:25:41 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>cross-component</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>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28268</dependson>
          <blocked>27685</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Shigorin">mike</reporter>
          <assigned_to name="Anton V. Boyarshinov">boyarsh</assigned_to>
          <cc>aebirukov</cc>
    
    <cc>aen</cc>
    
    <cc>boyarsh</cc>
    
    <cc>cas</cc>
    
    <cc>evg</cc>
    
    <cc>legion</cc>
          
          <qa_contact name="Dmitry V. Levin">ldv</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136247</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-21 18:02:22 +0400</bug_when>
    <thetext>Если установить систему с /home на LUKS и обычным /, то при загрузке initrd, собранный make-initrd-0.7.9-alt1, не будет запрашивать пароль и открывать такой контейнер; поскольку installer &gt;= 1.7.10-alt1 не создаёт /etc/crypttab, то далее этим контейнером заниматься также никто не будет, а при попытке монтирования ФС получим ошибку (UUID файловой системы в закрытом контейнере не видел, вывод dmsetup info пуст).

Перед тем, как вешать предметные баги на make-initrd и cryptsetup, предлагаю договориться о том, как у нас будет выполняться открытие криптоконтейнеров для файловых систем, кроме корневой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136248</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-21 18:10:22 +0400</bug_when>
    <thetext>PS: с сизифными cryptsetup-1.4.2-alt2 и make-initrd-0.7.9-alt1 при ситуациях, когда в initrd уже открыли контейнер с ФС для /home, дополнительные три попытки спросить пароль и безуспешно задействовать уже занятое устройство при загрузке немного раздражают (cryptdisks.functions стоит научить проверять, не открыт ли уже контейнер).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136342</commentid>
    <comment_count>2</comment_count>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-24 16:04:49 +0400</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; (cryptdisks.functions стоит научить проверять, не открыт ли
&gt; уже контейнер).

Он умеет, но проверяет по отображаемому названию устройства</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136343</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-24 16:11:08 +0400</bug_when>
    <thetext>Подстраховать по другим именам (или realpath) в принципе возможно или нет?
Когда рассматривал всё это -- мысли были в эту сторону, но не доковырял...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136344</commentid>
    <comment_count>4</comment_count>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-24 16:14:24 +0400</bug_when>
    <thetext>Предлагаю забыть про crypttab и одать всё в руки make-initrd-luks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136346</commentid>
    <comment_count>5</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2012-12-24 18:08:39 +0400</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; Предлагаю забыть про crypttab и одать всё в руки make-initrd-luks

Насколько я понял, проблема в том, что если / не на luks, make-initrd-luks себя никак не проявляет и это логично..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136347</commentid>
    <comment_count>6</comment_count>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-24 18:16:58 +0400</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Насколько я понял, проблема в том, что если / не на luks, make-initrd-luks себя
&gt; никак не проявляет и это логично..

Да, но если зашифрован / и /home , то make-initrd-luks проявляет свою активность на / и на /home</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136348</commentid>
    <comment_count>7</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2012-12-24 18:27:55 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; Да, но если зашифрован / и /home , то make-initrd-luks проявляет свою
&gt; активность на / и на /home

И оба случая должны работать..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136352</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-24 19:48:27 +0400</bug_when>
    <thetext>(In reply to comment #4)
&gt; Предлагаю забыть про crypttab и одать всё в руки make-initrd-luks
Может вылезти боком при dist-upgrade, да и разъезжаться с документацией апстрима тоже плохо.

(In reply to comment #7)
&gt; &gt; Да, но если зашифрован / и /home , то make-initrd-luks проявляет свою
&gt; &gt; активность на / и на /home
&gt; И оба случая должны работать..
(ещё подумав) А далее у нас вылезет plymouth.

Предлагаю набросок плана действий при загрузке:
- initrd:
  + если включен plymouth, спрашиваем пароль через него и пытаемся применить
    ко всем найденным LUKS-контейнерам (сделанные инсталером должны открыться);
  + иначе спрашиваем/передаём сами (или оставляем это бинарнику cryptsetup);
- cryptsetup:
  + если включен plymouth -- идём аналогично через его спрашивалку;
  + иначе получаем realpath найденных устройств с LUKS-контейнерами и вычитаем
    из полученного списка те, для которых в `dmsetup info` есть LUKS-записи.

При этом должен закрыться и случай, когда у нас что-то из слоёв mdraid/lvm живёт на LUKS-контейнере и имеет поверх себя ещё один LUKS-контейнер.

Также повесил bug #28268 и, набравшись нахальства, приглашаю vsu@ и kas@.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136432</commentid>
    <comment_count>9</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2012-12-27 13:01:18 +0400</bug_when>
    <thetext>Тимур, Антон, что с этой багой? Очень хотелось бы закончить интеграцией с LUKS в установщик.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136435</commentid>
    <comment_count>10</comment_count>
      <attachid>5688</attachid>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-27 14:26:44 +0400</bug_when>
    <thetext>Created attachment 5688
Всегда добавлять модуль luks в образ initrd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136436</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2012-12-27 14:42:29 +0400</bug_when>
    <thetext>Это не патч, а хак. Такой патч я не приму. Если хотите хакать и всегда добавлять luks, то делайте:

echo &quot;FEATURES += luks&quot; &gt;&gt; /etc/initrd.mk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136437</commentid>
    <comment_count>12</comment_count>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-27 15:01:59 +0400</bug_when>
    <thetext>(В ответ на комментарий №11)
&gt; Если хотите хакать и всегда
&gt; добавлять luks, то делайте:
&gt; 
&gt; echo &quot;FEATURES += luks&quot; &gt;&gt; /etc/initrd.mk

О, спасибо</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136438</commentid>
    <comment_count>13</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2012-12-27 15:08:01 +0400</bug_when>
    <thetext>Перевешиваю на timonbl4 и переоткрываю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136439</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-27 15:13:47 +0400</bug_when>
    <thetext>(In reply to comment #11)
&gt; echo &quot;FEATURES += luks&quot; &gt;&gt; /etc/initrd.mk
Если уж так делать, то лучше условно (но перед генерацией initrd).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136440</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2012-12-27 15:18:31 +0400</bug_when>
    <thetext>Я так и не понял какую проблему вы пытаетесь решить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136441</commentid>
    <comment_count>16</comment_count>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-27 15:34:36 +0400</bug_when>
    <thetext>Отправил в сизиф installer 1.8.12-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136443</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-27 15:46:36 +0400</bug_when>
    <thetext>(In reply to comment #15)
&gt; Я так и не понял какую проблему вы пытаетесь решить.
http://www.altlinux.org/План_выпуска_бранча_p7 =&gt; &quot;Поддержка установки на криптованные фс&quot;

(In reply to comment #16)
&gt; Отправил в сизиф installer 1.8.12-alt1
Переделаю в условную форму, к preinstall у нас уже есть сведения -- делали LUKS или нет.  Переоткрываю и забираю багу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136444</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2012-12-27 16:08:05 +0400</bug_when>
    <thetext>(В ответ на комментарий №17)
&gt; (In reply to comment #15)
&gt; &gt; Я так и не понял какую проблему вы пытаетесь решить.
&gt; http://www.altlinux.org/План_выпуска_бранча_p7 =&gt; &quot;Поддержка установки на
&gt; криптованные фс&quot;

Что это ещё за &quot;предвыборные обещания президента&quot;?! Это, простите, из серии &quot;Петька, приборы? 20!&quot;. Это не постановка задачи, а расплывчатая фраза, из которой можно вынести ещё меньше, чем из сумбурного обсуждения в нескольких багах в этой багзилле.

Из этого я понял, что 18 марта 2012 на wiki один человек что-то написал, а вы в связи с этим что-то сделали. Чудно! Видимо приёмка по этому пункту будет в том же стиле: кто-то что-то проверил и установил, что что-то сделано :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136445</commentid>
    <comment_count>19</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2012-12-27 16:24:17 +0400</bug_when>
    <thetext>(В ответ на комментарий №18)
&gt; (В ответ на комментарий №17)
&gt; &gt; (In reply to comment #15)
&gt; &gt; &gt; Я так и не понял какую проблему вы пытаетесь решить.
&gt; &gt; http://www.altlinux.org/План_выпуска_бранча_p7 =&gt; &quot;Поддержка установки на
&gt; &gt; криптованные фс&quot;
&gt; 
&gt; Что это ещё за &quot;предвыборные обещания президента&quot;?! Это, простите, из серии
&gt; &quot;Петька, приборы? 20!&quot;. Это не постановка задачи, а расплывчатая фраза, из
&gt; которой можно вынести ещё меньше, чем из сумбурного обсуждения в нескольких
&gt; багах в этой багзилле.
&gt; 
&gt; Из этого я понял, что 18 марта 2012 на wiki один человек что-то написал, а вы в
&gt; связи с этим что-то сделали. Чудно! Видимо приёмка по этому пункту будет в том
&gt; же стиле: кто-то что-то проверил и установил, что что-то сделано :)

Приемка за qa@. Здесь это cas@</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136446</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-27 16:29:49 +0400</bug_when>
    <thetext>Лёш, если ты не заметил -- то comment #0 как раз и был попыткой прояснить задачу.

Понятно, что есть что улучшать, но давай роль плешееда традиционно оставим мне. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136449</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2012-12-27 16:40:59 +0400</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; Приемка за qa@. Здесь это cas@

Здорово. Вот ещё один несчастный кроме исполнителя. А что он будет принимать ведь вы, Алексей, с марта прошлого года так и не смогли пояснить в wiki, что имели в виду под фразой &quot;Поддержка установки на криптованные фс&quot; ? Что исполнитель должен был реализовать ?

(В ответ на комментарий №20)
&gt; Лёш, если ты не заметил -- то comment #0 как раз и был попыткой прояснить
&gt; задачу.
 
Миш, ты прости, но это не прояснение задачи, а лирическое повествование (родился и жил он жил пока умер) какого-то процесса с интригой и болью. Это даже не описание для баги. Проблема не поставлена, ожидаемое не описано ... как воспроизвести тоже.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136451</commentid>
    <comment_count>22</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2012-12-27 16:44:13 +0400</bug_when>
    <thetext>(В ответ на комментарий №21)
&gt; (В ответ на комментарий №19)
&gt; &gt; Приемка за qa@. Здесь это cas@
&gt; 
&gt; Здорово. Вот ещё один несчастный кроме исполнителя. А что он будет принимать
&gt; ведь вы, Алексей, с марта прошлого года так и не смогли пояснить в wiki, что
&gt; имели в виду под фразой &quot;Поддержка установки на криптованные фс&quot; ? Что
&gt; исполнитель должен был реализовать ?

Алексей, Вы же не спрашивали. Тот же, кто спрашивал, получил ответ. И фича эта скоро, надеюсь, пройдет qa и будет описана в документации.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136453</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-27 16:49:44 +0400</bug_when>
    <thetext>(In reply to comment #21)
&gt; Проблема не поставлена, ожидаемое не описано ... как воспроизвести тоже.
Вот и занимаюсь выяснением и фиксированием.  Мало того, в определённой мере это мне развязывает руки (см. bug #28200) -- если по ходу выяснения осмысленных use case оказывается, что что-то можно сделать иначе, чем было сделано или вроде бы как предполагалось -- можно постараться сделать по уму и не наталкиваться на устаревшее, но зато точно выписанное, формальное требование.

(In reply to comment #22)
&gt; И фича эта скоро, надеюсь, пройдет qa и будет описана в документации.
При этом у Андрея тоже возникнет масса вопросов и предложений, поди. :)

Может быть, к 7.0.x или 8 их получится даже сделать...

Спасибо всем за конструктивную часть обсуждения и предлагаю всё-таки дать мне на праздниках время спокойно над этим подумать.  Начиная с этого самого plymouth, который тут слишком сильно влияет, и заканчивая поиском живых пользователей.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136454</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2012-12-27 17:00:32 +0400</bug_when>
    <thetext>(В ответ на комментарий №22)
&gt; Алексей, Вы же не спрашивали. Тот же, кто спрашивал, получил ответ. И фича эта
&gt; скоро, надеюсь, пройдет qa и будет описана в документации.

Я не спрашивал, но невольно стал жертвой вашего внутреннего междусобойчика т.к. в итоге &quot;проблема&quot; была перевешана на мой проект без должного описания. Такой приватный выхлоп лишь тратит моё время.

Перевешиваю обратно на абстрактный компонент т.к. кулуарная проблема до меня не доведена и значит для меня её нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136455</commentid>
    <comment_count>25</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2012-12-27 17:02:08 +0400</bug_when>
    <thetext>(В ответ на комментарий №24)
&gt; (В ответ на комментарий №22)
&gt; &gt; Алексей, Вы же не спрашивали. Тот же, кто спрашивал, получил ответ. И фича эта
&gt; &gt; скоро, надеюсь, пройдет qa и будет описана в документации.
&gt; 
&gt; Я не спрашивал, но невольно стал жертвой вашего внутреннего междусобойчика т.к.
&gt; в итоге &quot;проблема&quot; была перевешана на мой проект без должного описания. Такой
&gt; приватный выхлоп лишь тратит моё время.
&gt; 
&gt; Перевешиваю обратно на абстрактный компонент т.к. кулуарная проблема до меня не
&gt; доведена и значит для меня её нет.

Согласен, Вы абсолютно правы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136466</commentid>
    <comment_count>26</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-12-27 17:34:44 +0400</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; Приемка за qa@. Здесь это cas@
Проверил. Не работает после установки (не монтируется, так как UUID в /etc/fstab отличен от реального).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136470</commentid>
    <comment_count>27</comment_count>
    <who name="timonbl4@altlinux.org">timonbl4</who>
    <bug_when>2012-12-27 18:10:39 +0400</bug_when>
    <thetext>(В ответ на комментарий №26)
&gt; Проверил. Не работает после установки (не монтируется, так как UUID в
&gt; /etc/fstab отличен от реального).

Нужны подробности. В установленной системе строчка &quot;FEATURES += luks&quot; в файле /etc/initrd.mk присутствует? make-initrd-luks установлен?

У меня с версией installer 1.8.12-alt1 работает</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136471</commentid>
    <comment_count>28</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-12-27 18:34:03 +0400</bug_when>
    <thetext>(В ответ на комментарий №27)
&gt; (В ответ на комментарий №26)
&gt; &gt; Проверил. Не работает после установки (не монтируется, так как UUID в
&gt; &gt; /etc/fstab отличен от реального).
&gt; 
&gt; Нужны подробности. В установленной системе строчка &quot;FEATURES += luks&quot; в файле
&gt; /etc/initrd.mk присутствует? 
Отсутствует.

&gt; make-initrd-luks установлен?
0.7.9-alt1

Если добавить в initrd.mk поддержку LUKS, при загрузке в консоли начинает бесконечно запрашивать пароль. Графически ничего не показывает. Система ужасно тормозит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136473</commentid>
    <comment_count>29</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-27 18:48:32 +0400</bug_when>
    <thetext>(In reply to comment #28)
&gt; &gt; Нужны подробности. В установленной системе строчка &quot;FEATURES += luks&quot; в файле
&gt; &gt; /etc/initrd.mk присутствует? 
&gt; Отсутствует.
А что за образ был взят для проверки?

&gt; Если добавить в initrd.mk поддержку LUKS, при загрузке в консоли начинает
&gt; бесконечно запрашивать пароль. Графически ничего не показывает.
Это известный, но ещё AFAIR не повешенный даже FR -- прикрутить к plymouth (причём мест сразу два -- initrd и стартап).  Отчасти обсуждали с boyarsh@.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136495</commentid>
    <comment_count>30</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-12-28 13:04:59 +0400</bug_when>
    <thetext>(В ответ на комментарий №29)
&gt; (In reply to comment #28)
&gt; &gt; &gt; Нужны подробности. В установленной системе строчка &quot;FEATURES += luks&quot; в файле
&gt; &gt; &gt; /etc/initrd.mk присутствует? 
&gt; &gt; Отсутствует.
&gt; А что за образ был взят для проверки?
Вчерашняя ночная сборка.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136501</commentid>
    <comment_count>31</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-12-28 16:01:32 +0400</bug_when>
    <thetext>Сегодняшняя сборка показала, что пароль на зашифрованные разделы можно ввести в консоли, если убрать параметр vga=0x314 из параметров GRUB.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136502</commentid>
    <comment_count>32</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2012-12-28 16:03:35 +0400</bug_when>
    <thetext>
&gt; Предлагаю набросок плана действий при загрузке:
&gt; - initrd:
&gt;   + если включен plymouth, спрашиваем пароль через него и пытаемся применить
&gt;     ко всем найденным LUKS-контейнерам (сделанные инсталером должны открыться);
&gt;   + иначе спрашиваем/передаём сами (или оставляем это бинарнику cryptsetup);
Вопрос оказался неожиданно актуальным, так как:
 1) при работающем plymouth спрашивалка из cryptsetup оказывается под ним (это, конечно, добавляет безопасности :D )
 2) при vga=0xЧТО-НИБУДЬ (там, где нет kms) спрашивалка из cryptsetup нормально вообще не работает независимо от наличия plymouth (что уже через чур безопасно :DD )

Надо делать спрашивание через plymouth в initrd...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136503</commentid>
    <comment_count>33</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-12-28 17:52:18 +0400</bug_when>
    <thetext>(In reply to comment #32)
&gt; Надо делать спрашивание через plymouth в initrd...
О чём comment #8 и был.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137157</commentid>
    <comment_count>34</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2013-01-23 13:32:28 +0400</bug_when>
    <thetext>В общем, всё равно грабли.
Казалось, бы, в первом приближении, мы решили проблему с luks на некорневых разделах, добавляя FEATURES=luks, но на самом деле мы создали себе новые проблемы.

make-initrd-luks пытается раскрыть всё, что является luks контейнерами. При том, что на дисках могут быть luks контейнеры от других систем, luks контейнеры, которые должны монтироваться при входе пользователя через pam_mount и тп.

Из этого следует, что make-initrd-luks надо модифицировать таким образом, чтоб он работал только с контейнерами, перечисленными в /etc/fstab или вообще только с корневым разделом, а остальные отдать на более позднюю стадию, обеспечив согласованность работы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137158</commentid>
    <comment_count>35</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2013-01-23 13:39:37 +0400</bug_when>
    <thetext>(В ответ на комментарий №34)
&gt; Из этого следует, что make-initrd-luks надо модифицировать таким образом, чтоб
&gt; он работал только с контейнерами, перечисленными в /etc/fstab или вообще только
&gt; с корневым разделом, а остальные отдать на более позднюю стадию, обеспечив
&gt; согласованность работы.

Так делать нельзя by-design. Есть идея как это исправить в принципе, но это требует сильной модификации механизма угадава.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137160</commentid>
    <comment_count>36</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2013-01-23 13:46:45 +0400</bug_when>
    <thetext>(В ответ на комментарий №34)
&gt; 
&gt; make-initrd-luks пытается раскрыть всё, что является luks контейнерами. При
&gt; том, что на дисках могут быть luks контейнеры от других систем, luks
&gt; контейнеры, которые должны монтироваться при входе пользователя через pam_mount
&gt; и тп.
&gt; 
Учитывая сказанное legion@:
если раскрытие &quot;luks контейнеров от других систем, luks
&gt; контейнеры, которые должны монтироваться при входе пользователя через pam_mount
&gt; и тп.&quot; не удастся, то достаточно вывести сообщение об этом, не прерывая работу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137161</commentid>
    <comment_count>37</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2013-01-23 13:53:41 +0400</bug_when>
    <thetext>(В ответ на комментарий №35)
&gt; (В ответ на комментарий №34)
(В ответ на комментарий №35)

&gt; Так делать нельзя by-design. 
Не мог бы ты пояснить (не обязательно сию минуту, разумеется), чем именно это черевато или почему нельзя сделать.

&gt; Есть идея как это исправить в принципе, но это
&gt; требует сильной модификации механизма угадава.
Угадава в make-initrd вообще, а не в make-initrd-luks, я правильно понимаю?

Надо что-то придумать, так как иначе поддержка luks получается.. своеобразная..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137162</commentid>
    <comment_count>38</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2013-01-23 14:32:06 +0400</bug_when>
    <thetext>(В ответ на комментарий №37)
&gt; &gt; Так делать нельзя by-design. 
&gt; Не мог бы ты пояснить (не обязательно сию минуту, разумеется), чем именно это
&gt; черевато или почему нельзя сделать.

Когда при загрузке передаётся параметр root=UUID, то initrd не имеет никакого понятия кто будет представлять этот UUID. Он может появиться на любом уровне &quot;матрёшки&quot; разных систем (Например raid-&gt;lvm-&gt;luks-&gt;filesystem). У initrd в распоряжении есть лишь правила udev и предположительно все необходимые утилиты для сборки всей этой матрёшки до искомого UUID. Поэтому make-initrd пытается &quot;развернуть&quot; их всех если он это умеет... это относится к любым сложным системам будь то luks, lvm или raid. Initrd будет пытаться заглянуть везде. Этот подход работал лучше чем в mkinitrd, где последовательность прохакивалась и был применим к системам с &quot;ничем лишним&quot;.

В качестве исправления у меня была идея пробовать запоминать промежуточные уникальные параметры в &quot;матрёшке&quot; и заглядывать лишь в те объекты, которые были на пути к UUID. Но при этом подходе появляются минусы, которые я ещё не полностью формализовал и оценил. Возможно, можно вообще подойти с другой стороны к этой проблеме, но это нужно обдумать.

Также предложенная идея потребует не только определения составных частей &quot;матрёшки&quot; при создании initrd, но и аккуратного сохранения последовательности и параметров иерархии. Для этого нужно переделать архитектуру угадава, сделав его более фичастым, отвечающим новым задачам (которых раньше не было). Это большая работа, которую как ты знаешь я уже веду, но прогнозов по ней у меня нет т.к. она не в приоритете у меня сейчас. Плюс тут есть над чем подумать.

&gt; Надо что-то придумать, так как иначе поддержка luks получается.. своеобразная..

https://bugzilla.altlinux.org/show_bug.cgi?id=28255#c18 и ниже по треду.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137165</commentid>
    <comment_count>39</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2013-01-23 14:47:56 +0400</bug_when>
    <thetext>(В ответ на комментарий №38)
&gt;
&gt; Также предложенная идея потребует не только определения составных частей
&gt; &quot;матрёшки&quot; при создании initrd, но и аккуратного сохранения последовательности
&gt; и параметров иерархии.
Хмм.. А ведь, вообще говоря, нам никто не обещал, что нам не передадут какой-нибудь другой UUID, который мы не знаем где брать и, соответсвенно, нам придётся искать его по всем контейнерам.. То есть в лучшем случае такое решение можно использовать для того раздела, который был корневым в момент сборки initrd, но сохранить и угадав старого образца для случая, когда нам дали другой UUID...

&gt; Для этого нужно переделать архитектуру угадава, сделав
&gt; его более фичастым, отвечающим новым задачам (которых раньше не было). Это
&gt; большая работа, которую как ты знаешь я уже веду, но прогнозов по ней у меня
&gt; нет т.к. она не в приоритете у меня сейчас. Плюс тут есть над чем подумать.
Да, спасибо за объяснение, тут действительно есть над чем задуматься..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137169</commentid>
    <comment_count>40</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2013-01-23 15:15:44 +0400</bug_when>
    <thetext>(В ответ на комментарий №39)
&gt; Хмм.. А ведь, вообще говоря, нам никто не обещал, что нам не передадут
&gt; какой-нибудь другой UUID, который мы не знаем где брать и, соответсвенно, нам
&gt; придётся искать его по всем контейнерам.. То есть в лучшем случае такое решение
&gt; можно использовать для того раздела, который был корневым в момент сборки 
&gt; initrd, но сохранить и угадав старого образца для случая, когда нам дали другой
&gt; UUID...

Сейчас (в будущей версии), make-initrd запоминает UUID рута, который был на момент сборки образа и при отсутствии параметра root= при загрузке будет брать сохранённое значение.

Новый механизм можно увязать с этим же механизмом активации т.е. использовать сохранённую &quot;матрёшку&quot; в случае если параметр root= не указан или равен сохранённому. В этом случае задача будет ещё более интересная т.к. нужно будет не переписать действующий механизм определения, а дополнить возможностью задания вектора поиска.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137171</commentid>
    <comment_count>41</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2013-01-23 16:13:18 +0400</bug_when>
    <thetext>(In reply to comment #34)
&gt; Из этого следует, что make-initrd-luks надо модифицировать таким образом,
&gt; чтоб он работал только с контейнерами, перечисленными в /etc/fstab или вообще
&gt; только с корневым разделом, а остальные отдать на более позднюю стадию,
&gt; обеспечив согласованность работы.
(прочитав до comment 40 включительно)

1) видимо, всё-таки не /etc/fstab, а /etc/crypttab (и вернуть тогда в /vm
   его генерацию, которая была сделана, но сейчас заремарена);
2) обязательным требованием к m-i-l является умение открыть корень,
   если он оказался в luks;
3) желательным навыком m-i-l может быть примерка заданного для корня пароля
   и к другим оставленным в итоге для попытки открытия контейнерам
   (см. тж. bug #28200 -- понимаю, что это небесспорное решение, но лучше
   пока никто не предложил);
4) luks-контейнеры для некорневых ФС могут обрабатываться уже с поднятого
   корня и при смонтированных сетевых ФС, так что облом по ним в initrd
   IMHO следует считать нефатальным и делать быстрым, если это возможно.

PS: по крайней мере для случая инсталятора видится разумным сторговать некоторое количество автоматики в пользу надёжности за счёт того, что при формировании initrd ситуация полностью открыта и может быть проанализирована без угадывания.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137173</commentid>
    <comment_count>42</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2013-01-23 16:42:17 +0400</bug_when>
    <thetext>(В ответ на комментарий №41)
&gt; 1) видимо, всё-таки не /etc/fstab, а /etc/crypttab (и вернуть тогда в /vm
&gt;    его генерацию, которая была сделана, но сейчас заремарена);

Поддержка /etc/crypttab никак не поможет решить проблему. Он может пригодиться при создании образа, чтобы знать какие ещё модули ядра нужно положить и он может пригодиться при раскрытии контейнера, но не больше т.е. к проблеме ограничения куда заглядывать это не относится.

&gt; 2) обязательным требованием к m-i-l является умение открыть корень,
&gt;    если он оказался в luks;

Этот пункт о чём? Задача initrd заключается в умении открыть корень. Все модули позволяют распознать ту или иную схему размещения корня. Модуль make-initrd-luks уже реализует определённое количество таких схем. Модуль уже удовлетворяет этому пункту в такой постановке задачи.

&gt; 3) желательным навыком m-i-l может быть примерка заданного для корня пароля
&gt;    и к другим оставленным в итоге для попытки открытия контейнерам
&gt;    (см. тж. bug #28200 -- понимаю, что это небесспорное решение, но лучше
&gt;    пока никто не предложил);

Только после того, как кто-то предложит как _безопасно_ сохранить пароль между необходимостью очередного его использования.

&gt; 4) luks-контейнеры для некорневых ФС могут обрабатываться уже с поднятого
&gt;    корня и при смонтированных сетевых ФС, так что облом по ним в initrd
&gt;    IMHO следует считать нефатальным и делать быстрым, если это возможно.

Это и сейчас так.

&gt; PS: по крайней мере для случая инсталятора видится разумным сторговать
&gt; некоторое количество автоматики в пользу надёжности за счёт того, что при
&gt; формировании initrd ситуация полностью открыта и может быть проанализирована
&gt; без угадывания.

Мне кажется, что вам хочется mkinitrd. Там последовательность проанализирована без угадывания. Он всё ещё доступен в сизифе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137176</commentid>
    <comment_count>43</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2013-01-23 17:43:54 +0400</bug_when>
    <thetext>(В ответ на комментарий №42)
&gt; (В ответ на комментарий №41)
&gt; &gt; 1) видимо, всё-таки не /etc/fstab, а /etc/crypttab (и вернуть тогда в /vm
&gt; &gt;    его генерацию, которая была сделана, но сейчас заремарена);
&gt; 
&gt; Поддержка /etc/crypttab никак не поможет решить проблему. Он может пригодиться
&gt; при создании образа, чтобы знать какие ещё модули ядра нужно положить и он
&gt; может пригодиться при раскрытии контейнера, но не больше т.е. к проблеме
&gt; ограничения куда заглядывать это не относится.
&gt; 
&gt; &gt; 2) обязательным требованием к m-i-l является умение открыть корень,
&gt; &gt;    если он оказался в luks;
&gt; 
&gt; Этот пункт о чём? Задача initrd заключается в умении открыть корень. Все модули
&gt; позволяют распознать ту или иную схему размещения корня. Модуль
&gt; make-initrd-luks уже реализует определённое количество таких схем. Модуль уже
&gt; удовлетворяет этому пункту в такой постановке задачи.
&gt; 
&gt; &gt; 3) желательным навыком m-i-l может быть примерка заданного для корня пароля
&gt; &gt;    и к другим оставленным в итоге для попытки открытия контейнерам
&gt; &gt;    (см. тж. bug #28200 -- понимаю, что это небесспорное решение, но лучше
&gt; &gt;    пока никто не предложил);
&gt; 
&gt; Только после того, как кто-то предложит как _безопасно_ сохранить пароль между
&gt; необходимостью очередного его использования.
&gt; 
&gt; &gt; 4) luks-контейнеры для некорневых ФС могут обрабатываться уже с поднятого
&gt; &gt;    корня и при смонтированных сетевых ФС, так что облом по ним в initrd
&gt; &gt;    IMHO следует считать нефатальным и делать быстрым, если это возможно.
&gt; 
&gt; Это и сейчас так.
&gt; 
&gt; &gt; PS: по крайней мере для случая инсталятора видится разумным сторговать
&gt; &gt; некоторое количество автоматики в пользу надёжности за счёт того, что при
&gt; &gt; формировании initrd ситуация полностью открыта и может быть проанализирована
&gt; &gt; без угадывания.
&gt; 
&gt; Мне кажется, что вам хочется mkinitrd. Там последовательность проанализирована
&gt; без угадывания. Он всё ещё доступен в сизифе.

Нет уж. :-)

Вообще, 2 и 4 уже выполнено, на legion@ убедительно ответил, а 3 -- пожелание. Можно двигаться дальше, положение дел обсудили.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137177</commentid>
    <comment_count>44</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2013-01-23 17:45:16 +0400</bug_when>
    <thetext>(В ответ на комментарий №43)
&gt; 
&gt; Вообще, 2 и 4 уже выполнено, на legion@ убедительно ответил, а 3 -- пожелание.
&gt; Можно двигаться дальше, положение дел обсудили.

legion@ убедительно ответил на п.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137241</commentid>
    <comment_count>45</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2013-01-24 08:54:58 +0400</bug_when>
    <thetext>installer-0.8.14

Реализована следующая схема: luks добавляется в initrd только в том случае, если на нём расположен /. Тогда, как и сейчас, все контейнеры раскрываются в initrd и это неизбежно, хотя, может быть, временами и неудобно.

В случае, если / расположен не на luks, в целевой системе создаётся /etc/crypttab и раскрытие контейнеров происходит уже после завершения работы initrd.

Вссем большое спасибо за обсуждение.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144475</commentid>
    <comment_count>46</comment_count>
    <who name="">aebirukov</who>
    <bug_when>2014-01-06 20:25:38 +0400</bug_when>
    <thetext>При попытке сгенерировать образ:

Generating module dependencies on host ...
/usr/share/make-initrd/features/luks/guess/device: line 13: guess-kbd: команда не найдена</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144483</commentid>
    <comment_count>47</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2014-01-07 15:05:27 +0400</bug_when>
    <thetext>Это новая бага на make-initrd-luks, а не переоткрытие совсем другой.
Повесите?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144490</commentid>
    <comment_count>48</comment_count>
    <who name="">aebirukov</who>
    <bug_when>2014-01-08 15:25:41 +0400</bug_when>
    <thetext>(В ответ на комментарий №47)
&gt; Это новая бага на make-initrd-luks, а не переоткрытие совсем другой.
&gt; Повесите?
Ага
#29688</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5688</attachid>
            <date>2012-12-27 14:26:44 +0400</date>
            <delta_ts>2012-12-27 14:26:44 +0400</delta_ts>
            <desc>Всегда добавлять модуль luks в образ initrd</desc>
            <filename>make-initrd-luks.patch</filename>
            <type>text/plain</type>
            <size>634</size>
            <attacher name="timonbl4@altlinux.org">timonbl4</attacher>
            
              <data encoding="base64">Y29tbWl0IDJiZTZhOTdiNzRjZGQ2ZTQ5M2JhZmYwZGU4ZTJmZjQ0ZTRjZDIwODMKQXV0aG9yOiBU
aW11ciBBaXRvdiA8dGltb25ibDRAYWx0bGludXgub3JnPgpEYXRlOiAgIFRodSBEZWMgMjcgMTQ6
MTk6MTkgMjAxMiArMDQwMAoKICAgIExVS1M6IGFsd2F5cyBhZGQgdGhpcyBtb2R1bGUKCmRpZmYg
LS1naXQgYS9mZWF0dXJlcy9sdWtzL2d1ZXNzL2RldmljZSBiL2ZlYXR1cmVzL2x1a3MvZ3Vlc3Mv
ZGV2aWNlCmluZGV4IDgyNDE5ZWYuLmFjMDU0OWMgMTAwNzU1Ci0tLSBhL2ZlYXR1cmVzL2x1a3Mv
Z3Vlc3MvZGV2aWNlCisrKyBiL2ZlYXR1cmVzL2x1a3MvZ3Vlc3MvZGV2aWNlCkBAIC0yLDEzICsy
LDYgQEAKIAogLiBndWVzcy1mdW5jdGlvbnMKIAotWyAtZCAiJFNZU0ZTX1BBVEgkMSIvZG0gXSB8
fAotCWV4aXQgMAotCi11dWlkPSIkKGNhdCAiJFNZU0ZTX1BBVEgkMSIvZG0vdXVpZCkiCi0KLWlm
IFsgLXogIiR7dXVpZCMjQ1JZUFQtKn0iIF07IHRoZW4KLQlndWVzc19mZWF0dXJlIGx1a3MKLQkj
IFdlIG5lZWQga2V5Ym9hcmQgdG8gZW50ZXIgcGFzc3dvcmQKLQlndWVzcy1rYmQKLWZpCitndWVz
c19mZWF0dXJlIGx1a3MKKyMgV2UgbmVlZCBrZXlib2FyZCB0byBlbnRlciBwYXNzd29yZAorZ3Vl
c3Mta2JkCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>