Завантажувач операційної системи grub: настройка, опис. Установка і відновлення grub

Не один десяток нових користувачів операційних систем,

відмінних від Windows, з неабиякою часткою сумніву і скептицизму зустрічають фразу "початковий завантажувач" у наш час. І тому є абсолютно логічна причина: більшість новачків до свого переходу до використання інших, менш поширених на ринку операційних систем, в повсякденному житті використовували ту ж саму Windows. У ній цей завантажувач реалізований максимально примітивно і прозоро. І хоч це в деякій мірі додає зручності для рядового користувача, однак разом з тим і урізує функціональні можливості вже і без того найбільш популярною і універсальної ОС. Тому всім тим, хто вирішив звернути увагу на інші продукти IT-індустрії, неодмінно слід ознайомитися з універсальним загрузчиком GRU, що в подальшому відчутно допоможе в роботі відразу з декількома ОС, встановлених на одному комп`ютері.

Універсальний інструмент для не універсальні систем

Перш за все почнемо розбиратися з найменування GNU GRUB. Ця абревіатура з англійської GRand Unified Bootloader перекладається як "головний уніфікований завантажувач". Його творцем є некомерційна організація "проект GNU", Яка прославилася в IT-сфері своїми вільно поширюваним програмним забезпеченням. Сам же GRUB за своєю суттю представляє меню вибору завантаження потрібної користувачеві ОС з цілого переліку підтримуваних систем:

  • Linux.
  • FreeBSD.
  • Solaris.

При цьому GRUB зможе працювати навіть з Windows. Однак для запуску подібних систем, які не підтримуються безпосередньо даними початковим завантажувачем, є свої особливі нюанси, які ми вивчимо трохи пізніше в усіх деталях і подробицях.

Відео: 4 способи відновлення завантажувача Grub 2

Шлях розвитку технології

Безперервно зростаюча популярність GRUB була основна причина, що спонукає неухильно розвивати і вдосконалювати завантажувач надалі. Найперша версія завантажувача, що іменувалися як GRUB Legacy, до сих пір відмінно справляється з завданнями уніфікованого завантажувача для UNIX-подібних систем. Широка підтримка серйозних компаній (на зразок RedHat і Novell) і серверних дистрибутивів забезпечили їй ще тривалий термін існування в цілому.

grub install

Однак навіть ця обставина зовсім ніяк не вплинуло на подальше вдосконалення завантажувача, завдяки чому користувачі отримали останню на даний момент часу версію GRUB 2. Будучи переписані з чистою рядки, GRUB 2 чи володіє хоч чимось загальним із застарілим GRUB Legacy, крім самої назви . Сьогодні, будучи за замовчуванням використовується з версії 9.10 операційній системі Ubuntu, GRUB другої ревізії завдяки своїй більш досконалої і потужною структурою повністю зупинив якусь подальшу розробку вже і так відмінно себе зарекомендувала в минулому Legacy.

grub 2

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

  • Скриптова підтримка (циклів, умов, змінних і функцій).
  • графічний інтерфейс додає можливість гнучких змін зовнішнього вигляду завантажувача під індивідуальний смак користувача (GRUB 2 може бути легко змінений від чорно-білої таблиці до стильного різнобарвного вікна).
  • Можливість динамічною подгрузки модулів. Це дозволить розширювати функціонал нема на складальному етапі, а безпосередньо під час виконання.
  • Сумісність з різними архітектурами.
  • Додана підтримка завантаження Mac OS.
  • Додана стабільна робота з такими файловими системами, як: FAT16, FAT32, NTFS, будь-яка версія ext, XFS і ISO
  • Багатоплатформовий тип установки дасть можливість інсталювати GRUB2 з іншого архітектури
  • Введення безпечного режиму в разі виникнення проблемних ситуацій.
  • Виправлені помилки від старої GRUB Legacy, які спочатку не могли бути Пофіксено через вимоги зворотної сумісності.

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

Відео: Відео # 34. MBR, GRUB, перевстановлення Windows і видалення Linux

Всі чули про LILO?

Зрозуміло, не єдиним лише GRUB`ом обмежується вибір користувачів серед загрузчиков ОС. Подібним аналогом є LILO - початковий завантажувач Linux (LInux LOader), який до цих пір не втрачає повністю своєї актуальності. Разом із тим у користь GRUB слід врахувати кілька відмінних рис, якими прямий конкурент поки що похвалитися безумовно не може:

  • LILO підтримує лише 16 конфігурацій завантаження, коли GRUB має підтримку необмеженого числа таких конфігов.
  • GRUB може завантажуватися по локальній мережі, чого не скажеш про LILO.
  • Нарешті, у LILO немає того самого командного інтерактивного інтерфейсу, до зручності якого вже давно звикли користувачі останньої версії GRUB.

