Bug 18679

Summary: При инсталяции удаляется уже существующий загрузчик из MBR
Product: Sisyphus Reporter: Boris Popov <popov.b>
Component: alterator-liloAssignee: Anton V. Boyarshinov <boyarsh>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: boyarsh, mike, rom_as, slazav, torokhov_s_a
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 19564    

Description Boris Popov 2009-01-28 15:13:34 MSK
Во время инсталяции и выборе экспертного режима установки lilo, при отказе от установки lilo, lilo, тем не менее, устаналивается в mbr и затирет предыдущий загрузчик (в данном случае у меня стоял grub).
Comment 1 sorath 2009-09-11 22:16:35 MSD
в процессе установки столкнулся с аналогичной проблемой:
после выбора экпертного режима отказался от установки загрузчика,
но перезапись mbr предложенным системой установки загрузчиком всё равно произошла.
(до этого в mbr так же стоял grub от другого дистрибутива на этом же физическом диске)
Comment 2 Michael Shigorin 2009-09-19 00:49:25 MSD
2 ldv: и впрямь, я о такой возможности не подумал.  Есть мысли?
Comment 3 Michael Shigorin 2009-09-19 00:52:18 MSD
Так понимаю, дежурным blocker target сейчас Office Server -- в нём тоже реально.
Comment 4 Dmitry V. Levin 2009-09-20 02:46:43 MSD
(In reply to comment #2)
> 2 ldv: и впрямь, я о такой возможности не подумал.  Есть мысли?

Помечать факт отказа от установки загрузчика, и проверять эту пометку в таких скриптах как *add-memtest.
Comment 5 Dmitry V. Levin 2009-09-20 02:48:05 MSD
Не считаю эту проблему фатальной.
Comment 6 Vladislav Zavjalov 2009-09-20 03:51:45 MSD
> Помечать факт отказа от установки загрузчика, и проверять эту пометку в таких
> скриптах как *add-memtest.

Какое-то ужасное решение, мне кажется. Искать по логам инсталятора, да? Или передавать через спец.комментарий в lilo.conf?

Может, лучше вообще комментировать boot=, если поставили галочку "не ставить загрузчик"? И пусть кто хочет пытается запускать! :)
Comment 7 Dmitry V. Levin 2009-09-20 03:59:23 MSD
(In reply to comment #6)
> > Помечать факт отказа от установки загрузчика, и проверять эту пометку в таких
> > скриптах как *add-memtest.
> 
> Какое-то ужасное решение, мне кажется. Искать по логам инсталятора, да?

Нет, конечно.

> Или передавать через спец.комментарий в lilo.conf?
> 
> Может, лучше вообще комментировать boot=, если поставили галочку "не ставить
> загрузчик"? И пусть кто хочет пытается запускать! :)

Это, кстати, вариант.  А проверять с помощью detectliloboot.sh
Comment 8 Vladislav Zavjalov 2009-09-20 04:07:52 MSD
> Это, кстати, вариант.  А проверять с помощью detectliloboot.sh

Кстати, похоже, что если нет boot, то lilo тихо ставит на "свой" раздел и не ругается :(
Так что не комментировать, а портить придется.
s/^[[:space:]]*boot=/__remove_this_to_use_lilo!__ boot=/ :)

Но как-то это еще более некрасиво...
Comment 9 Vladislav Zavjalov 2009-09-20 04:14:49 MSD
Ну или писать правильный lilo.conf, но класть его рядом, в lilo.conf.tmp
Comment 10 Dmitry V. Levin 2009-09-20 04:27:54 MSD
(In reply to comment #7)
> Это, кстати, вариант.  А проверять с помощью detectliloboot.sh

http://git.altlinux.org/people/ldv/packages/?p=installer-feature-add-memtest.git;a=commitdiff;h=0.3-alt1-1-g4551ae7
Comment 11 Michael Shigorin 2009-09-20 15:54:37 MSD
(In reply to comment #8)
> Так что не комментировать, а портить придется.
> s/^[[:space:]]*boot=/__remove_this_to_use_lilo!__ boot=/ :)
> Но как-то это еще более некрасиво...
boot=/dev/null # ALT Linux bootloader prohibited during installation
?

(In reply to comment #9)
> Ну или писать правильный lilo.conf, но класть его рядом, в lilo.conf.tmp
lilo.conf.sample тогда уж, но тоже да.  Причём при повторном запуске из уже установленной системы придётся смотреть, а нет ли такого, и соответственно править его и предупреждать, что пока не решим устанавливать бутлоадер -- эффекта не будет.  Если решишь так делать, давай повесим отдельный FR на alterator-lilo и обдумаем там.

(In reply to comment #10)
> http://git.altlinux.org/people/ldv/packages/?p=installer-feature-add-memtest.git;a=commitdiff;h=0.3-alt1-1-g4551ae7
Спасибо!  >90% смешанных инсталяций (Ubuntu/Fedora с GRUB) это спасёт, хотя остаётся возможность "чужого" lilo и его мы перетрём.  Перестраховка всё равно не помешает, но явно надо сделать и что-то по направлению мыслей Славы.
Comment 12 Dmitry V. Levin 2009-09-20 16:23:35 MSD
(In reply to comment #8)
> > Это, кстати, вариант.  А проверять с помощью detectliloboot.sh
> 
> Кстати, похоже, что если нет boot, то lilo тихо ставит на "свой" раздел и не
> ругается :(
> Так что не комментировать, а портить придется.
> s/^[[:space:]]*boot=/__remove_this_to_use_lilo!__ boot=/ :)
> 
> Но как-то это еще более некрасиво...

Лучше, чтобы lilo.conf был установлен (тогда installkernel и тот же add-memtest смогут его дополнять), но с деактивированным boot=, например,
boot="/#disabled#/path/to/device"

(In reply to comment #11)
> Спасибо!  >90% смешанных инсталяций (Ubuntu/Fedora с GRUB) это спасёт, хотя
> остаётся возможность "чужого" lilo и его мы перетрём.  Перестраховка всё равно
> не помешает, но явно надо сделать и что-то по направлению мыслей Славы.

detectliloboot.sh ищет boot device согласно записи "boot=" в /etc/lilo.conf
Comment 13 Dmitry V. Levin 2009-09-20 20:11:26 MSD
(In reply to comment #10)
> (In reply to comment #7)
> > Это, кстати, вариант.  А проверять с помощью detectliloboot.sh
> 
> http://git.altlinux.org/people/ldv/packages/?p=installer-feature-add-memtest.git;a=commitdiff;h=0.3-alt1-1-g4551ae7

Нет, дублировать installkernel нехорошо.  Может быть, лучше задействовать несуществующую на данный момент опцию installkernel --launch-only:
http://git.altlinux.org/people/ldv/packages/?p=installer-feature-add-memtest.git;a=commitdiff;h=0.3-alt1-1-g52d3639
Comment 14 Vladislav Zavjalov 2009-09-20 22:55:35 MSD
> boot=/dev/null # ALT Linux bootloader prohibited during installation

Плохо. Информацию не восстановишь простым способом.

> lilo.conf.sample

Действительно, ни люди, ни installkernel не найдут.

> boot="/#disabled#/path/to/device"

Видимо, так лучше всего.

> Нет, дублировать installkernel нехорошо.  Может быть, лучше задействовать
> несуществующую на данный момент опцию installkernel --launch-only:

Еще лучше -- другую несуществующую опцию:
installkernel --label memtest -m "$MEMTEST"
Comment 15 Vladislav Zavjalov 2009-09-21 11:20:05 MSD
> Еще лучше -- другую несуществующую опцию:
> installkernel --label memtest -m "$MEMTEST"

вот такую примерно:
http://git.altlinux.org/people/slazav/packages/?p=bootloader-utils.git;a=commit;h=73daf2b3a8ab6b4cc011caf6b2726391504754de
Comment 16 Dmitry V. Levin 2009-09-21 12:55:18 MSD
(In reply to comment #15)
> > Еще лучше -- другую несуществующую опцию:
> > installkernel --label memtest -m "$MEMTEST"
> 
> вот такую примерно:
> http://git.altlinux.org/people/slazav/packages/?p=bootloader-utils.git;a=commit;h=73daf2b3a8ab6b4cc011caf6b2726391504754de

Где бы ещё пример использования посмотреть?
Comment 17 Vladislav Zavjalov 2009-09-21 13:08:32 MSD
Я имел в виду, что вместо двух вызовов installkernel с исправлением label между ними, можно исправление label унести в installkernel.

В том что я написал, параметр --label, надеюсь, означает "использовать указанный label, если такого еще нет".

Ну а 50-add-memtest будет, кажется, таким:
http://git.altlinux.org/people/slazav/packages/?p=installer-feature-add-memtest.git;a=commit;h=ba00e361e0ca2d87e3449397945066dba90e5713
Comment 18 Vladislav Zavjalov 2009-09-21 15:44:33 MSD
Перевешиваю на alterator-lilo и закрываю, добавив защиту параметра boot= при выборе пункта "не устанавливать загрузчик".
Comment 19 Dmitry V. Levin 2009-09-21 16:22:52 MSD
(In reply to comment #18)
> Перевешиваю на alterator-lilo и закрываю, добавив защиту параметра boot= при
> выборе пункта "не устанавливать загрузчик".

Одного этого изменения недостаточно: без изменений в bootloader-utils и add-memtest последний будет завершаться с ошибкой, если boot= будет защищён.
Comment 21 Vladislav Zavjalov 2009-09-21 16:48:46 MSD
> Одного этого изменения недостаточно

Да, с alterator-lilo я чуть было не поспешил :) Хотя, кажется, это не должно бы привести к чему-то плохому... Или add-memtest с ошибкой смущает инсталятор?

Cейчас еще потестирую изменения в bootloader-utils, и, видимо, надо уже делать task со всеми тремя?
Comment 22 Dmitry V. Levin 2009-09-21 17:02:23 MSD
(In reply to comment #21)
> > Одного этого изменения недостаточно
> 
> Да, с alterator-lilo я чуть было не поспешил :) Хотя, кажется, это не должно бы
> привести к чему-то плохому... Или add-memtest с ошибкой смущает инсталятор?

Сообщение об ошибке увидит пользователь, в то время как ошибки как таковой нет -- это нехорошо.

> Cейчас еще потестирую изменения в bootloader-utils, и, видимо, надо уже делать
> task со всеми тремя?

Да.
Comment 23 Repository Robot 2009-09-22 12:03:48 MSD
alterator-lilo-1.8-alt11 -> sisyphus:

* Mon Sep 21 2009 Vladislav Zavjalov <slazav@altlinux> 1.8-alt11

- backend: protect boot= parameter if user don't want to install
  bootloader (closes: #18679)
Comment 24 Repository Robot 2009-09-22 12:03:49 MSD
installer-feature-add-memtest-0.4-alt1 -> sisyphus:

* Mon Sep 21 2009 Dmitry V. Levin <ldv@altlinux> 0.4-alt1

- Use installkernel --label (Vladislav Zavjalov; closes: #18679).