Установка загрузчика Grub. Установка GRUB по умолчанию. Как загрузчик управится с ОС Windows

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

Что такое Grub

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

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

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

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

С помощью Etcher:

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

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

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

Sudo fdisk -l

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

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

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

Sudo mount /dev/sda1 /mnt

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

Sudo grub-install --root-directory=/mnt /dev/sda

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

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

Sudo update-grub --output=/mnt/boot/grub/grub.cfg

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

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

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

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

Sudo fdisk -l

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

/dev/sda1 27 7683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended

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

Sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys

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

Sudo chroot /mnt

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

Grub-install /dev/sda

Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:

Grub-install --recheck /dev/sda

Grub-install --recheck --no-floppy /dev/sda

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

Sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt

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

Sudo umount /mnt/boot

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

Sudo reboot

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

Sudo update-grub

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

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

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

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

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

Ls set unset insmod

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

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

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

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

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

Set prefix=(hd0,1)/boot/grub set root=(hd0,1)

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

Ls /boot/grub

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

Insmod ext2 insmod normal normal

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

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

Grub-install /dev/sdX

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

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

Set prefix=(hd0,1)/@/boot/grub set root=(hd0,1)

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

Insmod btrfs insmod normal

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

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

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

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

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

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

Sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update && sudo apt-get install -y boot-repair

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

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

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

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

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

Выводы

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

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

Многие новые пользователи операционных систем, отличных от Windows, с большой долей сомнения и скепсиса в наши дни встречают фразу «начальный загрузчик». Этому есть вполне логичное объяснение: большинство новых пользователей до перехода к использованию других менее распространенных на рынке операционных систем в повседневной жизни использовали ту же Windows. Загрузчик реализован в ней максимально прозрачно и примитивно. В некоторой степени это, конечно, прибавляет удобства рядовым пользователям, однако вместе с тем это уменьшает функциональные возможности и без того универсальной и популярной операционной системы. Поэтому всем пользователям, которые решили обратить внимание на другие продукты индустрии информационных технологий, следует непременно ознакомиться с универсальным загрузчиком GRUB. В дальнейшем это может значительно помочь пользователю при работе сразу с несколькими операционными системами, установленными на одной машине.

Универсальный инструмент
Прежде всего попробуем разобраться с наименованиями GNU GRUB. Данная аббревиатура в переводе с английского означает “главный унифицированный загрузчик». Создателем данного загрузчика является некоммерческая организация «Проект GNU». Она прославилась в сфере информационных технологий своим свободно распространяемым программным обеспечением. По сути сам GRUB представляет меню выбора нужной операционной системы из перечня поддерживаемых систем, в который входит FreeBSD, Linux и Solaris. GRUB при этом может работать даже с операционной системой Windows. Однако, чтобы запустить подобные системы, которые напрямую не поддерживаются данным начальным загрузчиком, существуют некоторые особенности, которые в дальнейшем будут подробно изучены.

Развитие технологий
Непрерывно возрастающая популярность GRUB с каждым годом была основополагающей причиной, которая побуждала неуклонно развивать и совершенствовать загрузчик в дальнейшем. Самая первая версия загрузчика, которая называлась GRUB Legacy, отлично справляется с задачами унифицированного загрузчика для систем UNIX. Ее продолжительный срок существования также обеспечили широкая поддержка серьезных компаний и серверных дистрибутивов. Но стоит отметить, что данное обстоятельство никак не повлияло на дальнейшее развитие данного загрузчика. Благодаря этому пользователи получили последнюю на данный момент времени версию GRUB2. Будучи написанным практически заново, GRUB2 вряд ли обладает хоть какими-то общими чертами с устаревшим GRUB Legacy. Будучи по умолчанию используемым загрузчиком в операционной системе Ubuntu начиная с версии 9.10 GRUB2 полностью остановил дальнейшую разработку отлично зарекомендовавшей себя в прошлом Legacy. Новичку с самого начала необходимо уяснить, что GRUB 2 представляет собой более сложный в работе загрузчик по сравнению с предыдущей версий. Поэтому чтобы уберечь покупателей от возможных проблем и трудностей, далее будут изложены мельчайшие детали. Их понимание позволит пользователю в полной мере применять все новшества последней версии, которых немало. К ним относятся и скриптовая поддержка (переменных, функций, условий, циклов), возможность изменения внешнего вида загрузчика под вкус пользователя, возможность динамичной подгрузки модулей, которая позволяет расширить функционал не на этапе сборки, а непосредственно во время выполнения, совместимость с различными архитектурами, поддержка загрузки MacOS, стабильная работа с файловыми системами NTFS, FAT32, FAT16. Благодаря кроссплатформенному типу установки GRUB2 можно устанавливать с другой архитектуры. Также при возникновении проблемной ситуации существует возможность введения безопасного режиме. Кроме того, в новой версии загрузчика были исправлены ошибки старой GRUB Legacy, которые из-за требования обратной совместимости изначально не могли быть пофиксены. В дальнейшем под названием GRUB мы будем иметь в виду GRUB 2, с которой будем в полной мерее разбираться.