linux grub

Єдиною спільною рисою обох загрузчиков є необхідність щоразу компілювати всі внесені зміни в меню. Функція автоматичного збереження здавна була відсутня в фірмовому засобі завантаження Linux. GRUB 2 також не може похвалитися настільки зручною фичей. Але навіть з огляду на цей незручний для повсякденного використання нюанс, LILO за декількома пунктами програє своєму конкуренту, завдяки чому той отримує все більш широке поширення серед домашніх комп`ютерів користувачів.

Установка GRUB: всі нюанси і подробиці процесу

З самого початку переконайтеся, що у вас є або встановлена Ubuntu, або є її завантажувальний диск (LiveCD). Запустивши систему, необхідно викликати термінал сполучення клавіш Ctrl + Alt + F2, після чого прописати в ньому наступні команди:

- sudo add-apt-repository ppa: cjwatson / grub,

- sudo add-get update && sudo add-get install grub2,

- sudo update-grub2.

І навіть якщо у вас не встановлена Ubuntu, але є LiveCD, то процедура залишається одна і та ж з однієї лише крихітної різницею. Завантажившись саме з цього завантажувального диска, виберіть опцію "спробувати Ubuntu" - так ви запустите систему без будь-яких змін на своєму комп`ютері. Після цього продовжуйте встановлювати завантажувач GRUB по тій же схемі з етапу виклику терміналу.

Перевірити встановлену версію завантажувача можна командою grub-install -v, а також безпосередньо при самій завантаженні Ubuntu.

Алгоритм запуску GRUB

У міру завершення роботи GRUB Install завантажувач в першу чергу змінює код MBR на свій власний. MBR - це сектор, що містить головний завантажувальний запис (від англ. Master Boot Record), що містить в собі:

  • код основного завантажувача (446 байт);
  • таблицю розділів з описом як основних, так і вторинних розділів жорсткого диска (64 байта).

завантажувач grub

Через малого обсягу сектора MBR, запуск GRUB укладається в два умовні етапи:

  1. В MBR розміщується посилання до конфігураційного файлу (який може знаходитися в будь-якому жорсткому диску, на розсуд самого користувача). Саме по ній і буде визначатися весь завантажувальний етап, що починається на другому етапі.
  2. Їх конфігураційного файлу враховуються всі налаштування і дані, необхідні для роботи GRUB. Якщо ж на другому етапі конфігураційний файл не був знайдений, то процес завантаження буде припинений і користувачеві вже доведеться вручну вибирати завантажувальний конфігурацію з командного рядка.

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

Найбільш часто використовувані консольні команди

Чималий простір робочих можливостей в консольному режимі останньої версії GNU GRUB, настройка і конфігураційні можливості також не залишать байдужими користувачів. Для того щоб потрапити в нього, достатньо натиснути клавішу "З" під час відображення завантажувального меню, після чого залишиться лише правильно ввести потрібні вам команди:

командиописПриклад введення в консоль
lsУніверсальна команда для роботи зі списками жорстких дисків і розділів. Може використовуватися для виведення вмісту папки.ls / boot / grub
Її використання дасть повну інформацію абсолютно про будь-якому розділі. При цьому буде вказано тип файлової системи на ньому, його мітка, UUID, а також дата внесення останніх змін.

