Вход:  Пароль:  
FreeSource: ТЗ/AltLinux/КакимДолженБытьУстановщикСистемы/ВосстановлениеЗагрузчика ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия ТЗ/AltLinux/КакимДолженБытьУстановщикСистемы/ВосстановлениеЗагрузчика за 2008-02-20 01:10:26..

Восстановление загрузчика


Эта задача является частным случаем задачи, требующей поиска установленной системы во время загрузки консоли восстановления. Ряд вопросов связанных с этим указан на странице Каким должен быть установщик системы, а также в обсуждении [Comm] Rescue в М2.4 и Ц3.0. Текущий алгоритм восстановления представлен на ряде ресурсов ( школьный линукс, центр свободного ПО в образовании, рассылка сообщества) и выглядит так:

  1. загрузиться в восстановление системы с установочного dvd, дождаться приглашения консоли и запустить скрипт
  2. mount-system (он найдет и смонтирует корень линукс-системы автоматом и сообщит об этом (например в /mnt/system1 – это надо смотреть ))
  3. mount /proc /mnt/system1/proc -o bind
  4. mount /dev /mnt/system1/dev -o bind
  5. chroot /mnt/system1
  6. vim /etc/lilo.conf (теперь можно поредактировать /etc/lilo.conf, во всяком случае, его надо посмотреть, для выхода из редактора нажимайте по очереди :q). Если vim для вас сложен, попробуйте mc или сразу mcedit /etc/lilo.conf
  7. lilo (после чего можно перезагружаться).

Если вкратце это может прозвучать и так:


Такой подход волей не волей интерсно увидеть, работающим в более адаптированном для пользователя виде. Основной компромисс, который решается выбором автоматического или полуавтоматического решения связан с выбором между возможностью быстро решить проблему и не получить «зависающей» консоли восстановления, в случае проблем на повреждённых файловых системах, которые эта консоль может попытаться подключить автоматически. Если Мастер 2.4 имел неосторожность восстановления с уклоном в пользу автоматического подключения, то, начиная с Компакта 3.0, этот режим сделан ручным. В Десктоп 4.0 сделана попытка полуавтоматического восстановления – для подключения дерева файловых систем, установленных на восстанавливаемом компьютере, имеется команда mount-system. Эта комада представляет собой скрипт проводящий поиск всех разделов с помощью средств evms и монтирующий деревья всех файловых систем по наличию файла fstab в найденном разделе. Деревья систем монтируются в каталоги /mnt/system1, /mnt/system2 и т.д.


В ТЗ на установщик ALT Linux уже прописан дополнительный метод загрузки восстановления консоли – «восстановление загрузчика системы (restore loader) – для восстановления загрузчика, запорченного другой системой». Тем не менее вопрос о способе поиска и подключения разделов остаётся открытым. Рядовому пользователю, практически не реально в случае возникновения проблемы, самостоятельно найти нужную информацию по сети, хотя бы потому, что для этого нужно загрузить систему, а кроме того знать, что искать. В этом плане можно выделить следующие этапы решения проблемы:

  1. Загрузиться в режиме восстановления (это самый лёгкий этап :));
  2. Найти имя устройства на которм находится корневая ФС или поручить её поиск спец. скрипту, если таких разделов окажется два или более, выбор всё равно делать придётся...
  3. Подключить, для выбранной еорневой ФС, необходимое дерево каталогов установленной системы (здесь даже не обязательно монтировать весь fstab – обычно достаточно только / и /boot, если он есть);
  4. Подключить /proc и /dev в смонтированную систему;
  5. Войти в смонтированную систему через смену текущей корневой ФС;
  6. Выполнить, если нужно, правку файла настроек загрузчика lilo.conf;
  7. Выполнить команду lilo.

В плане решения конкретных задач существует несколько уcтоявшихся проблем, автоматизация решения которых может оптимизирована:

  1. Проблемы порчи загрузочного сектора может быть решена без необходимости правки lilo.conf, в случае же одного корневого раздела в системе, может быть проведена в полностью автоматическом режиме
  2. Проблема удалённого или перенесённого файла ядра или initrd может быть решена выбором другого файла ядра в lilo.conf или его восстановления перед запуском lilo, в случае полной замены ядра и одного корневого раздела в системе, может быть решена установкой пакета с ядром в полностью автоматическом режиме

Многие специфичнвые проблемы вызванные крахом файловой системы на отдельном или коневом разделах трудно поддаются автоматическому восстановлению, поскольку обычно связаны с необходимостью предварительного восстановления данных на повреждённых носителях.


Рассматривая решение первых двух проблем можно говорить о полностью автоматическом восстановлении только в случае «стандартно установленных систем». Выбор неверного раздела может повлечь за собой ещё больший ряд проблем. В связи с этим решение о варианте ручного подхода к их решению оправдан. Тем не менее вариант упрощения работы по восстановлению можно найти если свести список решаемых проблем к выбору из ряда вариантов. Для этого можно добавить:

  1. Возможность ручного выбора устройства корневой ФС из списка предложенных, а также вариант автоматического её поиска и последующего выбора из найденных;
  2. Скрипты, вызываемые из меню, для выполнения типичных действий по восстановлению (восстановление загрузчика, переустановка ядра и т.д.);
  3. Возможность в любой момент выйти в консоль.

Предполагается, что такой вариант может стать достаточным компромиссом между польовательским удобством и безопасной загрузкой в минимальном режиме. Поскольку текущий полуавтоматический подход имеет ряд критичных моментов связанных с автоматическим сбором информации о системе после загрузки. Этот механизм стоит добавить в виде опционального варианта действия после загрузки, с возможностью автоматическго перенесения на внешний носитель. Это целесообразно поскольку этот механизм тоже может приводить к сбоям во время загрузки, что уже имело место быть на личном примере.


Хочется отметить, что всё вышеописанное рассматривалось только для восстановления загрузчика lilo, который по умолчанию устанавливается в ALT Linux.


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]