LILO
Конечно же, выбор загрузчиков операционных систем не ограничивается одним GRUB’ом. Аналогичным загрузчиком является LILI. Это начальный загрузчик Linux систем, который до сих пор не утратил своей актуальности. В пользу того же GRUB следует отметить несколько отличительных особенностей, которыми конкурент пока не может похвастаться. LILO поддерживает только 16 конфигураций загрузки, в то время как GRUB поддерживает неограниченное количество таких конфигураций. Также GRUB может загружаться по локальной сети, чего нельзя сказать о LILO. У LILO отсутствует тот самый командный интерактивный интерфейс, к удобству которого уже успели привыкнуть пользователи последней версии GRUB. Единственная общая особенность обоих загрузчиков заключается в необходимости компилировать каждый раз все внесенные в меню изменения. В фирменном загрузчике Linux издавна отсутствовала функция автоматического сохранения. GRUB 2 этой удобной особенностью похвастаться тоже не может. Даже если учесть этот неудобный для повседневного использования нюанс, загрузчик LILO проигрывает конкуренту сразу по нескольким пунктам. Благодаря этому GRUB получает более широкое распространение среди пользователей домашних компьютерных систем.

Установка GRUB: особенности процесса
Для начала необходимо убедиться в том, что у вас на компьютере имеется либо установленная система Ubuntu, либо ее загрузочный диск. После запуска системы необходимо при помощи комбинации клавиш Ctrl+Alt+F2 вызвать терминал. Затем в нем необходимо прописать следующие команды: — sudo add-apt-repository ppa: cjwatson/grub, — sudo add-get update && sudo add-get install grub 2, — sudo update-grub2. Даже если у вас установлена операционная система не Ubuntu, но имеется Live CD, то процедура останется такой же с одной небольшой разницей. После того как вы загрузитесь именно с этого загрузочного диска, необходимо выбрать опцию «Попробовать Ubuntu». Таким образом вы запустите систему без каких-либо изменений на собственном компьютере. После этого необходимо продолжить установку загрузчика GRUB по той же схеме с этапа вызова терминала. Чтобы проверить установленную версию загрузчика, можно использовать команду grub-install-v. Также это можно сделать непосредственно при самой загрузке Ubuntu.

GRUB: алгоритм запуска
По мере завершения работы с GRUB Install загрузчик прежде всего изменит код MBR на свой собственный сектор MBR, в котором содержится главная загрузочная запись. Здесь содержится код основного загрузчика (446 байт), таблица разделов с описанием как основных, так и вторичных разделов жесткого диска (64 байта). Поскольку сектор MBR обладает малым объемом, запуск GRUB укладывается в два этапа. В секторе MBR размещена ссылка к конфигурационному файлу, который может находиться в любом жестком диске, на усмотрение самого пользователя. По ней будет определяться загрузка, которая начинается на втором этапе. Все настройки и данные для работы GRUB учитываются из конфигурационного файла. Если же конфигурационный файл не был найден на втором этапе, то процесс загрузки будет прекращен. Пользователю придется в ручном режиме выбирать загрузочную конфигурацию из командной строки. Данная структура загрузки позволяет GRUB быть гибким и широко конфигурируемым по сравнению с множеством других аналогов, в которых данный процесс был до максимума упрощен.

Часто используемые консольные команды
Большой простор рабочих возможностей последней версии загрузчика GNU GRUB, его конфигурационные возможности и настройка не оставят пользователей равнодушными. Чтобы попасть в него, достаточно будет просто нажать на клавишу «С» во время отображения меню загрузки. После этого останется только верно внести нужные команды.