ls (hd *, *)

*, * - номер диска і номер розділу на ньому відповідно

catВиведення інформації про вміст конкретно зазначеного файлу.cat / шлях / ім`я файлу
linuxАналог kernel-команди GRUB зі старої-доброї версії Legacy, що дозволяє завантажувати вказане ядро Linux.

linux файл_ядра

опція1 = значення

опція2 опція3

chainloaderПередача контролю завантаження іншому завантажувачу по ланцюжку. Завантажувач буде шукатися виключно в розділі, який заданий в якості root (зрозуміло, із зазначенням конкретного виконавчого файлу).

chainloader / шлях / ім`я файлу

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

root (hd *, *)

*, * - номер диска і номер розділу на ньому відповідно

setНайчастіше завдяки своїй стабільності та працездатності використовується для перепризначення root-розділу на диску.

set root = (hd *, *)

*, * - номер диска і номер розділу на ньому відповідно

search

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

  • u (або --fs-uuid) - пошук розділу по UUID;
  • l (або --label) - пошук по мітці розділу;
  • f (або --file) - пошук за певним файлу;
  • n (або --no-floppy) - пропуск при перевірці флоппі-дисковода;
  • s (або --set) - встановити знайдений розділ в якості значення заданої змінної.

Команда стане в нагоді в разі, якщо нумерація дисків і розділів "полетить", Через що команда set root або призведе в нікуди, або в не той розділ не того диска.

search -u uuid_нужного_раздела

search -l мітка розділу

search -f / шлях / ім`я файлу

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

help s - висновок довідки на всі команди, що починаються на s.

help set - відображення довідки про команду set.

terminal_output.consoleПеремикання на чорно-білу кольорову гамму відображення.terminal_output.console
background_image

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

Зверніть увагу: команда не змінює налаштувань оформлення - зображення залишається на тлі тільки на поточному сеансі до наступного вимкнення.

background_image / шлях / ім`я файлу

bootЗавантажити комп`ютер.boot
rebootПерезавантажити комп`ютер.reboot

halt

Вимкнути комп`ютер.halt

Послеустановочний GRUB: настройка і корисний в роботі софт

Основним конфігураційним файлом в GRUB2, на відміну від попередньої версії Legacy, є не /boot/grub/menu.lst, а вже /boot/grub/grub.cfg. Однак безпосередньо його редагувати безглуздо - він будете генеруватися з кожним збереженим зміною в файлі / etc / default / grub і в директорії скриптів /etc/grub.d.

В / Etc / default / grub настройка в основному обмежена зміною стандартного пункту завантаження і / або часу показу меню:

  • За перший пункт змін відповідає параметр GRUB_DEFAULT, значенням якого позначається номер пункту в меню завантаження. Вибираючи будь-якої іншої пункт, користувач повинен знати його черговість із загального списку (для цього потрібно переглянути вміст /boot/grub/grub.cfg і знайти за рахунком потрібний запис). При цьому не варто забувати правила нумерації: першого пункту присвоюється значення 0, другого - 1, третій - 2 і так далі.
  • За затримку відображення меню завантаження відповідає параметр GRUB_TIMEOUT, чиє присвоєне значення в лапках позначає кількість секунд, протягом яких ця заставка з`явиться. В редагуванні цього параметра є одна хитра особливість: виставивши значення "-1", Заставка буде висіти рівно до тих пір, поки користувач не вибере будь-який пункт.

