Установка системного загрузчика grub на жесткий диск virtualbox

Обновлено: 04.07.2024

На компьютере загружается Linux, который когда-то был туда установлен. Тогда структура жесткого диска претерпела ряд изменений: были созданы разделы, а также установлен загрузчик. Судя по большинству дистрибутивов, самым популярным в мире Linux является загрузчик GRUB.

Действие этого загрузчика операционной системы происходит с точки зрения пользователя так: пользователь после включения компьютера видит список операционных систем, которые установлены на его компьютер. По оформлению этот список бывает совершенно разным: черно-белым, разноцветным, с пингвинами.

В конце концов по выбору пользователя загружается операционная система.

В центре внимания этот статьи — графической режим GRUB с анимированными пингвинами, которых программист Steffen Winterfeldt заставил ходить взад-вперед и выдавать еще несколько других номеров. Прежде всего — пингвины, а за этим — утилита gfxboot для изменений и тестов конфигурации графического загрузчика.

Еще в статье много информации по конкретным дистрибутивам (Mageia, openSUSE, Ubuntu) с неодинаковыми методами изменения графического загрузчика. Отдельная тема — графический загрузочный экран на основе grub4dos.

Благодарность

Пингвины и gfxboot

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

Физически такая заставка представляет собой cpio-архив, как правило это /boot/message. Вы можете, в принципе, просмотреть этот архив, распаковать его в текущую директорию и переупаковать. Но для того, чтобы облегчить себе жизнь, есть утилита gfxboot.

openSUSE

Когда на компьютере установлен GRUB2, настоящей системой испытаний будет возврат к GRUB, когда у осуществляющего его существует недостаток знаний. Далее следует блок-инструкция по переходу к использованию в качестве загрузчика GRUB.

1. Установка GRUB на жесткий диск с помощью команды

2. Делаем GRUB активным загрузчиком с помощью оболочки GRUB так, как это отражено на скриншоте. В нем принят допуск, что GRUB установлен на первый раздел первого жесткого диска (hd0,0).



Установка кода GRUB в MBR

В выдаче оболочки GRUB в ответ на последнюю команду содержится имя файла /boot/grub/menu.lst.

3. Создадим и отредактируем этот файл с помощью команды


Он будет содержать конфигурацию загрузочного меню, аналог конфигурации загрузочного меню, содержащейся в файле /boot/grub2/grub.cfg. Их синтаксисы по существу родствены друг другу. С некоторыми изменениями текст конфигурационного файла GRUB2 служит основой для текста конфигурационного файла GRUB.

Фрагмент файла /boot/grub2/grub.cfg


и соответствующий ему фрагмент файла /boot/grub/menu.lst


4. Для включения графического режима GRUB с анимированными пингвинами, с помощью текстового редактора vi добавим в начало файла /boot/grub/menu.lst строку


и сделаем вероятность появления пингвинов равной 100% с помощью команды




Пингвины

Mageia

Когда на компьютере установлен GRUB, меню с пингвинами делается по-другому. Далее следует соответствующая инструкция.

1. Начало инструкции — на скриншоте.



Установка gfxboot и gfxboot-themes

2. В файле /boot/grub/menu.lst вместо строки


выбираем и настраиваем тему графического загрузочного экрана


и выходим из сеанса командной оболочки суперпользователя с помощью команды




Пингвины

Ubuntu

В этой системе есть gfxboot, gfxboot-themes, grub, но в последнем не работает графический загрузочный экран. Вместо его предлагаются статичные изображения, отображаемые в загрузочном меню с помощью параметра splashimage, указываемого в конфигурационном файле GRUB. В таком случае можно использовать загрузчик grub4dos.

Grub4dos на загрузочной флешке и жестком диске

Границы применения grub4dos шире установки на флеш-накопители, но это, наверное, является главным. Ниже на листинге примерная процедура или схема его установки.

Установка grub4dos на флеш-накопитель

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



Загрузочное меню grub4dos

После копирования туда же файла /boot/message, полученного способом, описанным выше, и замены содержимого файла menu.lst другим, содержащим строку


получаем все тех же пингвинов.

