Трохи теорії [ред]
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, а при пересоздании файлу його розташування практично завжди змінюється.