Набір скриптів в /etc/grub.d знаходять на комп`ютері всі встановлені системи і ядра, формуючи завантажувальний меню в grub.cfg. За пошук ядер і інших ОС відповідно відповідають два основних: 10_linux і 30_os-prober. Файл 40_custom дозволяє змінити GRUB шляхом додавання власних пунктів завантаження, що корисно для роботи з особливими типами запуску системи (зверніть увагу, що при будь-яких змінах він повинен закінчуватися символом нового рядка, інакше останній пункт завантаження з усіх запропонованих банально не буде відображений).

grub настройка

Однак ще більш простий спосіб відредагувати GRUB в системі Ubuntu - утиліта Grub-Customizer. Завдяки своїй простоті і інтуїтивно зрозумілому інтерфейсу, це найкращий варіант для настройки завантажувача, найбільше відповідний недосвідченим новачкам. Для установки запускаємо термінал (Ctrl + Alt + T), потім по черзі вводимо в ньому наступні команди:

- sudo add-apt-repository ppa: danielrichter2007 / grub-customizer,

- sudo add-get update,

- sudo add-get install grub-customizer.

І хоч переклад програми Grub-Customizer залишає бажати кращого виконання, розібратися в ній дуже легко:

  • List configuration - настройки меню при завантаженні системи. Тут здійснюється зміна черговість його пунктів.
  • Основні налаштування - вибір системи, що завантажується за замовчуванням, а також визначення часу очікування.
  • Зовнішній вигляд - редагування зовнішнього оформлення завантажувального меню.

Крім усього розмаїття налаштувань, користувачеві неодмінно варто звернути увагу і на відмінно зарекомендував себе софт для роботи з GRUB, настройка і діагностика якого стане істотно комфортніше:

  • Super Grub Disk - простий і зручний інструмент для швидкого відновлення завантажувача. При цьому вміє працювати не тільки з GRUB і LILO, але навіть і з самої Windows. Запускається з CD, флешки або ж дискети.
  • GParted - редактор розділів дискових розділів, підготовлений до запуску безпосередньо з CD. З її допомогою можна проводити такі операції з розділами і файловими системами на них, як: створення, видалення, зміна розміру, перевірка, переміщення і копіювання.
  • SystemRescueCD - дистрибутив Linux, спеціальним чином призначений для аварійного відновлення.
  • TestDisk - утиліта, що дозволяє діагностувати і відновлювати як окремі розділи, так і завантажувальні диски цілком.

Як завантажувач впорається з ОС Windows?

Безпосередньо, на жаль, GRUB жодним чином не може завантажувати Windows x86 (64bit-версія також не виняток), через що доводиться створювати відповідний ланцюговий механізм запуску. Для цього в файлі конфігурації grub.cfg необхідно додати кілька рядків певних команд:

- title Windows,

- rootnoverify (hd *, *),

- makeactive,

- chainloader +1,

- boot.

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

  • rootnoverify (hd *, *) - той же самий аналог set root. Вона інформує GRUB про місцезнаходження розділу, на якому знаходиться наступна частина завантажувального коду, проте не монтує його (по тій ясній причини, що для GRUB це зробити неможливо). Зверніть в черговий раз увагу, що частина (Hd *, *) - це номер диска і номер розділу відповідно, на якому встановлена ОС Windows.
  • makeactive - команда надає зазначеному кореневого розділу статус завантажувального.

Тепер та сама команда chainloader +1, яке передає весь подальший контроль завантаження безпосередньо завантажувачу Windows.

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

змінити grub

Трапляється і так, що на жорсткому диску встановлена не одна, а дві чи навіть більше версій Windows. І тоді здійснити стабільний запуск без додаткових команд приховування / показу (hide / unhide) Розділів просто нереально. Суть така, що якщо в файлі конфігурації GRUB прописано приховування будь-якого розділу накопичувача, то Windows банально не зможе його прочитати. А якщо розділ видимий, то з нього відповідно можна буде завантажитися.

При наявності декількох операційних систем спочатку визначитеся, який саме екземпляр ви бажаєте завантажити, потім перевірте її точне розташування - необхідно знати, на якому розділі жорсткого диска вона встановлена. Наприклад, є дві різні версії Windows, розташованих відповідно на першому і другому розділах одного накопичувача, і користувачеві потрібно завантажити саме другу. Для цього в файлі menu.lst потрібно внести наступні зміни:

- title Windows,

- hide (hd0,0),

- unhide (hd0,1),

- rootnoverify (hd0,1),

- makeactive,

- chainloader +1,

- boot.

У порівнянні з попереднім зразком коду були додані команди hide і unhide, завдяки яким користувач зможе завантажити потрібну операційну систему з заданого розділу жорсткого диска.

Перевстановлення GRUB на випадок критичних неполадок

Навіть в разі технічних неполадок відновити GRUB абсолютно нескладне завдання. Для початку завантажуємо інсталяційний LiveCD, відкриваємо термінал сполучення клавіш CTRL+ALT+T.

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

  • sudo grub-install / dev / sda - установка GRUB безпосередньо в MBR (sda - завантажувальний диск);
  • sudo update-grub - пошук інших завантажувальних записів на жорсткому диску (наприклад, Windows).

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

Питання про захист від зациклення перезавантаження

Необхідність у подібній інтегрованої в завантажувач GRUB системі захисту з`являється тоді, коли розміри балок, розташованих в каталозі / var / log, через неконтрольовану запису інформації в них ростуть до недозволенних обсягів. У нормально працюючій системі передбачені спеціальні сервіси, архівуються і підчищати ці логи в автоматичному режимі. Таким чином, в більшості випадків користувачеві абсолютно не потрібно витрачати час, контролюючи їх обсяг.