На жестком диске grub4dos можно вызвать из GRUB, введя в его конфигурационный файл описание соответствующего пункта меню:


Это действует, если на шестом разделе жесткого диска с fat12 или fat32 имеются файлы grub.exe и myfloppy.img, последний из которых — файл-образ загрузочной дискеты. В нем объединены файлы из архива grub4dos-0.4.4.zip. Далее следует несколько команд, выполнение которых провоцирует добавление на диск необходимого для загрузки grub4dos файла myfloppy.img


Осталось добавить в каталог к файлам grub.exe и myfloppy.img файл message, заменить содержимое файла dos/menu.lst на что-то подобное тому, что воспроизведено на следующем листинге и отмонтировать файл-образ myfloppy.img с помощью команды


чтобы получить результат, неоднократно ранее полученный в этой статье.

Для инициализации ядра и запуска операционной системы Linux используется загрузчик. Это программа, которая запускается после завершения проверки оборудования BIOS, подготавливает оборудование к работе, задает нужные параметры ядра и позволяет выбрать операционную систему. Основная задача загрузчика дать пользователю выбрать операционную систему для загрузки.

Раньше для загрузки Linux использовалось несколько загрузчиков, это isolinux, lilo, grub. Но сейчас чаще всего применяется Grub или полное его название GRand Unified Bootloader. В этой статье будет рассмотрена установка загрузчика Grub через терминал. Также мы поговорим как установить grub на компьютер с UEFI, тоже вручную.

Немного теории

Как я уже сказал, основная задача загрузчика - предоставить возможность выбора операционной системы перед загрузкой. Не думайте, что в Windows загрузчик не используется, там он тоже есть и работает, подобно тому, как работает Grub.

Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях MBR vs GPT можно почитать в отдельной статье. Тут же я скажу, что GPT - более новая и функциональная таблица разделов, MBR - уже устаревшая, но до сих пор часто используемая.

В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.

GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.

UEFI предоставляет совсем иной способ установки загрузчика. Тут его не нужно никуда записывать, загрузчик - это обычное приложение EFI, которое помещается на раздел EFI и уже там полностью успешно работает наряду с другими приложениями.

Для установки Grub будет использоваться команда grub-install, во всех случаях. Давайте кратко рассмотрим ее синтаксис и параметры. Синтаксис:

$ grub-install опции диск

Параметров здесь достаточно много, но нам будут нужны только некоторые:

  • --compress - сжать файлы загрузчика;
  • --install-modules=модули - установить только эти модули;
  • --modules - записать эти модули в MBR;
  • --boot-directory - использовать другой каталог для файлов Grub;
  • --bootloader-id - имя загрузчика в меню EFI;
  • --core-compress - сжимать образ, загружаемый в MBR;
  • --efi-directory - использовать системный раздел EFI;
  • --force - установить несмотря на ошибки;
  • --recheck - удалить существующую карту устройств, помогает если возникают ошибки;
  • --removable - установка grub на флешку (только EFI);

Основу разобрали. Теперь перейдем к установке. Дальше я буду предполагать, что все действия выполняются из системы, для которой нужно установить загрузчик или из chroot окружения этой системы.

Установка загрузчика Grub в MBR для BIOS

Начнем с самого просто и привычного. Данная инструкция как установить загрузчик Grub подойдет для любого дистрибутива, поскольку команды везде почти одинаковые. Здесь не нужно устанавливать никаких дополнительных пакетов или создавать разделов. Установка Grub на жесткий диск выполняется командой:

sudo grub-install /dev/sda

sudo grub2-install /dev/sda

Утилиты grub в разных дистрибутивах могут включать двойку, а могут и не включать. Здесь /dev/sda - ваш жесткий диск. Теперь генерируем конфигурационный файл, чтобы автоматически определились установленные операционные системы:

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

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

Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить Grub на флешку в MBR, то тут тоже нет проблем просто примонтируйте флешку и выполните такую команду:

sudo grub-install --root-directory=/mnt/USB/ /dev/sdb

Здесь /mnt/USB - папка, куда была смотирована ваша флешка, а /seb/sdb - сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную.

Установка загрузчика Grub в GPT для BIOS

