AlteratorLilo: различия между версиями
Нет описания правки |
|||
Строка 7: | Строка 7: | ||
(!) -- в существующем alterator-lilo пока нет | (!) -- в существующем alterator-lilo пока нет | ||
====on_start()==== | ====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 | * читаем lilo.conf | ||
** если есть системый, берем его - нормализуем - чиним (применяем недостающие значения) | |||
** иначе - берем template - применяем рекомендуемые значение | |||
on_read() | ====on_read()==== | ||
* simple | |||
** expert | |||
** rawfile | |||
*** генерим и отдаем форматированный lilo.conf | |||
====on_write()==== | |||
===Простой интерфейс=== | * simple | ||
** выставлять raid-extra-boot!. | |||
* expert | |||
* rawfile | |||
====on_list()==== | |||
====Простой интерфейс==== | |||
* Варианты установки загрузчика: | * Варианты установки загрузчика: | ||
Строка 58: | Строка 57: | ||
М.б пока не показывать никакие варианты кроме root on raid в инсталяторе?.. (на все остальное lilo ругается из-за кривого состояния evms+dm+raid) | М.б пока не показывать никакие варианты кроме root on raid в инсталяторе?.. (на все остальное lilo ругается из-за кривого состояния evms+dm+raid) | ||
===Политика работы с секциями=== | ====Политика работы с секциями==== | ||
В начале работы производится поиск других ОС. Кроме того, существует текущая конфигурация с какими-то своими секциями. | В начале работы производится поиск других ОС. Кроме того, существует текущая конфигурация с какими-то своими секциями. | ||
Строка 64: | Строка 63: | ||
* В простом интерфейсе показывается список секций из конфигурационного файла + непересекающиеся с ним по именам устройств секции для найденных ОС. Checkbox'ами отмечено то, что включено в текущую конфигурацию. При генерации этого слитого списка происходит умная расстановка чисел в названия автоматически определенных секций (все имена должны быть уникальны). | * В простом интерфейсе показывается список секций из конфигурационного файла + непересекающиеся с ним по именам устройств секции для найденных ОС. Checkbox'ами отмечено то, что включено в текущую конфигурацию. При генерации этого слитого списка происходит умная расстановка чисел в названия автоматически определенных секций (все имена должны быть уникальны). | ||
===Защита имен устройств=== | ====Защита имен устройств==== | ||
Что-то типа такого: /dev/sda <-> /dev/disk/by-id/scsi-SATA_ST3250820AS_5QE2FCJP | Что-то типа такого: /dev/sda <-> /dev/disk/by-id/scsi-SATA_ST3250820AS_5QE2FCJP | ||
Строка 74: | Строка 73: | ||
(сейчас все сделано немного не так...) | (сейчас все сделано немного не так...) | ||
===Расстановка bootable-флагов=== | ====Расстановка bootable-флагов==== | ||
* Если загрузчик ставится на primary-раздел и на диске нет ни одного bootable-раздела -- ставлю флаг на этот раздел | * Если загрузчик ставится на primary-раздел и на диске нет ни одного bootable-раздела -- ставлю флаг на этот раздел | ||
Строка 82: | Строка 81: | ||
Существующий код меня вполне устраивает. | Существующий код меня вполне устраивает. | ||
===странные грабли=== | ====странные грабли==== | ||
* Если у нас root на raid под evms, то lilo не хочет ставить загрузчик ни на что, кроме raid (кажется, evms делает какое-то полусломанное состояние dm-устройств). Видимо из-за этого же raid под evms не виден ни в hal ни в /dev/disk/*, blkid его как-то тоже странно понимает. | * Если у нас root на raid под evms, то lilo не хочет ставить загрузчик ни на что, кроме raid (кажется, evms делает какое-то полусломанное состояние dm-устройств). Видимо из-за этого же raid под evms не виден ни в hal ни в /dev/disk/*, blkid его как-то тоже странно понимает. | ||
* hal не может определить id и flags и для некоторых разделов | * hal не может определить id и flags и для некоторых разделов | ||
====не забыть==== | |||
* права доступа lilo.conf и tmp-файла - 0600 |
Версия от 14:46, 30 октября 2008
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()
Простой интерфейс
- Варианты установки загрузчика:
- все жесткие диски
- раздел, на котором находится /boot
- (!) раздел на который ставится загрузчик в существующем lilo.conf (если отличается от предыдущих пунктов)
- Варианты загрузки -- неизменный список!
- combobox "Загружать по умолчанию"
- combobox "Время ожидания"
- кнопки "Применить" "Режим эксперта"
М.б пока не показывать никакие варианты кроме root on raid в инсталяторе?.. (на все остальное lilo ругается из-за кривого состояния evms+dm+raid)
Политика работы с секциями
В начале работы производится поиск других ОС. Кроме того, существует текущая конфигурация с какими-то своими секциями.
- В экспертном интерфейсе показываются секции из конфигурационного файла, с возможностью добавлять и удалять вручную. Список найденных ОС никак не используется
- В простом интерфейсе показывается список секций из конфигурационного файла + непересекающиеся с ним по именам устройств секции для найденных ОС. Checkbox'ами отмечено то, что включено в текущую конфигурацию. При генерации этого слитого списка происходит умная расстановка чисел в названия автоматически определенных секций (все имена должны быть уникальны).
Защита имен устройств
Что-то типа такого: /dev/sda <-> /dev/disk/by-id/scsi-SATA_ST3250820AS_5QE2FCJP
Видимо, надо выполнять преобразование при сборке/разборке lilo.conf. Чтоб в простом и экспертном интерфейсе мы оперировали с /dev/sda, а в lilo.conf (и в режиме редактирования 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)?
(сейчас все сделано немного не так...)
Расстановка bootable-флагов
- Если загрузчик ставится на primary-раздел и на диске нет ни одного bootable-раздела -- ставлю флаг на этот раздел
- Если загрузчик ставится на extended-раздел или в MBR и на диске нет ни одного bootable-раздела -- ставлю флаг на первый раздел диска
- Если загрузчик ставится на raid -- произвожу эти действия для каждого из элементов raid'a.
Существующий код меня вполне устраивает.
странные грабли
- Если у нас root на raid под evms, то lilo не хочет ставить загрузчик ни на что, кроме raid (кажется, evms делает какое-то полусломанное состояние dm-устройств). Видимо из-за этого же raid под evms не виден ни в hal ни в /dev/disk/*, blkid его как-то тоже странно понимает.
- hal не может определить id и flags и для некоторых разделов
не забыть
- права доступа lilo.conf и tmp-файла - 0600