GRUB после установки: настройка и полезное ПО
В GRUB2 основным конфигурационным файлом является не /boot/grub/menu.lst, а /boot/grub/grub.cfg. Редактировать данный файл совершенно бессмысленно. С каждым сохраненным изменением в файле настроек /etc/default/grub он будет генерироваться заново. Настройка в /etc/default/grub в основном ограничена изменением стандартного пункта загрузки и времени отображения меню. За изменение первого пункта отвечает параметр GRUB_DEFAULT. Его значением обозначается номер пункта в меню загрузки. При выборе какого-то другого пункта пользователь должен знать его очередность в общем списке. Для этого необходимо просмотреть содержимое файла /boot/grub/grub.cfg и найти в нем нужную учетную запись. При этом стоит помнить о правилах нумерации. Первому пункту присвоено значение 0, второму пункту присвоено значение 1, третьему – 2 и так далее. Параметр GRUB_TIMEOUT отвечает за задержку отображения меню загрузки. Присвоенное в кавычках значение обозначает количество секунд, в течение которых должна появиться заставка. При редактировании данного параметра имеется одна хитрая особенность.

При выставлении значения «-1» заставка будет отображаться до тех пор, пока пользователь не выберет один из пунктов. В /etc/grub.d набор скриптов находит все установленные на компьютере ядра и системы. В grub.cfg формируется загрузочное меню. За поиск других операционных систем и ядер отвечают два основных – 30_os-prober и 10_linux. Файл 40_custom дает возможность изменить GRUB путем добавления собственных пунктов загрузки. Это может быть полезно для работы с особыми типами запуска системы. Стоит обратить внимание на то, что он должен заканчиваться пустой стройкой при любых изменениях. В противном случае последний пункт загрузки из всех предложенных просто не будет отображаться. Существует еще один более простой способ редактирования GRUB в операционной системе Ubuntu. Для этой цели нам понадобится утилита grub-Customizer. Она благодаря своей простоте и интуитивно понятному интерфейсу представляет собой лучший вариант для настройки данного загрузчика. Больше всего Grub Customizer подойдет неопытным новичкам. Чтобы установить его, нужно запустить терминал путем нажатия комбинации клавиш Ctrl+Alt+T, а потом поочередно ввести следующие команды: -sudo add-apt-repository ppa:denielrichter2007/grub-customizer, -sudo add-get update, -sudo add-get install grub-customizer. Конечно, перевод программы Grub-Customizer выполнен не очень качественно, но разобраться в ней довольно легко.

— List configuration – в данном пункте отображаются настройки меню при загрузке операционной системы. Здесь можно изменять очередность пунктов.
— Основные настройки — выбор загружаемой по умолчанию системы, а также определение времени ожидания.
Внешний вид – данный пункт позволяет осуществлять редактирование внешнего оформления загрузочного меню.

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

Super Grub Disk – представляет собой простой и удобный инструмент для быстрого восстановления загрузчика. Работает не только с LILO и GRUB, но и с Windows. Может быть запущен с дискеты, флэшки или диска.

GParted – представляет собой редактор разделов дисков. Запускается непосредственно с диска. С помощью данной программы можно выполнить следующие операции с разделами и файловыми системами на них: удаление, создание, проверка, изменение размера, копирование и перемещение.
SystemRescue CD – представляет собой дистрибутив Linux, который предназначен для аварийного восстановления.

Восстановление GRUB – достаточно распространенная операция, с которой приходится сталкиваться многим. Загрузчик повреждается или затирается при установке Windows в качестве второй системы. Не имеет значения, какая сборка Linux стоит – Ubuntu, Mint, Debian или любая другая: восстановить GRUB можно через терминал или с помощью специальной утилиты.

Восстановление через терминал

Windows не дружит с Linux, поэтому если вы ставите систему от Microsoft после Ubuntu, Mint 17 или другой линуксовской сборки, то будьте готовы к тому, что загрузчик затрется. Чтобы не теряться в этой ситуации, распечатайте инструкцию и храните её возле компьютера.

После перезаписи загрузчика необходимо перезагрузить компьютер, используйте команду «sudo reboot». После перезагрузки должно появиться окно выбора операционной системы. Если GRUB был перезаписан в результате установки новой версии Windows, но в окне выбора системы продолжает отображаться старая версия, то нужно выполнить обновление загрузочной записи. Для этого загрузитесь в Ubuntu и выполните в терминале команду «sudo update-grub».

Использование утилиты восстановления

Если работа с терминалом кажется сложной, можно автоматизировать процесс восстановления, использовав специальную утилиту boot-repair.

Запустите сборку Linux с флешки или диска. Откройте терминал и выполните последовательно три команды:

  • sudo add-apt-repository ppa:yannubuntu/boot-repair.
  • sudo apt-get update.
  • sudo apt-get install boot-repair.