Во-первых, мы можем ничего не менять и установить Grub так, как описано в предыдущем способе. Но тогда он будет установлен в область совместимости с MBR, а это не надежно. Поэтому рекомендуется установить grub так, как описано ниже, на отдельный раздел.

Нужный нам раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью gparted. Нам нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios:

grub

Дальше примените изменения, нажмите на разделе правой кнопкой, выберите manage flags и добавьте флаг grub_bios:

grub1

Готово. Если у вас нет под рукой доступа к графическому интерфейсу, вы можете создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать gfdisk. Сначала запустите утилиту:

sudo gdisk /dev/sda

grub2

Чтобы создать новый раздел нажмите n и выберите номер раздела:

grub3

Соглашаемся с начальным сектором, будет использован первый же свободный:

grub4

Выбираем конечный сектор раздела. По умолчанию будет использоваться максимальный. Нам нужен раздел размером 1 Мб. Размер одного сектора GPT - 512 байт, поэтому нам нужен раздел размеров 2048 секторов. Таким образом, конечный сектор будет 24000 с чем-то.

grub5

HEX Code - это тот код, который скажет системе, что этот раздел нужно использовать для Grub, нужно установить ef02:

grub6

Готово, осталось нажать w для записи изменений на диск:

grub7

Установка grub на жесткий диск дальше выполняется точно так же, как и в предыдущем способе:

sudo grub-install /dev/sda

Осталось создать конфигурационный файл grub:

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

Теперь переходим к самому сложному, как установить grub efi.

Установка GRUB UEFI GPT

Установка Grub UEFI чем-то похожа на установку в GPT, тут у нас тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если у вас уже установлена Windows, то, скорее всего, он уже существует. Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP. Вот так он будет выглядеть:

grub11

Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:

grub9

Размер 100 Мегабайт, имя раздела ESP, файловая система fat32. Дальше примените изменения и установите для раздела флаг ESP:

grub10

То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00. После того как раздел был создан, подключаем его к нашей файловой системе:

sudo mkdir /boot/efi
$ sudo mount /dev/sda2 /boot/efi

Здесь /dev/sda2 - это наш EFI раздел. Далее необходимо установить нужные пакеты, если они еще не установлены. В Ubuntu это будет выглядеть вот так:

sudo apt install grub-efi efibootmgr

Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы:

Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда:

grub-install --boot-directory=/mnt/sdb2/boot --efi-directory=/mnt/sdb1 --target=x86_64-efi --removable

Рассмотрим опции: --boot-directory - задает папку с файлами загрузчика на флешке, --efi-directory - папка куда смонтирован раздел efi, --target - архитектура целевой системы и --removable говорит, что это установка на съемный носитель. С UEFI все. После перезагрузки и выбора в меню EFI пункта связанного с Grub, вы получите доступ к привычному меню grub и сможете выбрать нужный параметр.

Выводы

Теперь установка Grub не вызовет у вас проблем. Мы разобрали не только как установить Grub2 в MBR но и в EFI. Кроме того, всю приведенную здесь информацию вы можете использовать для восстановления Grub. Так вы будете лучше понимать что происходит во время восстановления. А настройку параметров и ручное создание конфигурационного файла мы рассмотрим в одной из следующих статей.

Если у вас только один диск в компьютере с одним разделом, то установщик не спросит, на какой диск установить загрузчик системы. На других компьютерах (как с UEFI, так и с БИОСом) с несколькими дисками, установщик может спросить, на какой диск установить загрузчик.


Чтобы принять решение, нужно иметь общие представления о загрузке операционной системе на ПК. Упрощённо говоря, происходит следующее:

1. БИОС (UEFI) проверяет, какой диск выбран для загрузки и передаёт управление загрузчику на этом диске.

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

Так вот, если у вас уже установлен Windows, то вариантов два:

  1. Установить загрузчик Linux вместо загрузчика Windows, на диск с Windows
  2. Установить загрузчик Linux на диск с самой Linux

В БИОС

Преимущества первого варианта:

  • Для выбора загружаемой операционной системы не нужно менять настройки БИОСа — можно выбрать нужную ОС в меню загрузки Linux