Однак ці ж служби запускаються лише після завантаження операційної системи. До цього розміри лог-файлів абсолютно нічим не моніторяться, через що в разі непередбаченого падіння системи і подальших перезавантажень логи будуть тільки рости в обсязі. І цей неконтрольований їх зростання буде тривати рівно стільки, скільки тривають перезавантаження через збій в системі. Згодом це все може призвести до повного заповнення того розділу, на якому розташований каталог / var / log, що загрожує зависанням системи наглухо і неможливості запуску навіть режиму відновлення.

linux grub

Саме від цього катастрофічного становища і рятує інтегрована в GRUB система захисту від циклічних перезавантажень, виведення "зависло" меню GRUB, що очікує явного втручання користувача. Сама захист орієнтується на значення змінної recordfail, прописаного в скрипті /boot/grub/grub.cfg. В ході кожного завантаження вона встановлюється як recordfail = 1, а на фінальній завантажувального стадії скидається до recordfail = 0. І якщо саме такого скидання не відбулося, то автоматичне завантаження можна повністю запобігти і активується та сама захист GRUB.

Для цього в / etc / defaul / grub знаходимо змінну GRUB_RECORDFAIL_TIMEOUT і присвоюємо їй значення в ту кількість секунд, протягом яких меню GRUB буде чекати втручання користувача в разі відсутності скидання recordfail з 1 до 0. Після чого зберігаємо зміни командою sudo update-grub, відключивши тим самим захист від зацикленої перезавантаження.

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

Деінсталяція GRUB і повернення до Windows: швидко, просто і безболісно

У разі якщо виникне питання "Як видалити GRUB і залишити завантажувач іншої операційної системи?", То в першу чергу користувачеві буде потрібно її інсталяційний диск / флешка. Розберемо все на конкретному простому прикладі: користувач видаляє зі свого комп`ютера Linux, залишаючи в підсумку одну лише Windows, але при цьому не може її завантажити через помилки Grub error. Для повного вирішення проблеми необхідно відновити завантажувач Windows x86 / 64 bit:

  1. Завантажуємося з установочного накопичувача, попередньо виставивши в його на першому пріоритеті при завантаженні в BIOS
  2. Завантажившись з інсталяційного носія, вибираємо розділ відновлення системи.
  3. Із списку інструментів вибираємо командний рядок, в якій пропишемо черзі наступні команди:
  • BOOTREC.EXE / FixBoot.
  • BOOTREC.EXE / FixMbr.

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

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!
—хоже

Увага, тільки СЬОГОДНІ!