Відновлення завантажувального запису

Трохи теорії [ред]

DOS Partition Table [ред]

Завантаження операційної системи може знаходитися як в Master Boot Record (MBR), так і в boot record розділу. Якщо завантажувач знаходиться в BR розділу, цей розділ повинен бути позначений як активний, а в MBR повинен знаходитися стандартний завантажувач, який знаходить активний розділ і запускає наступний завантажувач звідти.

GPT [ред]

треба описати відмінності від DOS PT і, можливо, згадати відмінності BIOS від UEFI. де команда fixmbr непридатна

Рекомендовані засоби [ред]

Дії, описані в розділі «Відновлення завантаження при пошкодженні MBR», можна зробити з будь-якої ОС будь-якими наявними там засобами. Для дій, описаних в розділі «Підготовка до відновлення основного завантажувача» і далі потрібно будь-LiveCD з Linux, відповідний по архітектурі встановленої на відновлюваної системі (але x86_64 може бути застосований для i586). У багатьох образах ALT Linux присутня можливість завантажитися в режимі відновлення (rescue). Як правило, в цих образах присутні дві корисні утиліти - fixmbr і mount-system. Крім того, існує спеціалізований LiveCD ALT Linux Rescue.

Відновлення завантаження при пошкодженні MBR [ред]

Якщо основний завантажувач розташовувався в BR і не був пошкоджений, а проблема тільки з MBR і / або збиті настройки активного розділу, виправити це можна за допомогою fixmbr або lilo. Якщо ж пошкоджений основний завантажувач, можна переходити відразу до пункту «Відновлення основного завантажувача».

за допомогою fixmbr [ред]

Можна спробувати скористатися утилітою fixmbr з rescue-режиму:

без параметрів. У більшості випадків цього достатньо - програма знайде перший розділ, що містить завантажувач, зробить його активним і відновить MBR.

за допомогою lilo [ред]