Установленная программа будет иметь название «Восстановление загрузчика». Запустите утилиту (выполните «boot-repair» в консоли) и выберите режим работы. Новичкам подойдет «Рекомендуемый способ восстановления». После запуска этого режима GRUB будет автоматически восстановлен.

Есть и топорный способ восстановления GRUB – переустановка Linux. Многие новички используют этот радикальный метод, лишь бы не связываться с терминалом. Однако переустановка приводит к удалению пользовательских файлов, поэтому применять её из-за банального повреждения загрузчика – слишком большая роскошь.

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

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

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

Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях можно почитать в отдельной статье. Тут же я скажу, что 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

Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить 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:

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

sudo gdisk /dev/sda

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

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

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

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

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

sudo grub-install /dev/sda3

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

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

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

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

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

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

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

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

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

sudo apt install grub-efi efibootmgr

grub-install /dev/sda

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

Ubuntu, как и многие другие дистрибутивы Linux в качестве загрузчика системы используют GRUB2. Если GRUB2 «ломается», например, если вы установите Windows после установки Ubuntu, либо при перезаписи MBR - загрузить Ubuntu вы не сможете.

GRUB2 можно запросто починить с помощью Live CD Ubuntu или USB-флешки. Этот процесс отличается от восстановления загрузчика GRUB Legacy на старых дистрибутивах Linux.

Описанный ниже процесс должен работать со всеми версиями Ubuntu. Он был протестирован на версиях Ubuntu 16.04 и Ubuntu 14.04.

Способ с использованием графического интерфейса: Boot Repair###

Boot Repair - приложение с графическим интерфейсом, с помощью которого можно починить GRUB2 всего одним щелчком мыши. Идеальное решение для большинства пользователей.

Если у вас есть носитель, с которого вы устанавливали Ubuntu, вставьте его в компьютер, выполните перезагрузку и загрузитесь со сменного носителя. Если носителя у вас нет, загрузите Live CD Ubuntu и запишите его на диск или создайте загрузочную USB-флешку .

При загрузке, нажмите «Попробовать Ubuntu» (Try Ubuntu), чтобы загрузить работоспособное окружение рабочего стола.

Перед тем как продолжить, убедитесь, что у вас работает подключение к интернету. Возможно, потребуется выбрать сеть Wi-Fi и ввести пароль.

Откройте терминал из Dash и выполните следующие команды для того, чтобы загрузить и установить Boot Repair :

Sudo apt-add-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair boot-repair

Boot Repair автоматически просканирует систему после запуска команды boot-repair . После этого, щелкните кнопку Recommended repair для восстановления GRUB2 .

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

Boot Repair начнёт работать. Возможно, появится запрос открыть терминал и скопировать/вставить несколько команд.

Просто следуйте инструкциям на экране. Выполните все инструкции Boot Repair и щёлкните Forward чтобы перейти к следующему экрану. Утилита проведёт вас через все необходимые действия для восстановления.

После того, как Boot Repair закончит работу, перезагрузите компьютер. Ubuntu должна будет нормально запуститься.

Способ с использованием терминала

Если же вы не боитесь «запачкать руки», вы можете починить систему через терминал. Вам потребуется загрузиться с Live CD или USB-флешки, так же, как в способе, описанном выше. Убедитесь, что версия Ubuntu на диске совпадает с версией, установленной на компьютере. Например, если у вас была установлена Ubuntu 14.04, следует использовать Live CD Ubuntu 14.04.

После загрузки системы откройте терминал. Определите раздел диска, на котором установлена Ubuntu с помощью одной из следующих команд:

Sudo fdisk -l sudo blkid

Ниже приводится вывод обеих команд. В случае команды fdisk -l , раздел Ubuntu можно определить по слову Linux в колонке System . В случае использования команды blkid , раздел определяется по использованию файловой системы ext4 .

Если на компьютере имеется несколько разделов Linux в формате ext4 , обратите внимание на их размер и порядок, в котором они представлены в списке.

Выполните следующие команды для монтирования раздела Ubuntu в /mnt/ubuntu , заменив /dev/sdX# на имя устройства, на котором установлен ваш раздел Ubuntu, определенный выше:

Sudo mkdir /mnt/ubuntu sudo mount /dev/sdX# /mnt/ubuntu

На примере выше раздел Ubuntu находится на /dev/sda1 . Это первый раздел на первом жёстком диске.