AlteratorLilo: различия между версиями

Материал из ALT Linux Wiki
мНет описания правки
Нет описания правки
Строка 4: Строка 4:
=== Alterator-Lilo ===
=== Alterator-Lilo ===


(2008/07/07) В данный момент бэкенд alterator-lilo очень запутан и требует переделки. (Из-за существенной модификации интерфейса и довольно неаккуратной правки бэкенда, чтоб он этому интерфейсу соответствовал). Попробую для начала описать здесь желаемое поведение бакенда...
В данный момент бэкенд alterator-lilo очень запутан и требует переделки. (Из-за существенной модификации интерфейса и довольно неаккуратной правки бэкенда, чтоб он этому интерфейсу соответствовал). Попробую cобрать здесь план нового бакенда...


системные данные (данные определяются один раз, в начале работы бэкенда)
(!) -- в существующем alterator-lilo пока нет
* <div style="display: inline; color: red;">list_hard_drives</div> — список всех жёстких дисков (в чьи MBR можно поставить загрузчик, и где можно искать чужие загрузчики) — получаем с помощью fdisk
* <div style="display: inline; color: red;">list_partitions</div> — список всех разделов (где можно искать чужие загрузчики) — получаем с помощью fdisk
* <div style="display: inline; color: red;">get_my_partition</div> — раздел, на котором находится /boot — получаем с помощью /proc/mounts


* <div style="display: inline; color: red;">list_boot_devices</div> = <div style="display: inline; color: red;">list_hard_drives</div> + <div style="display: inline; color: red;">get_my_partition</div> — все устройства, куда можно предложить поставить загрузчик.
* <div style="display: inline; color: red;">list_other_partitions</div> = <div style="display: inline; color: red;">list_partitions</div> - <div style="display: inline; color: red;">get_my_partition</div> — разделы, где можно искать чужие загрузчики


...
====on_start()====


работа с lilo.conf
* собираем инфу по системе
* <div style="display: inline; color: red;">list_sections</div> — список вариантов загрузки из lilo.conf
  * варианты установки загрузчика
* <div style="display: inline; color: red;">list_others</div> — список other-вариантов загрузки из lilo.conf
    * все диски, без raid и removable!