Можна також скористатися lilo. Це не тільки завантажувач, але і утиліта для маніпулювання MBR і активними розділами. Припустимо, ми знаємо, що у нас завантажувач (не обов'язково LILO) знаходиться на розділі 2.

Відновлювати стандартний завантажувач в MBR:

Прибираємо все мітки активних розділів (якщо єдина мітка переїхала або якщо міток стало більше однієї):

Робимо активним розділ 2:

Відновлення основного завантажувача [ред]

Основний завантажувач найчастіше буває пошкоджений на комп'ютерах з декількома операційними системами, якщо він розташований в MBR. Це пов'язано з тим, що деякі ОС переписують вміст MBR при установці, що унеможливлює завантаження інших ОС. Слід розуміти, що повернення старого завантажувача, в свою чергу, може зробити недоступною установку тієї самої «інший ОС». Інший спосіб пошкодити завантажувач - пересунути розділи. Наприклад, lilo вантажить ядро ​​і initrd, орієнтуючись на абсолютне розташування файлів на носії, заданий посекторного при установці завантажувача.

Процес складається з двох етапів. Перший - це збір дерева файлової системи в довільній точці монтування та виконання команди chroot в цю точку. В результаті цієї операції виходить робоча (раніше недоступна) система. Треба зауважити, що відновлення завантажувача - не єдине застосування chroot. Другий етап - власне роботи по перевстановлення (з можливим переконфігуруванні) потрібного завантажувача, що виконуються в тимчасово реанімованої за допомогою chroot системі.

Підготовка chroot [ред]

Завантажити з інсталяційного диска ALT Linux в режимі «Rescue». Після завантаження ми отримуємо термінал з командною оболонкою від імені суперкористувача root.

В автоматичному режимі [ред]

Скористайтеся утилітою mount-system. знаходиться, як і fixmbr. в rescue-образі. Як і fixmbr. вона запускається без параметрів. У разі успішного виконання досить буде виконати chroot в зазначену точку монтування (для першої виявленої системи це може бути / mnt / system1). В іншому випадку буде потрібно зробити те ж саме в ручному режимі.

В ручному режимі [ред]

Ручна підготовка chroot складається з наступних етапів:

  • Уточнюємо інформацію про те, на якому пристрої є кореневий розділ. Для цього можна скористатися утилітою fdisk (або своєю пам'яттю, або заздалегідь заготовленими записами). Якщо буде виявлено кілька розділів c Linux, можливо, доведеться перевіряти їх поспіль. Для визначеності будемо вважати, що кореневий розділ знаходиться на / dev / sda1
  • Монтуємо кореневий розділ з жорсткого диска до файлової системи RescueCD:
  • Якщо є окремий розділ з / boot. монтуємо його в точку / mnt / boot
  • Переконуємося, що змонтували дійсно той розділ

Якщо інші розділи не потрібні (для lilo кореневого розділу та / boot досить, наприклад), продовжуємо; якщо потрібні, повторюємо для інших розділів.

  • Монтуємо віртуальні ФС (потрібні для установки завантажувача або інших завдань по прямій роботі з диском):
  • Виконуємо chroot в зібрану ФС:

Відновлення [ред]

lilo [ред]

Відновлення lilo, як правило, зводиться до запуску команди lilo без параметрів (іноді потрібна попередня правка файлу /etc/lilo.conf):

Після того як проведено підготовчі дії і зроблений сhroot, необхідно перегенеріровать конфиг grub:

після чого, якщо використовується звичайний BIOS-режим, необхідно перевстановити GRUB в MBR:

якщо ж використовується EFI-режим, може знадобитися відновити завантажувач в ESP-розділі (EFI System Partition), який монтується в / boot / efi.

Завантажувач grub володіє дуже широкими можливостями. Ймовірно, не зайвим буде почитати про нього заздалегідь.

Зауваження [ред]

Якщо змінилася таблиця розділів [ред]

Якщо проблеми з завантажувачем - результат переміщення / об'єднання розділів, то до безпосереднього відновлення завантажувача буде потрібно скорегувати налаштування завантажувача. Крім цього, треба буде поправити / etc / fstab (для нього порядок виправлення неважливий).

Приклад для LILO (для GRUB дивитися в його описі).

Припустимо, у вас був розділ sda3 з Windows, а став розділ 1. У /etc/lilo.conf треба замінити

І відповідно прибрати / поправити в / etc / fstab рядок виду

Якщо у Вас в конфігурації завантажувача і в fstab використовуються UUID, то для змінених розділів, нові UUID можна подивитися командою blkid. Не забудьте про параметр ядра resume, де вказується розділ swap.

Якщо потрібні зміни в initrd [ред]

Безпосередньо до відновлення завантажувального запису це не відноситься, але може мати відношення до процесу завантаження при заміні контролера HDD або інших проблемах, які потребують змін у initrd. В ALT Linux, починаючи з дистрибутивів, заснованих на гілках p5 / 5.1, використовується утиліта make-initrd. Вам слід дізнатися, яке ядро ​​встановлено за замовчуванням (дивитися в конфігурації завантажувача), і пересобрать відповідний initrd до виконання процедури «Відновлення завантажувача». У більшості випадків буде достатньо простого запуску make-initrd із зазначенням версії ядра, так як склад модулів буде визначений автоматично виходячи із завантажених на даний момент. Якщо це не допоможе, доведеться вивчити make-initrd більш докладно.

У прикладі видно набори модулів для чотирьох ядер. Припустимо, за замовчуванням використовується 3.16.6-un-def-alt1. Команда на перезбирання буде виглядати так:

У разі Lilo треба оновити конфігурацію завантажувача (просто запустити lilo), так як Lilo звертається до інформації в initrd минаючи файлову систему і повинен знати про розташування даних на HDD, а при пересоздании файлу його розташування практично завжди змінюється.

Схожі статті