Встановлення завантажувача Grub. Як зробити завантаження Windows першою в Grub Установка Boot Repair в Ubuntu

Оригінал: How To Repair Grub Boot Loader On Ubuntu Linux 16.04 /15.10 / 15.04
Автор: Aun
Дата публікації: 21 червня 2016 року
Переклад: А. Кривошей
Дата перекладу: жовтень 2016 р.

Grub (GRand Unified Bootloader) – завантажувач за замовчуванням для більшості систем Linux/Unix. Він дозволяє завантажувати різні операційні системи (ви можете встановлювати кілька систем на свій комп'ютер) або завантажувати різні версії ядра, якщо ви працюєте в Linux. При будь-якому пошкодженні цієї програми ви отримаєте повідомлення про помилки в процесі завантаження, і в результаті, швидше за все, не зможете завантажити свою операційну систему. Як правило, єдиним способом відновлення нормальної роботи у такому випадку є відновлення або переустановка системного завантажувача Grub. У разі правильних дій ця процедура дозволяє уникнути втрати даних. Сьогодні ми навчимося відновлювати/перевстановлювати завантажувач Grub в системі Ubuntu. Описувані далі дії виконували в Ubuntu 16.04, але повинні також працювати в будь-яких свіжих версіях Ubuntu. Для виконання нашого завдання ми будемо використовувати добре відому утиліту "Boot Repair".

Установка Boot Repair в Ubuntu

Boot Repair найчастіше використовується для виправлення помилок, пов'язаних із завантажувачем Grub. Спочатку необхідно завантажити комп'ютер з Live CD/DVD/USB для Ubuntu (якщо ви шукаєте спосіб відновлення Grub, значить з великою ймовірністю ви вже не можете завантажити свою встановлену операційну систему).

$ sudo add-apt-repository ppa:yannubuntu/boot-repair

Після додавання PPA оновіть список пакетів:

$ sudo apt-get update

Тепер ви можете встановити Boot Repair:

$ sudo apt-get install -y boot-repair

Після успішного завершення інсталяції запустіть Boot Repair з Applications > Boot Repair:

Використання Boot Repair для виправлення помилок Grub

Після запуску Boot Repair ви побачите стартове вікно програми:

Найперша опція (Recommended repair) може виправити помилки Grub, клацніть її, і вона запустить процес відновлення/переустановки, показаний на скріншоті нижче.

Згідно з інструкціями, наведеними на скріншоті, відкрийте термінал і виконайте такі три команди:

Після завершення виконання цих команд натисніть “Forward”, щоб перейти до наступного етапу процесу відновлення. Ось що ви побачите на наступному етапі:

Відповідно до інструкцій виконайте наведені нижче три команди у правильному порядку. Під час цього етапу з'явиться вікно із запитом підтвердження видалення Grub 2, виберіть "Yes".

$ sudo dpkg --configure -a $ sudo apt-get install -fy $ sudo apt-get install -y --force-yes grub-pc linux-generic

Клацніть “Forward” після завершення процесу нижче скріншот наступного етапу.

Відповідно до інструкцій виконайте в терміналі наведену нижче команду та за запитом вкажіть жорсткий дискна який буде встановлено grub.

$ sudo apt-get install -y --force-yes grub-pc linux-generic

Тепер необхідно почекати пару хвилин для виконання необхідних операцій, і ви повинні побачити наведене нижче повідомлення:

Перезавантажте систему і ви повинні побачити меню робочого завантажувача.

Висновок

Непрацездатність Grub може бути викликана різними причинами, особливо якщо у вас встановлено кілька операційних систем, під час їх оновлення або встановлення можуть виникати різні помилки. Тому корисно мати під рукою таку відмінну і безкоштовну програмудля вирішення проблем із завантажувачем.

Ця стаття мала бути написана ще півроку тому, але все ніяк.

Йтиметься про те, як встановити ОС Linux другої ОС на нові ноутбуки з UEFI встановленою Windows. За умови, що звичайна установка не дає потрібного результату, а саме після коректної установки Лінукса "поряд" з Віндою все одно завантажується тільки ОС Windows.

Для початку, як стало традицією, поставимо всі крапки над Ё.

Проблема.

Маємо ноутбук (Можливо і десктоп, але автор мав справу лише з ноутбуком), на якому використовується UEFI і є встановлена ​​ОС Windows (швидше за все 8.1, хоча нині вже 10). Хочемо встановити на цей самий ноутбук ОС Linux (Підеться про Linux Mint, але для інших ситуація має бути аналогічною)другою операційною системою (з подвійним завантаженням: можливістю використовувати і Windows та Linux на вибір користувача). Встановлюємо Linux звичайним способом * (про який я теж колись напишу, але в Інтернетах подібних інструкцій повно), перезавантажуємося і виявляємо власне нашу проблему:

завжди завантажується вперта Вінда, ніякого Grub"а, ні натяку на якесь там подвійне завантаження.

*Насправді існує як мінімум дві важливі особливості для установки Linuxна комп'ютери із UEFI. 1) Перед встановленням у цьому самому UEFI необхідно вимкнути опцію безпечного завантаження – Security Boot Control (або щось схоже, залежить від версії UEFI). Інакше носій інформації з дистрибутивом Linux майже, напевно, не зможе запуститися. 2) Завантажувач (Grub) повинен бути встановлений на EFI \ ESP розділ, зазвичай має назву sda2, а не просто sda, якось було раніше, в епоху BIOS. Ця опція регулюється в процесі установки Лінукса, зазвичай десь у районі кроку розмітки диска.

Швидке рішення для щасливчиків.

Для початку спробуйте зайти до UEFI (кнопка F2 або DEL ДО старту Вінди). Там знайдіть розділ із зазначенням списку завантаження. У ньому мають бути елементи: як мінімум жорсткий диск та Windows Loader. Останній зазвичай має найвищий пріоритетзавантаження. Перегляньте інші елементи в цьому списку, якщо там є щось на зразок Ubuntu Loader(або щось інше, залежно від встановлюваного вами дистрибутива Linux) , то посміхаємося і махаємо виставляємо його найпріоритетнішим і перезавантажуємося. Після перезавантаження має з'явитися довгоочікуваний інтерфейс Grub із вибором ОС для завантаження.

Якщо ніяких інших "лоадерів" немає, то вам не пощастило, як і мені: ваш ноутбук продав душу корпорації Microsoft і не бажає бачити інші завантажувачі. Або, що куди менш імовірно, завантажувач Grub встановлено неправильно (читаємо примітки до попереднього розділу і робимо все по фен-шую).

Мат.частина та необхідні знання.

Про те, що таке UEFI та BIOS, навіщо вони потрібні. Про різницю між MBR та GPT, а також про їх зміст досить докладно описано . Повторяться не будемо. Даної інформації цілком вистачить для розуміння цієї статті.

Також від читача будуть потрібні базові знання установки ОС Linux. Читаємо десь там же.

Ще потрібні будуть базові навички володіння даною ОС, зокрема керуванням файловою системою за допомогою Midnight Commander(MC) ( огляд основних можливостей та команд) і найази роботи в консолі Linux (для Ubuntu-подібних лінуксів гарна інструкція для новачків).

Потрібно встановити MC (у тому ж Мятному Лінуксі його за замовчуванням немає), запустити його від імені рута (адміністратора), внести зміни до текстовий файлі виконати ще пару нескладних команд у консолі.

Якщо все це вам під силу і без наведених вище інструкцій - я радий за вас, можемо рухатися далі. Інструкції ці наведені про всяк випадок, щоб уникнути питань, у яких освячених.

Рішення.

Зауважте, що весь алгоритм побудований для ОС Linux Mint. В інших лінуксах (не засновані на Ubuntu або Debian)Назви каталогів та команди можуть дещо відрізнятися.

  1. Встановити Лінукс поряд з Windows, використовуючи для цього відповідну опцію в одному з перших кроків інсталяції або (якщо ця опція не з'явилася)розмітивши жорсткий диск належним чином (Заслуговує на окрему статтю, на убунту-вики про це теж вже написано).
  2. НЕ ПЕРЕЗАВАНТАЖУВАТИ комп'ютер після встановлення. Якщо перезавантажили - нічого страшного, просто знову доведеться завантажитися з live-cd\usb\dvd (Адже лінукс-то у вас не запускається?).
  3. Про всяк випадок у консолі виконати команду sudo update-grub(ввівши порожній пароль під час запиту).
  4. Відкрити консоль\термінал або іншими засобами (наприклад, за допомогою менеджера програм в Ubuntu\Linux Mint)встановити mc. У консолі (для систем з apt)це робиться таким чином: sudo apt-get install mc(Після чого буде потрібно введення пароля, нагадаю, в лайв-режимі пароля немає, просто тиснемо Enter і погоджуємося на установку).
  5. Запустити mc від імені рута: sudo mc (і знову порожній пароль, якщо запитає).
  6. Знайти у файловій системі наступний каталог: /boot/efi/EFI.
  7. Перейменувати каталог (комбінація ctrl+F6 в mc) Microsoft у щось інше, наприклад у Microsoft2.
  8. Створюємо новий каталог з ім'ям Microsoft (клавіша F7).
  9. Заходимо в щойно створений каталог Microsoft і частково створюємо всередині його ієрархію папок аналогічну старому Microsoft (тому що перейменували). У моєму випадку він мав таку структуру папок: /boot/потім купа папок і файл bootmgfw.efiпоряд з ними. Потрібно відтворити структуру папок до цього файлу. Тобто. все, що лежить поряд з ним – не потрібно, а все, що йде до нього (Тобто батьківські папки, сусідні з ними теж не потрібні)відтворюємо в нашій новій папці Microsoft. У моєму випадку потрібно створити тільки папку boot, підсумковий шлях до нового каталогу вийшов таким: /boot/efi/EFI/Microsoft/boot .
  10. Знаходимо в каталозі з кроку 6 папку з ім'ям нашого дистрибутива лінукса, у нашому випадку це ubuntu. Копіюємо (оригінали файлів і папку ubuntu про всяк випадок залишаємо, не завадять)всі файли з даної в папки до підсумкового каталогу, створеного на попередньому кроці /boot/efi/EFI/Microsoft/boot) .
  11. У файловій системі, що вийшла (у створеному на 9-му кроці каталозі та переміщених у нього на 10-му кроці файлах)знаходимо файл grubx.efiабо grubx64.efi (буде лише один із них: залежно від розрядності встановленого лінуксу). Перейменовуємо його в bootmgfw.efi .
  12. Знаходимо файл /boot/grub/grub.cfg. Відкриваємо його для редагування (клавіша F4). Усередині нього знаходимо (клавіша F7 викликає форму пошуку за текстом)слово "Microsoft" у контексті рядка, що починається з "chainloader" і замінюємо це слово (Має бути тільки одне входження і саме в рядку з "chainloader", так що не помилитеся)на назву каталогу, в який ми перейменували Microsoft на 7-му кроці (Тобто на Microsoft2 у нашому прикладі). Зберігаємо зміни у файлі (клавіша F2 – зберегти).

От і все. Виглядає дуже складно, але якщо виконувати все точно по кроках (які розписані максимально докладно!), то все вийде без будь-яких проблем. І, після перезавантаження та наступного завантаження вже з жорсткого диска (а не з лайв-носія)ми побачимо жаданий екран із меню вибору ОС. УРА товариші!

Що ми щойно зробили?

Пояснюю. Як видно, виробник вашого (і мого, у мене Acer якщо що)ноутбук продав душу Мелкософтам, як я вже говорив раніше. А саме, ноутбук на рівні UEFI не бажає завантажувати щось відмінне від файлу /boot/efi/EFI/Microsoft/boot bootmgfw.efi, в якому знаходиться завантажувач Windows. Ось така дискримінація!

Підмінивши файл грабівським, ми тим самим обдурили ноутбук і Майкрософт. Змусили вантажити наш улюблений Grub, замість злої та впертої вінди.

Що робити далі? + Запобіжні заходи при оновленнях.

Живіть і радійте. Але до тих пір, поки grub не захоче оновитися. Або ж, ви не захочете згрішити та оновити свою вінду

Спершу про оновлення Grub.

Справа в тому, що після оновлення Grub запускає команду update-grub, яка у створеній нами ієрархії папок не знаходить завантажувача Windows (з незрозумілих мені причин). І, тим самим, після оновлення grub та подальшого перезавантаження ПК у списку вибору ОС не буде шкідливою Windows (і поділом їй!). Вирішується це плутанно, але алгоритм знайомий

  1. Перейменовуйте папку Microsoft (в якій зараз файли від граба і лінукса) на щось тимчасове, наприклад у MicrosoftLinux.
  2. Стару добру папку Microsoft2 (в якій знаходиться завантажувач Windows), перейменовуєте просто Microsoft, повертаючи її тим самим в початковий стан.
  3. Виконуєте команду sudo update-grub.
  4. Повертаєте імена папок, надаючи їм вигляду з рішення. Тобто. MicrosoftLinux перейменовуємо назад на Microsoft, Microsoft назад на Microsoft2.
  5. Повторюємо крок номер 12 з рішення і знову радіємо Windows, що з'явилася в списку ОС при завантаженні комп'ютера.

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

Тепер про те, що потрібно знати, якщо ви зібралися оновити вінду .

Більшість оновлень Windowsпотребує перезавантаження. У мене Windows 8.1 після такого перезавантаження очікувано не зуміла завантажитись, бо не знайшла свого завантажувача за адресою /boot/EFI/Microsoft (Там же у нас тепер лінукс живе). Тому, обов'язково перед встановленням оновлення вінди - поверніть її завантажувач на місце. Тобто. у папку Microsoft у нашому прикладі. Так, після цього вся проблема повернеться, бо завантажуватиметься знову тільки вінда, але ж вдруге виконати алгоритм з рішення буде вже простіше?;)

Для вибору та запуску операційної системи під час завантаження комп'ютера використовується спеціалізована програма – завантажувач. Найпопулярніший завантажувач – Grub. При установці кількох операційних систем, наприклад, Linux поверх Windows, у меню завантажувача першою буде остання встановлена ​​ОС.

Це не викликає проблем у користувачів, які користуються Linux як основною системою, для них це навіть кращий варіант. Але якщо ви ще новачок, і хочете використовувати Linux другою системою, а Windows поки ще основний, доки не освоїться, то напевно захочете, щоб першою була Windows. У цій статті ми розглянемо, як зробити завантаження Windows першою в Grub. Розглянемо два способи: за допомогою програми Grub Customizer та вручну, через файли конфігурації завантажувача Grub.

Grub Customizer

Grub Customizer - це програма, яка дозволяє настроювати різні параметри завантажувача Grub. У тому числі і положення та черговість пунктів завантаження. Встановити програму можна з офіційних репозиторіїв. Наприклад, в Ubuntu потрібно використовувати ppa:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
$ sudo apt-get update
$ sudo apt-get install grub-customizer

Для запуску програми відкрийте термінал (Ctrl+Alt+T) та наберіть grub-customizer:

Для роботи програми потрібні права root, в деяких системах можливо доведеться використовувати таку команду:

gksu grub-customizer

Також програму можна запустити із головного меню. Головне вікно виглядає так:

Кілька секунд після запуску програма скануватиме встановлені операційні системи, потім у цьому вікні ми зможемо перенести завантаження Windows на перше місце. Для цього клацніть на потрібному пункті правою кнопкою, щоб відкрилося контекстне меню:

У меню виберіть пункт Перемістити вгору. Цю дію потрібно буде повторити кілька разів, доки Windows не буде першою у списку. Тепер буде завантажуватися windows за замовчуванням grub.

Якщо потім ви захочете опустити Windows назад униз, є зворотна дія - Перемістити вниз.

Щоб зберегти налаштування, просто натисніть кнопку Зберегти. Готово. Можете перезавантажувати комп'ютер та дивитися що вийшло.

Але я хочу торкнутися ще пари налаштувань, які можуть бути корисними. Замість того, щоб робити завантаження Windows першою в Grub, можна змінити пункт, який запускається за замовчуванням. Перейдіть на вкладку Основні налаштування:

Тут для вибору стандартного пункту, який використовується за замовчуванням, є список Задіяти:

Крім того, можна завантажувати за замовчуванням останню завантажену ОС, для цього є галочка:

Зміна порядку завантаження Grub через термінал

Як я і обіцяв, тепер розглянемо, як зробити завантаження WIndows першою в Grub за допомогою конфігураційних файлів. Конфігурація Grub знаходиться у файлі /boot/grub/grub.cfg.

gksu gedit /boot/grub/grub.cfg

Як правило, рядки меню виглядають так:

menuentry ім'я_пункту --опції (
...

Наприклад: Windows:

menuentry "Windows 8 (loader) (on /dev/sda1)" --class windows --class os $menuentry_id_option "osprob
er-chain-FC324E26324DE66C" (
....

Тепер щоб змінити порядок пунктів меню достатньо вирізати все до зворотної дужки, що закриває, разом з цим рядком, і вставити перед усіма іншими пунктами. Потім можна зберегти файл та готове. Перезавантажуйте та дивіться. Завантаження Windows виконується за замовчуванням. Тільки мінусом цього способу є те, що при оновленні конфігурації Grub усі налаштування зіб'ються.

Аналогічно тому, як ми налаштовували пункт, що завантажується за замовчуванням у Grub Customizer, це можна зробити і в терміналі.

Відкрийте файл /etc/default/grub.

gksu gedit /etc/default/grub

Тут нас цікавить рядок:

Замініть 0, на потрібний пункт для завантаження, замість цифри можна вказати ім'я пункту, наприклад:

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

Переглянути доступні пункти завантаження не відкриваючи файл конфігурації можна командою:

sudo grep menuentry /boot/grub/grub.cfg

Ще можна налаштувати завантаження останньої завантаженої системи, для цього додайте рядок

GRUB_SAVEDEFAULT=true

А в GRUB_DEFAULT вкажіть saved:

GRUB_DEFAULT=saved

Очевидним плюсом цього є те, що налаштування під час оновлення конфігурації Grub не зіб'ються, оскільки під час оновлення інформація береться з цього файлу. Тепер давайте оновимо конфігурацію та збережемо налаштування командою:

Не у всіх системах працює такий варіант, тому можна використовувати іншу команду:

grub2-mkconfig -o /boot/grub/grub.cfg

От і все. Тепер ви знаєте, як зробити завантаження Windows першою в Grub. Але подану в цій статті інформацію можна використовувати з ширшою метою. Вона буде корисна не тільки для Windows, але й для будь-яких інших кількох систем, черговістю завантаження яких потрібно керувати.

Схожі записи:


Цей підручник допоможе вам виконати установку Ubuntu 16.10і Ubuntu 16.04у мультизавантаженні з операційною системою Microsoft на машинах, що поставляються з попередньо встановленою Windows 10 .

Для нової установки Ubuntu 16.04 / 16.10, прочитайте наш Посібник зі встановлення Ubuntu 16.04 Desktop та

Це керівництво припускає, що машина поставляється із попередньо встановленою Windows 10або більше старої версії Microsoft Windows, такі як Windows 8.1або 8 .

Якщо ваше обладнання використовує UEFI, то ви повинні змінити EFIналаштування та вимкнути функцію безпечного завантаження.

Якщо ваш комп'ютер не має іншої встановленої операційної системи, і ви плануєте використовувати тільки варіант з Windows, поряд з Ubuntu 16.04 / 16.10, ви повинні спочатку встановити Microsoft Windows, а потім розпочати інсталяцію .

У даному конкретному випадку, по кроках установки WindowsПри форматуванні жорсткого диска ви повинні виділити вільний простір на диску не менше 20 ГБ, щоб використовувати його в подальшому як розділ для встановлення Ubuntu.

Вимоги

Завантажити ISO образ Ubuntu 16.04і Ubuntu 16.10відповідно до архітектури системи, використовуючи наступне посилання:

Крок 1: Підготовка Windows для машини з подвійним завантаженням

1. Перше, про що вам потрібно подбати, це створити вільний простір на жорсткому диску комп'ютера, якщо система буде встановлена ​​на одному розділі.

Увійдіть у вашу машину Windows, за допомогою облікового записуадміністратора та правою кнопкою миші на меню Пуск-> Командна строка(Admin), щоб увійти до командного рядка Windows.

2. Відкрийте утиліту Управління дисками. Звідси клацніть правою кнопкою миші в розділі C: і виберіть Стиснути том, щоб змінити розмір розділу.

C: \Windows\system32\>diskmgmt.msc

3. Щоб зменшити простір на C: введіть значення, щоб зменшити MB (використання щонайменше, 20000 MBв залежності від розміру розділу C:) та натисніть клавішу Шрінк, щоб почати змінювати розмір розділу, як показано нижче.

Після того, як простір було змінено, ви побачите новий незайнятий простір на жорсткому диску. Залишіть його за замовчуванням і перезавантажте комп'ютер для того, щоб розпочати встановлення Ubuntu 16.04.

Крок 2: Установка Ubuntu 16.04 з Windows

4. Тепер настав час встановити Ubuntu 16.04. Перейдіть за посиланням на початку статті та скачайте образ ISOUbuntu Desktop 16.04.

Запишіть образ на DVD або створіть завантажувальну флешку USBза допомогою утиліти, такі як Universal USB Installer(BIOS сумісний) or Rufus(UEFI сумісний).

Помістіть флешку USB або DVD у дисковод, перезавантажте машину та вкажіть у BIOS/UEFIдля завантаження з DVD/USB, натиснувши спеціальну функціональну клавішу (зазвичай F12 , F10або F2залежно від технічних характеристикпостачальника).

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

5. Після того, як завантажувальний носій завершить завантаження в оперативну пам'ятьви повністю працюєте з функціональною системою Ubuntu.

Натисніть на другий значок зверху, встановити Ubuntu 16.04 LTS, запуститься утиліта установки. Виберіть мову, якою ви бажаєте виконати інсталяцію, і натисніть кнопку Продовжити.

7. Тепер настав час, щоб вибрати тип установки. Ви можете встановити Ubuntuразом з Windows Boot Manager, варіант, який автоматично піклуватиметься про всі кроки розділів.

Використовуйте цю опцію, якщо вам не потрібна персоналізована схема розділів. У разі, якщо ви хочете, макет користувача розділу, перевірте щось щеваріант і натисніть на Продовжитикнопку, щоб йти далі.

Опція Erase дискаі встановити Ubuntu слід уникати мультизавантаження, тому що є потенційно небезпечним і витре ваш диск.

8. На цьому кроці ми створимо наш макет розділу для користувача Ubuntu 16.04. У цьому посібнику рекомендується створити два розділи, один для root, а інший для home і немає розділу для swap (використовувати розділ підкачки, тільки якщо у вас є обмежені ресурси ОЗУ або ви використовуєте швидкий SSD).

Щоб створити перший розділ, розділ root , виберіть вільний простір (вільний простір від Windows, створений раніше) і натисніть + іконку нижче. У розділі настройок використовуйте наступну конфігурацію та натисніть кнопку OK, щоб застосувати зміни:

  1. Розмір = принаймні 20000 MB
  2. Тип нового розділу = Primary
  3. Місце для нового розділу = Beginning
  4. EXT4
  5. Точка монтування = /

Створіть розділ home , використовуючи самі кроки, що й вище. Використовуйте всі доступні місця для розміру домашнього розділу. Параметри розділу мають виглядати так:

  1. Розмір = решта вільного простору
  2. Тип нового розділу = Primary
  3. Місце для нового розділу = Beginning
  4. Використати як = журналування файлової системи EXT4
  5. Точка монтування = /home

9. Після завершення, натисніть кнопку Install Now, щоб застосувати зміни на диск і розпочати процес встановлення.

З'явиться спливаюче вікно, щоб повідомити вас про простір підкачування. Не звертайте уваги на попередження, натиснувши кнопку Продовжити.

Наступне нове спливаюче вікно запитає вас, чи згодні ви з фіксацією змін на диск. Натисніть Продовжити, щоб записати зміни на диск і процес встановлення буде запущено.

10. На наступному екрані налаштуйте у вашій установці місто, поряд на карті. Далі натисніть Продовжити.

11. Потім оберіть розкладку клавіатурита натисніть кнопку Продовжити.

12. Введіть ім'я користувача та пароль для адміністративного облікового запису SUDO, введіть описове ім'я для комп'ютера та натисніть Продовжити, щоб завершити інсталяцію.

Це все налаштування, необхідні для налаштування установки Ubuntu 16.04. З цього моменту процес установки буде запускатись автоматично, поки він не дійде до кінця.

13. Після того, як процес установки досягне кінця, натисніть на кнопку перезавантаження зараз, щоб завершити інсталяцію.

Машина буде перезавантажена в меню Grubде протягом десяти секунд, вам буде представлений вибір, яку ОС ви хочете використовувати в даний момент: Ubuntu 16.04або Microsoft Windows .

Розділи доступу до Windows з Ubuntu 16.04

Це все! У випадку, якщо вам потрібно перейти назад на ОС Windows, просто перезавантажте комп'ютер і виберіть меню Grub OS Windows.

Оригінал: GRUB 2: Heal your bootloader
Автор: Mayank Sharma
Дата публікації: 10 вересня 2015 р.
Переклад: А. Панін
Дата перекладу: 16 грудня 2015 р.

Існує не так багато речей, які можуть дратувати настільки сильно, як дратує непрацездатність системного завантажувача. Саме тому ми будемо вчитися використовувати максимально можливості системного завантажувача GRUB 2, підтримуючи його в робочому стані.

Для чого це потрібно?

    GRUB 2 є найпопулярнішим системним завантажувачем, який використовується практично в кожному дистрибутиві Linux.

    Системний завантажувач є важливим програмним компонентом, який може працювати некоректно в ряді випадків.

    GRUB 2 є розширюваним та гнучким системним завантажувачем, що підтримує безліч параметрів конфігурації.


Системний завантажувач Linux під назвою GRUB 2 є якісним та гнучким програмним компонентом. Хоча цей системний завантажувач не є єдиним системним завантажувачем, що підтримує Linux, він є найбільш популярним і використовується практично у всіх широко відомих дистрибутивах. Процес функціонування системного завантажувача GRUB 2 можна розділити на дві фази. По-перше, він виводить меню з назвами всіх встановлених на комп'ютері операційних систем і дозволяє вибрати одну з них. По-друге, він завантажує ядро ​​Linux у разі вибору операційної системи на основі відповідного ядра за допомогою меню завантаження.

Очевидно, що при використанні операційної системи на основі ядра Linux ви просто не зможете обійтися без завантажувача. При цьому системний завантажувач є чи не найзагадковішим компонентом дистрибутива Linux. У рамках цього посібника ми познайомимо вас із деякими з можливостей даного системного завантажувача та навчимо вирішувати проблеми, пов'язані з його некоректним функціонуванням.

Найбільш важливим компонентом системного завантажувача GRUB 2 є набір з текстових файлів і кількох сценаріїв командної оболонки. Перший компонент даного набору, з яким варто познайомитися, розташований у директорії /etc/default/grub. Це текстовий файл, за допомогою якого ви можете встановлювати значення змінних конфігурації та інших параметрів меню GRUB 2 (зверніться до розділу "Установки користувача меню завантаження").

Іншою важливою директорією, пов'язаною з GRUB 2, є директорія /etc/grub.d. У цій директорії розташовані всі сценарії, що формують опис кожного з елементів меню. Імена цих сценаріїв повинні мати префікси, що складаються із двох цифр. Ці префікси призначені для встановлення порядку, в якому сценарії будуть виконуватися, а також порядку розташування відповідних елементів у меню GRUB 2. Насамперед здійснюється читання файлу 00_header , після чого відбувається розбір конфігураційного файлу /etc/default/grub . Після цього здійснюється формування елементів меню для ядер Linux поточної системи за допомогою сценарію 10_linux. Цей сценарій створює один звичайний елемент меню для завантаження для ядра Linux і один елемент меню для відновлення системи для цього ядра Linux з розділу /boot .

Далі виконуються сценарії пошуку інших операційних систем, такі, як 30_os-prober і 40_custom . Сценарій os-prober створює елементи меню інших ядер та інших операційних систем, які виявляються інших розділах жорстких дисків. Він здатний розпізнати встановлені системи Linux, Windows, BSD і Mac OS X. Якщо ви використовуєте занадто екзотичну для сценарію os-prober конфігурацію розділів жорсткого диска, що перешкоджає розпізнаванню встановленого дистрибутива, ви можете додати опис даного дистрибутива до сценарію 40_custom (зверніться до розділу " Користувацькі елементи меню завантаження").

GRUB 2 не вимагає ручного редагування конфігураційних файлів для зміни параметрів завантаження системи: замість цього він дозволяє генерувати файл конфігурації /boot/grub/grub.cfg за допомогою утиліти grub2-mkconfig . Дана утиліта дозволяє здійснювати розбір сценаріїв з директорії /etc/grub.d , а також конфігураційного файлу /etc/default/grub для автоматичного формування опису параметрів завантаження системи.

Відновлення працездатності системного завантажувача у графічному режимі

Переважна більшість проблем, пов'язаних із системним завантажувачем GRUB 2, може бути просто вирішена шляхом натискання єдиної кнопки програми Boot Repair. Ця витончена, проста програма має інтуїтивний інтерфейс користувача і дозволяє сканувати і розпізнавати різні типи дисків і схем дискових розділів, а також може з'ясовувати розташування і коректно ідентифікувати встановлені в рамках цих розділів операційні системи. Утиліта може працювати як на звичайних комп'ютерах із основними завантажувальними записами (Master Boot Record, MBR), так і на нових комп'ютерах із UEFI та таблицями розділів GUID (GUID Partition Table, GPT).

Найпростіший спосіб використання утиліти Boot Repair полягає у її встановленні в рамках Live-сесії дистрибутива Ubuntu. Запустіть live-версію дистрибутива Ubuntu на машині з непрацездатним системним завантажувачем та встановіть програму Boot Repair, в першу чергу додавши відповідний репозиторій PPA за допомогою команди:

Sudo add-apt-repository ppa:yannubuntu/Boot Repair

Після цього оновіть список репозиторіїв за допомогою команди:

Sudo apt-get update

Нарешті, ви можете встановити програму за допомогою команди:

Sudo apt-get install -y Boot Repair

Після закінчення процесу встановлення ви зможете запустити програму. Воно просканує ваш жорсткий диск перед відображенням інтерфейсу користувача, який складається з декількох кнопок. Для виконання запропонованих програмою дій ви можете просто натиснути на кнопку "Recommended Repair", яка дозволить виправити більшість проблем, пов'язаних із системним завантажувачем. Після відновлення вашого системного завантажувача утиліта виведе посилання, яке слід запам'ятати. При переході за цим посиланням ви зможете ознайомитись з детальною інформацієюпро ваші диски, включаючи їхні розділи, а також вміст важливих файлів конфігурації GRUB 2, таких як файли з директорії /etc/default/grub та файл /boot/grub/grub.cfg . Якщо програмі не вдасться відновити ваш системний завантажувач, ви зможете розмістити це посилання на форумі вашого дистрибутива для того, щоб відвідувачі змогли ознайомитися зі схемою розділів вашого жорсткого диска та дати корисні поради.

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

Проблеми, пов'язані із системним завантажувачем GRUB 2, можуть привести систему до різних станів. Текст, який виводиться на екран замість меню системного завантажувача, вказує на стан системи. Якщо система перестала завантажуватися з виводом запрошення grub> , можна зробити висновок про те, що були завантажені модулі GRUB 2, але не вдалося завантажити файл конфігурації grub.cfg . Це запрошення виводиться у повнофункціональній командній оболонці системного завантажувача, за допомогою якої ви можете виконати чимало дій, спрямованих на завантаження системи. Якщо ви бачите запрошення grub rescue> , то нескладно зробити висновок, що системний завантажувач не може виявити свої модулі, а також файли з описом параметрів завантаження системи. Однак, якщо на екрані комп'ютера виводиться лише слово "GRUB", можна зробити невтішний висновок про те, що системному завантажувачу не вдалося виявити навіть базову інформацію, яка зазвичай зберігається в основному завантажувальному записі.

Ви можете виправити ці неполадки GRUB 2, скориставшись або Live CD будь-якого дистрибутива, або командною оболонкою GRUB 2. Якщо вам пощастить, і ваш системний завантажувач виведе вітання grub> , ви зможете використовувати всю потужність вбудованої командної оболонки GRUB 2 для виправлення будь-яких помилок.

Наступні команди працюватимуть як у разі виведення запрошення grub>, так і у разі виведення запрошення grub rescue>. Команда set pager=1 дозволяє задіяти механізм прокручування тексту для запобігання його автоматичному прокручування. Також ви можете використовувати команду ls, яка дозволяє вивести список всіх видимих ​​GRUB 2 розділів жорсткого диска аналогічним чином:

Grub > ls (hd0) (hd0, msdos5) (hd0, msdos6) (hd1, msdos1)

Як ви бачите, ця команда дозволяє вивести інформацію про схему таблиці розділів жорсткого диска поряд з інформацією про розділи.

Крім того, ви можете використовувати команду ls по відношенню до кожного розділу жорсткого диска для пошуку розділу з вашою кореневою файловою системою:

Grub> ls (hd0,5)/ lost+found/ var/ etc/ media/ bin/ initrd.gz boot/ dev/ home/ selinux/ srv/ tmp/ vmlinuz

Ви можете відкинути ідентифікатор типу розділу msdos під час запису імені розділу. Також у тому випадку, якщо ви пропустите слеш в кінці імені розділу і виконайте, наприклад, таку команду, як ls (hd0,5) ви отримаєте інформацію про розділ, що включає дані про тип файлової системи, її загальний розмір і час останньої модифікації. Якщо на жорсткому диску створено кілька кореневих розділів, ви можете прочитати вміст файлу /etc/issue за допомогою команди cat з метою ідентифікації дистрибутива аналогічним чином: cat (hd0,5)/etc/issue .

Якщо припустити, що ви знайшли потрібну кореневу файлову систему в розділі (hd0,5), ви повинні переконатися, що дана файлова система містить директорію /boot/grub та образ ядра Linux з ім'ям, аналогічним vmlinuz-3.13.0-24- generic , який ви бажаєте завантажити. Тепер для завантаження системи вам залишається ввести такі команди:

Grub> set root=(hd0,5) grub> linux /boot/vmlinuz-3.13.0-24-generic root=/dev/sda5 grub> initrd /boot/initrd.img-3.13.0-24-generic

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

Введення даних рядків має завершуватися введенням після наступного вітання grub> команди boot , що ініціює завантаження зазначеної операційної системи силами GRUB 2.

Ваші дії повинні трохи відрізнятися, якщо ви зіткнетеся з вітанням grub rescue> . Так як системний завантажувач не зміг виявити і завантажити будь-який з необхідних модулівВам доведеться завантажити їх вручну:

Grub rescue > set root=(hd0,5) grub rescue > insmod (hd0,5)/boot/grub/normal.mod grub rescue > normal grub > insmod linux

Очевидно, що, як і раніше, після результативного використання команди ls для пошуку кореневого розділу Linux, вам доведеться відзначити цей розділ за допомогою команди set . Далі потрібно завантажити модуль normal , після чого буде здійснено повернення до стандартного режиму з вітанням grub> . Наступна команда дозволяє завантажити модуль linux у тому випадку, якщо він не був завантажений автоматично. Після завантаження цього модуля ви можете переступити до передачі системному завантажувачу інформації про розташування файлів образу ядра та початкового образу диска та ініціювати завантаження дистрибутива за допомогою команди boot.

Після успішного завантаження дистрибутива не варто забувати про необхідність повторної генерації файлу конфігурації GRUB 2 за допомогою команди:

Grub-mkconfig -o /boot/grub/grub.cfg

Вам також доведеться встановити копію системного завантажувача в основний завантажувальний запис за допомогою команди:

GRUB 2 та UEFI

Машини з прошивками UEFI (тобто практично всі машини, що продаються протягом кількох останніх років) додали новий рівень складності в процес діагностики проблем системного завантажувача GRUB 2. Незважаючи на те, що процедура відновлення працездатності системного завантажувача GRUB 2, встановленого на машині з прошивкою UEFI, не значно відрізняється від процедури відновлення працездатності цього ж завантажувача на машині без прошивки UEFI, нові версії прошивок вносяться різні зміни, які є причиною різних результатів процесу відновлення працездатності системного завантажувача.

У системах на основі UEFI вам не доведеться встановлювати будь-що в основний завантажувальний запис. Натомість ви повинні будете встановити завантажувач Linux з підтримкою EFI в системний розділ EFI (EFI System Partition, ESP) і вибрати цей завантажувач як використовуваний за замовчуванням за допомогою такого інструменту, як efibootmgr в Linux або bcdedit у Windows.

На даний момент системний завантажувач GRUB 2 повинен коректно встановлюватися в процесі встановлення будь-якого з популярних дистрибутивів Linux, що дозволяє останньому успішно співіснувати з ОС Windows 8. Однак, якщо ви отримаєте в результаті непрацездатний системний завантажувач, ви зможете відновити працездатність системи з за допомогою live-образу дистрибутива Linux. У процесі завантаження live-образу дистрибутива вам слід переконатися, що ви здійснюєте завантаження в режимі UEFI. Меню завантаження комп'ютера має містити по два елементи для кожного знімних носіїв - для завантаження у звичайному режимі та в режимі UEFI. Використовуйте останній режим для організації доступу до змінних EFI за допомогою файлів директорії /sys/firmware/efi/ .

З live-оточення слід змонтувати кореневу файлову систему невдало встановленого дистрибутива таким чином, як описано в цьому посібнику. Вам також доведеться змонтувати системний розділ EFI (ESP). Якщо припустити, що цей розділ відповідає файлу пристрою /dev/sda1 , ви можете змонтувати цей розділ за допомогою наступної команди:

Sudo mount /dev/sda1 /mnt/boot/efi

Після цього необхідно завантажити модуль ядра efivars за допомогою команди modprobe efivars перед створенням оточення chroot з кореневою файловою системою невдало встановленого дистрибутива таким чином, як описано в цьому посібнику.

Тепер у випадку, якщо ви використовуєте дистрибутив Fedora, ви можете перевстановити системний завантажувач за допомогою наступної команди:

Yum reinstall grub2-efi shim

Після неї слід виконати команду для створення нового файлу конфігурації системного завантажувача:

Grub2-mkconfig -o /boot/grub2/grub.cfg

Користувачі дистрибутива Ubuntu можуть виконати цю операцію за допомогою команди:

Apt-get install --reinstall grub-efi-amd64

Після відновлення системного завантажувача слід вийти з оточення chroot, відмонтувати всі змонтовані розділи жорсткого диска та перезавантажити комп'ютер, перейшовши до меню GRUB 2.

Для деактивації сценарію з директорії /etc/grub.d вам потрібно лише прибрати біт виконання, за допомогою команди, аналогічної команді chmod -x /etc/grub.d/20_memtest86+, яка дозволяє прибрати рядок "Memory Test" з меню завантаження

Дружино, де мій GRUB?

Позитивною рисою системного завантажувача GRUB 2 є можливість переустановки при кожній необхідності. Таким чином, якщо ви втратите системний завантажувач GRUB 2, наприклад, після того, як ОС Windows замінить його на свій власний завантажувач, ви зможете відновити GRUB 2, виконавши кілька операцій в live-оточенні. Якщо припустити, що ви встановили дистрибутив у розділ жорсткого диска, представлений файлом пристрою /dev/sda5, ви можете перевстановити системний завантажувач GRUB 2, в першу чергу створивши директорію для монтування кореневої файлової системи дистрибутива за допомогою команди:

Sudo mkdir -p /mnt/distro

Після цього слід змонтувати файлову систему із цього розділу за допомогою команди:

Mount /dev/sda5 /mnt/distro

Після цього ви зможете переустановити системний завантажувач GRUB 2 за допомогою команди:

Grub2-install --root-directory=/mnt/distro /dev/sda

Ця команда дозволить перезаписати інформацію в області основного завантажувального запису пристрою /dev/sda, що містить файлову систему встановленого дистрибутива Linux, а також такі файли системного завантажувача GRUB 2 як grubenv і device.map.

Існує ще одна проблема, яка часто виникає при експлуатації комп'ютерів з кількома встановленими дистрибутивами. При встановленні нового дистрибутива Linux його системний завантажувач повинен отримувати інформацію про вже встановлені дистрибутиви. У тому випадку, якщо він не отримує такої інформації, ви можете просто завантажити останній встановлений дистрибутив і виконати команду:

Grub2-mkconfig

Перед виконанням цієї команди слід переконатися, що розділи з кореневими файловими системами встановлених дистрибутивів, які у меню завантаження, змонтовані. Якщо дистрибутив, який ви бажаєте додати в меню завантаження, працює з файловими системами /root та /home, розташованими на окремих розділах жорсткого диска, перед виконанням команди grub2-mkconfig слід змонтувати лише файлову систему /root.

Хоча системний завантажувач GRUB 2 може визначати більшість дистрибутивів, спроба додавання в меню системного завантажувача запису для дистрибутива Fedora при роботі з дистрибутивом Ubuntu вимагає одного додаткового кроку. Якщо ви використовували стандартні налаштування в процесі встановлення дистрибутива Fedora, силами установщика будуть створені розділи LVM. У цьому випадку перед викликом сценарію os-prober з комплекту поставки системного завантажувача GRUB 2 для додавання дистрибутива Fedora в меню завантаження вам в першу чергу доведеться встановити драйвер lvm2 за допомогою системи керування пакетами програмного забезпечення дистрибутива, скориставшись аналогічною командою:

Sudo apt-get install lvm2

Швидке виправлення

Якщо виконання команди grub2-install не призводить до будь-яких позитивних змін і ви не можете завантажити дистрибутив Linux, вам доведеться повністю перевстановити та переналаштувати системний завантажувач. Для виконання цього завдання можна скористатися корисною утилітою chroot, яка дозволяє тимчасово замінити кореневу директорію live-оточення на кореневу директорію встановленої системи Linux, працездатність якої необхідно відновити. Ви можете використовувати для цього Live CD будь-якого дистрибутива Linux, на якому присутня утиліта chroot . Однак, ви повинні переконатися, що ви використовуєте Live CD для тієї ж архітектури центрального процесора, що і встановлений на жорсткому диску дистрибутив. Таким чином, якщо ви бажаєте використовувати утиліту chroot для відновлення працездатності 64-бітної встановленої системи, вам знадобиться Live CD для 64-бітних систем.

Після завантаження Live-оточення спочатку слід перевірити розділи жорсткого диска машини. Використовуйте fdisk -l для виведення списку всіх розділів жорсткого диска і з'ясуйте номер розділу, на якому встановлений системний завантажувач GRUB 2, працездатність якого ви бажаєте відновити.

Припустімо, що вам потрібно відновити працездатність системного завантажувача дистрибутива, встановленого на розділі жорсткого диска, представленого файлом пристрою /dev/sda5 . Відкрийте емулятор терміналу і змонтуйте цей розділ:

Sudo mount /dev/sda5 /mnt

Тепер вам доведеться змонтувати директорії, які мають бути доступні системному завантажувачу GRUB 2 для коректного виявлення інших встановлених на комп'ютері операційних систем:

$ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /dev/pts /mnt/dev/pts $ sudo mount --bind /proc /mnt/proc $ sudo mount --bind /sys /mnt /sys

Тепер ви можете залишити live-оточення і перейти в оточення встановленого на розділі, представленому файлом пристрою /dev/sda5, дистрибутива за допомогою утиліти chroot:

$ sudo chroot /mnt /bin/bash

Все готове для встановлення, перевірки та оновлення системного завантажувача GRUB 2. Як і раніше, для перевстановлення системного завантажувача слід використовувати команду:

Sudo grub2-install /dev/sda

Зважаючи на те, що команда grub2-install не зачіпає файл конфігурації grub.cfg , вам доведеться створити його вручну за допомогою наступної команди:

Sudo grub-mkconfig -o /boot/grub/grub.cfg

Ця послідовність команд має допомогти виправити проблеми системного завантажувача. Тепер на вашій машині буде встановлена ​​нова копія системного завантажувача GRUB 2 зі списком усіх встановлених на ній операційних систем та дистрибутивів. Перед тим, як перезавантажити комп'ютер, слід залишити оточення chroot і відмонтувати всі використані файлові системи в наступному порядку:

$ exit $ sudo umount /mnt/sys $ sudo umount /mnt/proc $ sudo umount /mnt/dev/pts $ sudo umount /mnt/dev $ sudo umount /mnt

Після цього ви можете безпечно перезавантажити машину, яка має знову повернутись під контроль системного завантажувача GRUB 2, що знаходиться під вашим повним контролем!

Настройки користувача меню завантаження

Системний завантажувач GRUB 2 використовує багато конфігураційних змінних. У цьому розділі описані деякі з цих змінних, які ви, швидше за все, захочете модифікувати в процесі розгляду вмісту конфігураційного файлу /etc/default/grub . Змінна GRUB_DEFAULT дозволяє вказати елемент меню завантаження, який буде вибрано за замовчуванням. як її значень можуть використовуватися числа, такі, як число 0, що відповідає першому елементу меню, а також рядок "saved" дозволяє автоматично вибирати елемент меню, використаний у процесі попереднього завантаження комп'ютера. Змінна GRUB_TIMEOUT дозволяє задати тривалість періоду очікування перед завантаженням за допомогою вибраного за замовчуванням елемента меню, а змінна GRUB_CMDLINE_LINUX дозволяє задати список параметрів, який передаватиметься кожному з ядер Linux при використанні відповідних елементів меню завантаження.

Якщо змінна GRUB_DISABLE_RECOVERY має значення true , елементи меню завантаження для відновлення системи не будуть генеруватися. Ці елементи дозволяють завантажувати дистрибутиви в режимі одного користувача, в якому ви можете використовувати будь-які доступні інструменти з інтерфейсом командного рядкавідновлення системи. Ще однією корисною змінною є змінна GRUB_GFXMODE , що дозволяє встановити роздільну здатність екрана, яке буде встановлено при показі меню завантаження. Як значення цієї змінної може використовуватися будь-який опис дозволу, який підтримується вашою графічною картою.

Елементи користувача меню завантаження

Якщо ви бажаєте додати елемент у меню системного завантажувача, ви повинні додати відповідний станс до сценарію з ім'ям 40_custom . Ви можете використовувати цей елемент меню завантаження, наприклад, для завантаження дистрибутива Linux, встановленого на знімному диску з інтерфейсом USB. Якщо припустити, що розділ з дистрибутивом на вашому знімному диску з інтерфейсом USB представлений файлом пристрою /dev/sdb1 , а файл образу ядра vmlinuz і файл initrd знаходяться в піддиректорії кореневої директорії (/), вам доведеться додати наступний станс до сценарію 40_custom:

Menuentry "Linux on USB" ( set root=(hd1,1) linux /vmlinuz root=/dev/sdb1 ro quiet splash

Для кращої сумісності можна використовувати ідентифікатор UUID розділу жорсткого диска замість ідентифікаторів пристрою та розділу таким чином:

Set root=UUID=54f22dd7-eabe

Скористайтеся командою sudo blkid для отримання всіх ідентифікаторів UUID, приєднаних до системи жорстких дисків та їх розділів. Аналогічно ви можете додати в меню завантаження записи, що відповідають будь-яким ідентифікованим сценарієм os-prober, але встановленим на жорсткому диску дистрибутивам, звичайно ж, якщо ви знаєте про те, на якому диску встановлено кожен з дистрибутивів і яким шляхом знаходяться його файли образу ядра та образу початкової файлової системи.


Top