Недостатки первого варианта:

  • Загрузчик Windows стирается, и если вы захотите его восстановить, то нужно будет использовать специальную программу (смотрите эту статью, раздел "Восстановление загрузчика Windows 10").
  • Если вы даже удалите Linux, всё равно будет появляться меню выбора ОС для загрузки.

Преимущество второго варианта:

  • Загрузчики Windows и Linux будут сохранены, они будут располагаться каждый на своём диске, независимо друг от друга.
  • Если вы решите удалить Linux, то не нужно беспокоиться о восстановлении загрузчика Windows.
  • Диск с Linux можно переставить в другой компьютер и он будет работать!
  • Загрузчик Linux сам найдёт все операционные системы на всех дисках и добавит их в меню, показываемое при загрузке. Вы можете выбрать любую ОС при включении компьютера.

Недостатки второго варианта:

  • Чтобы при включении компьютера начал загружаться диск с Linux, нужно изменить настройки БИОСа, а именно выбрать соответствующий диск.

На мой взгляд, второй вариант намного лучше, поэтому я устанавливаю загрузчик Linux на диск с Linux.

В UEFI

В UEFI имеется специальный небольшой раздел (100-200 мегабайт) в котором хранятся загрузчики операционных систем. В Linux этот раздел монтируется в директорию /boot и загрузчики хранятся в папках в /boot/efi/EFI или /boot/efi/ или похожих.

Установка загрузчика на диск в UEFI означает создание новой папки с загрузчиком нового дистрибутива. На этом скриншоте можно видеть загрузчики двух ОС.


На самом деле, там ещё есть и Linux Mint, но она свои файлы поместила в директорию BOOT.

Пункт загрузки UEFI можно отредактировать (удалить или добавить новые) в настройках UEFI.

При установке загрузчика на диск с Windows, в принципе, это должно работать также. Но я не проверял! В случае проблем с Windows, смотрите эту статью, раздел "Восстановление загрузчика Windows 10").

Если у вас несколько операционных систем установлены на разных разделах диска и вы установили их загрузчики в собственные разделы, как это показано на скриншоте (системный загрузчик установлен в четвёртый раздел диска):


то, чтобы загрузить эту новую ОС нужно в дистрибутиве, в котором вы можете загрузиться, выполнить следующую команду:

Эта команда просканирует все диски и добавит в меню загрузки данного дистрибутива все найденные операционные системы.

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

Итак, я использовал Ubuntu в течение месяца или двух в двойной загрузке с Windows 8, он выглядел и работал нормально, однако по какой-то причине сломался, и мне пришлось восстанавливать весь ПК. Из-за этого неудачного опыта я решил переустановить Ubuntu на внешний жесткий диск, отделенный от моей основной машины Windows. Эта опция подходит для обеих операционных систем.

Однако при установке Ubuntu, по какой-то причине, загрузчик Grub не был установлен на внешнем диске, в то время как "старый" загрузчик Grub никогда не стирался с внутреннего жесткого диска ПК. В результате я нахожусь в странной ситуации: когда я хочу запустить Windows, я просто включаю компьютер и ухожу. Когда я хочу запустить Linux, мне нужно подключить внешний диск, зайти в меню запуска и изменить загрузчик с Windows на Grub. Внешний жесткий диск не является загрузочным (как, например, USB-накопитель), и эту длинную последовательность операций необходимо повторять каждый раз.

  1. Внутренний жесткий диск ПК содержит ОС Windows, загрузчик Windows и Grub из старой установки Linux.
  2. Внешний жесткий диск содержит Ubuntu 15.10, возможно, Grub, но не является загрузочным, как USB-накопитель.
  3. Каждый раз, когда я хочу переключить ОС, мне нужно вручную изменить загрузчик в меню автозагрузки, что утомительно.
  4. Загрузочные устройства упорядочены следующим образом: 1. USB 2. Внешний накопитель 3. Внутренний накопитель

Мой вопрос: как сделать внешний диск загрузочным, чтобы при переключении с Windows на Linux я просто выключал компьютер, подключал USB, включал компьютер и работал? (без потери данных, которые я уже сохранил на нем и все настройки)

