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

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


Эта задача является частным случаем использования задачи поиска установленной системы во время загрузки спасасательной системы. Ряд вопросов связанных с этим указан на странице Каким должен быть установщик системы, а также в обсуждении [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 и т.д.


Новый вариант (упомянут последний раз в рассылке Junior), который планируется ввести в следующем релизе школьного линукса, предполагает возможность сокращения рассмотренного алгоритма до вида:

  1. загрузиться в восстановление системы с установочного dvd, дождаться приглашения консоли и запустить скрипт
  2. mount-system (он найдет и смонтирует корень линукс-системы автоматом и сообщит об этом (например в /mnt/system1 – это надо смотреть ))
  3. mbrresc

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

  1. Загрузиться в режиме восстановления (это самый лёгкий этап :));
  2. Выполнить скрипт mbrresc, который попытается найти, подключить и восстановить загрузочный сектор
  3. В случае сбоя, можно попытаться найти имя устройства на котором находится корневая ФС или поручить её поиск специальному скрипту mount-system. Но если таких разделов окажется два или более, выбор всё равно делать придётся...
  4. Снова попытаться выполнить скрипт mbrresc.

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

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

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


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

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

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


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


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