...
      * удобно получать у hal'a
    * раздел, на котором находится /boot
      * в т.ч. raid
      * грабли с raid под evms! Находится /dev/evms/md/md0, которого в системе не будет, непонятно как преобразовать его к /dev/md0 (который есть, но на которого нет ссылок из /dev/disk/* и про который не знает blkid и hal). Сейчас /evms/md просто отрезается...
  * рекомендуемое место для загрузчика
    * первый диск или raid, если на нем /boot
  * поиск других ОС
    - найти все разделы всех дисков
    - исключить свой раздел
    - поискать загрузчик, определить тип ОС
    - (!) здесь сделать только заготовки названий, а умное добавление уникальных чисел делать позже!.


list actions
* читаем lilo.conf
* boot_devices:  (name "/dev/hda" label "1й жёсткий диск (2,0 Гб)")
  * если есть системый,
      берем его - нормализуем - чиним (применяем недостающие значения)
  * иначе - берем template - применяем рекомендуемые значение


...
on_read()
* simple
* expert
* rawfile
  * генерим и отдаем форматированный lilo.conf
 
on_write()
* simple
  - выставлять raid-extra-boot!.
* expert
* rawfile
 
on_list()
Простой интерфейс
* Варианты установки загрузчика:
  * без root on raid:
    - все жесткие диски
    - раздел, на котором находится /boot
    - (!) раздел на который ставится загрузчик в существующем lilo.conf
      (если отличается от предыдущих пунктов)
  *  root on raid
    - в инсталляторе не показывать никакой вариант, кроме.
      (на все остальное lilo ругается)
 
* Варианты загрузки -- неизменный список!
* Кнопка "Искать другие ОС"
* Кнопка "Удалить выбранное"
 
* combobox "Загружать по умолчанию"
===Политика работы с секциями===
 
В начале работы производится поиск других ОС. Кроме того, существует текущая конфигурация с какими-то своими секциями.
* В экспертном интерфейсе показываются секции из конфигурационного файла, с возможностью добавлять и удалять вручную
* В простом интерфейсе показывается список секций из конфигурационного файла + непересекающиеся с ним по именам устройств секции найденных ОС. Checkbox'ами отмечено то, что включено в текущую конфигурацию. При генерации этого слитого списка происходит умная расстановка чисел в названия автоматически определенных секций (все имена должны быть уникальны).
 
===Защита имен устройств===
 
'''/dev/sda <-> /dev/disk/by-id/scsi-SATA_ST3250820AS_5QE2FCJP'''
 
Видимо, надо выполнять преобразование при сборке/разборке lilo.conf. Чтоб в простом и экспертном интерфейсе мы оперировали только с /dev/sda, а в lilo.conf писался бы disk by id... (При этом, разумеется, ничто не мешает читать из lilo.conf /dev/sda и др., или писать в экспертном интерфейсе  disk by id)
 
Вопрос с root device. Надо ли, как это сейчас сделано, указывать его по uuid, или же можно для единообразия писать туда /dev/sda1 и, как и другие имена устройств, защищать с помощью /dev/disk/by-id или /dev/disk/by-uuid?
===странные грабли===
* Если у нас root на raid под evms, то lilo не хочет ставить загрузчик ни на что, кроме raid
* raid под evms не виден ни в hal ни в /dev/disk/*, blkid его как-то тоже странно понимает
* hal не может определить id и flags и для некоторых разделов

Версия от 14:47, 29 октября 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Alterator-Lilo

В данный момент бэкенд alterator-lilo очень запутан и требует переделки. (Из-за существенной модификации интерфейса и довольно неаккуратной правки бэкенда, чтоб он этому интерфейсу соответствовал). Попробую cобрать здесь план нового бакенда...

(!) -- в существующем alterator-lilo пока нет


on_start()

  • собираем инфу по системе
 * варианты установки загрузчика
   * все диски, без raid и removable!
     * удобно получать у hal'a
   * раздел, на котором находится /boot
     * в т.ч. raid
     * грабли с raid под evms! Находится /dev/evms/md/md0, которого в системе не будет, непонятно как преобразовать его к /dev/md0 (который есть, но на которого нет ссылок из /dev/disk/* и про который не знает blkid и hal). Сейчас /evms/md просто отрезается...
 * рекомендуемое место для загрузчика
   * первый диск или raid, если на нем /boot
 * поиск других ОС
    - найти все разделы всех дисков
    - исключить свой раздел
    - поискать загрузчик, определить тип ОС
    - (!) здесь сделать только заготовки названий, а умное добавление уникальных чисел делать позже!.
* читаем lilo.conf
  * если есть системый,
      берем его - нормализуем - чиним (применяем недостающие значения)
  * иначе - берем template - применяем рекомендуемые значение

on_read()

* simple
* expert
* rawfile
  * генерим и отдаем форматированный lilo.conf

on_write()

* simple
  - выставлять raid-extra-boot!.
* expert
* rawfile

on_list() Простой интерфейс

* Варианты установки загрузчика:
  * без root on raid:
    - все жесткие диски
    - раздел, на котором находится /boot
    - (!) раздел на который ставится загрузчик в существующем lilo.conf
      (если отличается от предыдущих пунктов)
  *  root on raid
    - в инсталляторе не показывать никакой вариант, кроме.
      (на все остальное lilo ругается)
* Варианты загрузки -- неизменный список!
* Кнопка "Искать другие ОС"
* Кнопка "Удалить выбранное"
* combobox "Загружать по умолчанию"

Политика работы с секциями

В начале работы производится поиск других ОС. Кроме того, существует текущая конфигурация с какими-то своими секциями.

  • В экспертном интерфейсе показываются секции из конфигурационного файла, с возможностью добавлять и удалять вручную
  • В простом интерфейсе показывается список секций из конфигурационного файла + непересекающиеся с ним по именам устройств секции найденных ОС. Checkbox'ами отмечено то, что включено в текущую конфигурацию. При генерации этого слитого списка происходит умная расстановка чисел в названия автоматически определенных секций (все имена должны быть уникальны).

Защита имен устройств

/dev/sda <-> /dev/disk/by-id/scsi-SATA_ST3250820AS_5QE2FCJP

Видимо, надо выполнять преобразование при сборке/разборке lilo.conf. Чтоб в простом и экспертном интерфейсе мы оперировали только с /dev/sda, а в lilo.conf писался бы disk by id... (При этом, разумеется, ничто не мешает читать из lilo.conf /dev/sda и др., или писать в экспертном интерфейсе disk by id)

Вопрос с root device. Надо ли, как это сейчас сделано, указывать его по uuid, или же можно для единообразия писать туда /dev/sda1 и, как и другие имена устройств, защищать с помощью /dev/disk/by-id или /dev/disk/by-uuid?

странные грабли

  • Если у нас root на raid под evms, то lilo не хочет ставить загрузчик ни на что, кроме raid
  • raid под evms не виден ни в hal ни в /dev/disk/*, blkid его как-то тоже странно понимает
  • hal не может определить id и flags и для некоторых разделов