PS. По какой-то причине Windows работает очень медленно при загрузке через загрузчик Grub, доступный на внутреннем диске. Кроме того, если внешний жесткий диск не подключен, загрузчик Grub отображает только панель восстановления Grub. Поэтому использование уже установленного Grub в качестве единственного загрузчика не вариант.

2 ответа

В конце концов я нашел решение своей проблемы. Я опубликую это здесь на случай, если кому-то это понадобится Кроме того, я не совсем уверен, что сработало, и если все шаги, которые я предпринял, были действительно необходимы, однако это сработало.

  1. Убедитесь, что на внешнем диске есть раздел EFI с помощью gparted или чего-то подобного. Раздел должен быть FAT32, иметь флаги boot и esp и быть смонтирован в /boot/efi. Размер должен быть не менее 200 Мб, хотя я сделал это 1 Гб, так как у меня есть свободное место на моем HD. Если у вас нет этого раздела, то сделайте его.
  2. Убедитесь, что UUID раздела EFI BOOT на внешнем жестком диске совпадает с идентификатором в файле fstab.

чтобы проверить UUID разделов просто введите в терминале

пока редактировать файл fstab

Теперь установите Grub. (Вы также можете попробовать скопировать grub с внутреннего диска на раздел внешнего диска, но у меня это не сработало).

sudo grub-install / dev / sdX

замените SDX на фактический диск.

  1. Если вы этого еще не сделали, включите загрузку с USB-накопителя и убедитесь, что внешний загрузчик загружен раньше, чем внутренний из меню настройки UEFI. Теперь ваша машина должна сначала загрузиться с USB, а затем (если загрузчик не был найден) с внутреннего жесткого диска.

Вот как я установил grub на свой внешний жесткий диск (GPT), на котором была установлена ​​Ubuntu 17.04. Когда вы делаете это, это позволяет вам загружать Ubuntu на любом ПК, который поддерживает UEFI, используя внешний вид grub, не полагаясь на grub для ПК. Он также может служить резервной копией в случае проблем с EFI Windows.

Установка Grub на внешний жесткий диск с установленной Ubuntu

Загрузите Ubuntu Live USB и подключите внешний жесткий диск.

Из результатов lsblk определить раздел linux, а также раздел efi внешнего жесткого диска, т. е. /dev/sdXY1 а также /dev/sdXY2 соответственно. замещать XY1 а также XY2 с вашими собственными именами разделов.

Специальное монтирование раздела Linux:

Монтируем критические виртуальные файловые системы:

chroot в раздел Linux вы смонтировали:

Теперь вы находитесь в файловой системе linux внешнего жесткого диска.

Создайте каталог, куда grub установит свои файлы:

Если он уже существует, перейдите к шагу 8.

Смонтируйте раздел efi из шага 3:

Установите grub на внешний жесткий диск:

Найдите UUID раздела efi (он же vfat) и запишите его:

Теперь нам нужно указать fstab монтировать этот раздел efi при загрузке:

Добавьте следующие две строки в fstab, заменив xxxx-xxxx на UUID из шага 11:

Обязательно закомментируйте запись fstab в Windows esp, чтобы она не конфликтовала.

Выход из chroot:

В этот момент, когда вы перезагрузитесь и выберете ваше внешнее устройство из менеджера загрузки EFI, оно загрузится в grub.

Чтобы заставить Ubuntu автоматически загружаться, когда вы вставляете внешний, и Windows, чтобы автоматически загружаться, когда внешний не вставляется, вам нужно создать пользовательскую загрузочную запись для Ubuntu, чтобы указать efi на внешнем диске:

Создание пользовательской загрузочной записи для Ubuntu, указывающей на efi на внешнем HD

Из Windows EasyUEFI можно добавлять или удалять загрузочные записи.

Из Linux efibootmgr может добавлять или удалять загрузочные записи.

Альтернатива № 1 - использование EasyUEFI

В Windows загрузите EasyUEFI, установите его и запустите.

Выберите менеджер опций EFI

Выберите " создать новую запись" со знаком +

Выберите Linux или другую ОС и дайте ей имя в окне описания

Выберите раздел FAT32 EFI на внешнем диске, который содержит загрузчик grub

