[sisyphus] udev-197

Alexey Shabalin a.shabalin на gmail.com
Вт Янв 29 15:54:38 MSK 2013


29 января 2013 г., 15:38 пользователь Alexey Gladkov написал:
> 29.01.2013 13:44, Alexey Shabalin wrote:
>> 28 января 2013 г., 19:49 пользователь Dmitry V. Levin написал:
>>> On Mon, Jan 28, 2013 at 07:42:27PM +0400, Alexey Shabalin wrote:
>>>> 28 января 2013 г., 19:37 пользователь Alexey Shabalin написал:
>>>>> 28 января 2013 г., 19:23 пользователь Alexey Gladkov написал:
>>>>>> 28.01.2013 19:04, Alexey Shabalin wrote:
>>>>>>> Так я и прошу показать где происходит перезапуск. Под перезапуском я
>>>>>>> понимаю, что первый экземпляр где-то стопится. Пока я вижу только
>>>>>>> старт из rc.sysinit и
>>>>>>
>>>>>> Под перезапуском я понимаю, что udev останавливается в initrd и
>>>>>> запускается в системе с чистого листа и наполняет базу заново.
>>>>>>
>>>>>>> Т.е. если он запускается только один раз из rc.sysinit, то добавление
>>>>>>> "--action=add" так же поломает наполнение базы udev?
>>>>>>
>>>>>> Тут должна быть инициализация базы с нуля. Примерно также делается в
>>>>>> initrd.
>>>>> Для sysv не страшно, если база пустая, т.к. swapon,  vgchange -a y,
>>>>> mdadm --assemble --scan и т.п. все равно при любых условиях
>>>>> запускаются из rc.sysinit  и наполняют базу udev.
>>>>> Для systemd они ни откуда ни запускаются , полагается только на уже
>>>>> существующую наполненую базу udev. И если она пустая - то будет облом.
>>>>
>>>> Кстати, может сделаем такой компромисс - базу udev из initrd будем
>>>> копировать, а удалять уже из rc.sysinit ? А для systemd Эту базу можно
>>>> не удалять.
>>>
>>> Это будет не компромисс, а мина замедленного действия, до первого
>>> нарушения обратной совместимости формата базы udev.
>>
>> Тогда давайте копировать базу udev и обновлять initrd при обновлении
>> udev хотя бы для текущего ядра (не трогая остальные) - у
>> администратора останется возможность загрузится и если надо вручную
>> обновить initrd для других ядер.
>
> Представим ситуацию, когда новый initrd не загрузился (такое иногда
> бывает) и есть несовместимость баз. Что делать пользователю? Новое
> ядро не грузится... и старое тоже не будет грузится.
>
> Таким образом система будет работать, когда всё хорошо и не будет
> работать при проблемах. Собственно как и в случае неперегенерации
> initrd и копирования баз. Эффект будет одинаковым.
>
> Как один из обходных вариантов можно реализовать cmdline ключ для
> управления копированием базы udev в систему, который по умолчанию
> будет выставлен в "копировать". Тогда если реализовать аварийный
> механизм в системе на случай, когда базы udev нет, то пользователь
> сможет(?) загрузиться хоть как-то.
>
> Тут у меня возникают сомнения в возможности реализации аварийного
> режима т.к. этот тред и есть следствие того, что systemd не умеет
> нормально работать без базы udev. 2shaba@: Можно ли тут что-то сделать ?

Честно говоря не понял какой вопрос мне адресован.
Есть ли в systemd аварийный режим? Да, есть.
Или что "что-то сделать"?

--
Alexey Shabalin


Подробная информация о списке рассылки Sisyphus