Выберите обзор

Перейдите в /efi/ubuntu/shimx64.efi или /efi/ubuntu/grubx64

Переместить его в начало списка загрузочных записей

Альтернатива № 2 - использование efibootmgr

Список пунктов меню загрузки:

Создайте загрузочную запись:

например: efibootmgr -c -L myubuntu -d /dev/sdX

Эта загрузочная запись будет автоматически первой записью.

/dev/sdX это внешний жесткий диск с загрузчиком grub.

Теперь вы можете перезагрузиться, и без вашего вмешательства Ubuntu автоматически загрузится, когда внешний жесткий диск подключен. Когда внешний жесткий диск не подключен, ПК пропустит нашу загрузочную запись Ubuntu до следующей записи, которая, вероятно, Windows Boot Manager.

Не загружается Linux, чиним загрузчик GRUB

Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.

Что такое Grub

GRUB_screenshot

Grub (или GRand Unified Bootloader) - загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего - основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows, вам определенно понадобится помощь Grub.

Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно - узнаете далее.

От чего могут возникнуть проблемы

Одна из самых распространенных причин - это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК - вам непременно стоит знать правильную последовательность:

  • Сначала устанавливаем Windows
  • И только потом уже Linux

Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.

Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.

Восстановление Grub с помощью LiveCD/USB

Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.

Как создать LiveCD/USB

Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.

Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.

С помощью Rufus:

Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:

Rufus

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

Rufus obraz

Находим загруженный образ через менеджер, после чего жмем "Старт".

С помощью Etcher:

Опять же, идем на официальный сайт, где скачиваем последнюю версию утилиты. Далее делаем все так, как показано на этой гифке:

Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:

Открываем таблицу разделов с помощью команды:

Примерно такая таблица будет выведена на экран:

По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.

С помощью следующей команды мы смонтируем этот раздел в /mnt:

Теперь, для записи grub в MBR, нужно ввести следующую команду:

Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.

Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:

Вот и все, восстановление закончено!

Восстановление с помощью chroot

Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.

Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:

В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.

В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:

Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.

Далее мы переходим в окружающую среду chroot с помощью команды:

И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:

Если все прошло успешно, выходим из chroot, используя команду:

Далее нужно отмонтировать все разделы. Для этого вводим в терминал:

В случае, если вы монтировали раздел /boot введите команду:

Теперь перезагружаем систему с помощью:

Можно также обновить меню Grub, используя команду:

Восстановление Grub в rescue mode

Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.

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

Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).

Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:

Для начала вводим следующую команду:

В выводе будет что-то подобное:

В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.

В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела - (hd0,1). Используем следующую команду:

С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:

Если в выводе будет список файлов и папок, значит мы все сделали правильно. Теперь можно загрузить все необходимые модули. Для этого выполним команды:

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

Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:

sdX - диск, на который должен быть установлен Grub.

Если операционная система расположена на разделе с файловой системой btrfs, то нам необходимо выполнить следующие команды:

И подгрузить модули:

Ну и теперь запустить GRUB:

Восстановление Grub с помощью утилиты Boot repair

1335260967

С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.

Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:

  • Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
  • Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.

Если с первым способом все понятно: нужно просто скачать и записать образ с помощью соответствующих инструментов. То во втором уже нужно знать конкретные команды, которые выглядят следующим образом:

В утилите будет доступно два варианта на выбор:

Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.

Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.

Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.

Вам обязательно стоит заглянуть на официальный сайт Boot Repair. Там вы сможете найти более подробную информацию обо всех возможностях и особенностях программы. Там же будет доступна информация о выходе новых версий: фиксах и улучшениях самой утилиты, а также многом и многом другом.

Выводы

Вот мы и рассмотрели несколько вариантов исправления загрузчика Grub. Стоит сказать, что некоторые из них могут показаться сложными или даже невыполнимыми. Это не так, каждый из рассмотренных способов нашел подтверждение в виде сотен и тысяч актов исправления загрузчика Grub в опенсорсном сообществе. Кстати говоря, какой из способов выбрать - решать только вам, любой из них достаточно эффективен, чтобы попасть в этот материал.

Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить GRUB2 если Ubuntu не хочет загружаться. Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.

Читайте также: