Быстрое восстановление загрузчика Grub в Ubuntu

Введение

Как правило, дополнительная настройка GRUB не требуется, все необходимые файлы устанавливаются на компьютер самостоятельно во время инсталляции ОС Linux. Нет необходимости заново устанавливать загрузчик, если, например, пользователю нужно провести конфигурацию, так как в этом случае следует только редактировать содержимое /boot/grub/ menu.lst.

Как произвести правильную установку и настройку — в статье ниже

Установка GRUB целесообразна в том случае, если его физически не существует на устройстве, иными словами, он может быть стёрт после инсталляции другой системы (чаще всего Windows). Иногда случается и такое, что копии загрузчика не функционируют должным образом или GRUB, по желанию владельца ПК, заменяется другим типовым загрузчиком. Какими бы ни были причины, установка GRUB, в любом случае, должна производиться исключительно с «живой» системы (Knoppix, например). Дело в том, что без функционирующего загрузчика, запустить на ПК дистрибутив Linux, который располагается на жёстком диске, попросту не выйдет. В статье рассмотрим способы установки и настройки загрузчика GRUB.

Загрузчик позволяет выбрать, какую запустить операционную систему

Система Ubuntu не загружается

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

  1. Первое самое очевидное — у вас сломался жесткий диск, на который установлена система. Тут все ясно и починить вряд ли что-то получится. Надо менять диск и переустанавливать на новый диск систему. Далее не буду рассматривать этот случай.
  2. Возникли проблемы с загрузчиком grub, который запускается перед загрузкой основной системы. Вы в него попадаете, но дальше видите какие-то ошибки, чаще всего связанные с тем, что не найден корневой раздел системы, поэтому загрузка невозможно. С этими же проблемами вы можете оказаться в режиме recovery mode, где можно выполнить какие-то действия.
  3. У вас поврежден загрузчик, с которого начинается загрузка системы после старта компьютера. Это небольшая область в начальных секторах жесткого диска. Если с загрузчиком проблемы, то загрузка даже не начинается и вы сразу получаете ошибку на тему того, что с данного жесткого диска невозможно загрузиться.

Далее я отдельно рассмотрю второй и третий случаи. Начнем со стандартного режима восстановления grub.

Entering rescue mode

Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.

Machine UUID...
Booting from Hard Disk...
error: no such partition.
Entering rescue mode...
grub rescue>

Это может символизировать как простую ошибку, которую легко исправить, так и серьезные проблемы. Рассказываю, что нужно делать в таком случае и как починить загрузку системы.

Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.

> ls
(hd0) (hd0,gpt3)

В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:

> ls (hd0,gpt3)/

По содержимому раздела видно, что это корневой. Самого раздела /boot, с которого должна начинаться загрузка  ubuntu тут не видно. Если его никто специально не удалял и не затирал, то он пропал в результате какого-то сбоя или ошибки. Можно попробовать это исправить. Сделаем это отдельно ниже, а пока рассмотрим случай, когда boot раздел тут все же присутствует и имеет имя, к примеру, (hd0,gpt2). Тогда там же в консоли grub продолжаем.

> set prefix=(hd0,gpt2)/grub 
> set root=(hd0,gpt2)

Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:

> insmod ext2
> insmod lvm
> insmod part_msdos

Можно для начала попробовать вообще без модулей, а потом добавлять по одному. В самом конце загружаем модуль normal.

> insmod normal
> normal

После этого у вас должно открыться стандартное меню загрузки Ubuntu. Если это так, то вам повезло. Дальше загрузится система. Вам нужно будет в нее зайти и далее перейти в раздел по восстановлению 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 занимает незначительную долю рынка, её различные сборки завоёвывают популярность своей официальной бесплатностью, довольно стабильной работой, а также значительной гибкостью в настройках. Да, некоторые моменты функционируют не так , как на Windows или Mac OS, да и большинство программного обеспечения создаются в первую очередь для этих двух продуктов. Но это останавливает далеко не всех.

Для работы ОС Linux необходимо восстановление загрузчика Grub, если произошел сбой.

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

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

В специальном загрузочном разделе система создаёт главную загрузочную запись. Её английская аббревиатура выглядит как MBR, и расшифровывается как Master Boot Record. При старте компьютера BIOS обращается к этой записи, а потом в действие вступает Grub и, когда всё в порядке, происходит запуск Linux. И если же загрузчик повреждён, при запуске произойдёт ошибка и система запускаться не будет.

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

Самое важное, что следует учесть – это то, что не нужно сразу же думать о переустановке всей системы. Достаточно лишь просто восстановить Grub и всё будет работать, как и прежде

Перейдём к рассмотрению наиболее действенных способов, доступных даже неопытным юзерам.

Установка файлов GRUB на раздел с Linux

Иногда зачем-то бывает необходимо поставить GRUB Legacy на существующий раздел с Linux

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

Необходимо загрузиться с LiveCD Ubuntu (или Super Grub Disk) и примонтировать раздел с вашим Linux. Допустим, вы примонтировали его в каталог /mnt.

Теперь необходимо выполнить в терминале, заменив при необходимости /dev/hda на тот винчестер, в MBR которого вы хотите прописать GRUB Legacy, а /mnt – на тот каталог, куда вы смонтировали ваш раздел с Linux.

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

После этого GRUB Legacy поставится в /mnt/boot/grub и пропишет загрузку себя в MBR винчестера /dev/sda.

Если вы не знаете, что такое /dev/sda, или если у вас /boot отдельным разделом, то сначала разберитесь, что да как, а потом уже выполняйте команду

Через терминал с загрузочного носителя

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

  1. Вставьте флешку или диск в разъём компьютера, после чего в BIOS выставьте носитель в качестве приоритетного для загрузки. Необходимая настройка находится в разделе Boot Device Priority либо First Boot Device. Чтобы запустить BIOS, при включении нажмите нужную кнопку или их комбинацию на клавиатуре. Наиболее популярными вариантами являются F2, Del, Shift + F2, F10. Чтобы не разбираться с БИОСом, можно просто нажать F11 или F12 и выбрать носитель из предложенного списка.
  2. Далее нужно выяснить, на каком разделе винчестера инсталлирована система, а какой указан в качестве загрузчика. Для этого нужно запустить терминал (аналог командной строки Windows), найдя его в меню приложений либо же нажав комбинацию клавиш Ctrl + Alt + T, либо Alt + F2. В открывшемся окошке вам нужно будет впечатать команду sudo fdisk -l. Сразу же утилита просканирует все разделы диска и отобразит информацию о каждом из них. Будет показана даже информация о других установленных на компьютер операционных системах. Вы сможете узнать название раздела, его расположение, размер, а также тип его файловой системы. При условии, что при установке Ubuntu вы совершали разметку вручную, вы без проблем поймёте, какой из разделов является загрузочным, а какой — корневым. При автоматической разметке ориентируйтесь на название Linux. Именно он и будет корнем вашей системы. Имя раздела обычно состоит из аббревиатуры sdc либо sda и цифры с порядковым номером.
  3. Далее нужно выполнить монтирование корневой файловой системы в папку /mnt. В этом вам поможет команда sudo mount /dev/sda1 /mnt, где вместо sda нужно прописать название вашего раздела.

Начиная с этого этапа, восстанавливать Grub в Linux возможно двумя методами.

Способ 1

  1. Введите команду восстановления загрузчика: sudo Grub-install —root-directory=/mnt /dev/sda.
  2. Перезагрузите Компьютер при помощи команды sudo reboot. В результате должно появиться меню выбора ОС.
  3. Если в этом меню отображается устаревшая информация, обновите загрузочную запись MBR. Для этого запустите Linux в обычном режиме, откройте терминал и используйте команду sudo update-Grub. Если это не помогает, примените sudo update-Grub —output=/mnt/boot/Grub/Grub.cfg, а затем повторите предыдущую.
  4. Ещё раз перезапустите компьютер.

Способ 2.

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

Далее вам понадобится запустить оболочку chroot. Для этого в терминале добавьте chroot /mnt /bin/bash

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

env-update

source /etc/profile.

  1. Выполните перезагрузку через reboot.

Что такое grub

Для начала следует четко понимать, что же такое grub. Это один из проектов GNU, который разработан с целью установки нескольких операционных систем на свой ПК, который каждый раз при включении предлагает выбрать нужную ОС.

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

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

  1. Windows.
  2. Linux.

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

Также к не менее распространенным причинам поломки grub следует отнести:

  • самостоятельную корректировку параметров запуска неопытными пользователями;
  • некорректную установку системы, переустановку Windows 7, 8, 10 или Linux;
  • использование других дистрибутивов;
  • переразметку.

При возникновении поломок не спешите заниматься переустановкой систем в полном объеме. Для нормализации работы достаточно будет заняться восстановлением grub.

Восстановление Grub2

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

Но, Вы можете легко восстановить GRUB2 с Ubuntu live CD или USB-накопителя. Этот процесс отличается от восстановления устаревшего загрузчика GRUB в старых дистрибутивах Linux.

Графический метод — восстановление загрузки

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

Этот метод является самым простым для и понятным для новичков, так как все происходит в графическом окне.

Если у вас есть флэшка, на которую вы заранее установили Ubuntu, вставьте ее в свой компьютер и перезапустите. Если вы этого не сделаете, загрузите образ Ubuntu live и запишите его на диск или установите на флешку. Вы также можете скачать специальный компакт-диск Boot Repair с официального сайта разработчиков.

После загрузки в живую среду Ubuntu откройте терминал из 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. После того, как он сканирует вашу систему, нажмите кнопку Рекомендуемый ремонт, чтобы восстановить GRUB2 одним щелчком.

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

Перезагрузите компьютер после использования средства восстановления загрузки. Ubuntu должен загружаться нормально.

Метод терминала

Восстановление Grub2 включает также способ через «Терминал».

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

Откройте терминал после загрузки в живую среду. Идентификация раздела Ubuntu устанавливается с использованием одной из следующих команд:

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

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

Например, используйте / dev / sda1 для первого раздела первого жесткого диска.

Важно: Если у вас есть отдельный загрузочный раздел, пропустите указанную выше команду и смонтируйте загрузочный раздел в / mnt / boot. Если вы не знаете, есть ли у вас отдельный загрузочный раздел, вы, вероятно, этого не сделаете

Выполните следующую команду, чтобы переустановить grub с live CD, заменив / dev / sdX на имя устройства на жестком диске выше. Опустите число. Например, если вы использовали / dev / sda1 выше, используйте / dev / sda здесь.

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

Выводы

Основная идея этого руководства – помочь пользователям при восстановлении загрузчика Grub2. Если у вас есть вопросы, отправляйте их в форму комментариев на нашем сайте. Помогайте нам вместе улучшать Linux и делайте то, что будет развивать наше сообщество: спрашивайте, предлагайте и вносите свой вклад.

Reinstalling GRUB 2 from a Working System

If Ubuntu is operating normally, boot into the working installation and run the following command from a terminal.

X is the drive (letter) on which you want GRUB to write the boot information. Normally users should not include a partition number, which would produce an error message as the command would attempt to write the information to a partition.
sudo grub-install /dev/sdX # Example: sudo grub-install /dev/sda

This will rewrite the MBR information to point to the current installation and rewrite some GRUB 2 files (which are already working). Since it isn’t done during execution of the previous command, running sudo update-grub after the install will ensure GRUB 2’s menu is up-to-date.

Post-Installation

At the conclusion of a normal installation using the default entries:

  • GRUB 2 will be the default bootloader for the computer.
    • GRUB 2 will have written information to the designated drive’s boot area pointing to the Ubuntu installation’s GRUB 2 files. On earlier versions of GRUB 2 on a BIOS systems any information previously contained in the area just beyond MBR will have been overwritten. An improvement to GRUB 2 allows it to write the boot information to another area if a non-Linux application has already used this area.
    • The GRUB 2 files will normally be located in the /boot/grub and /etc/grub.d folders and the /etc/default/grub file in the partition containing the Ubuntu installation.

    • If another Ubuntu/Linux distribution controlled the boot process, it will be replaced by the GRUB 2 settings in the new installation.
    • If the boot was controlled by Windows, the MBR information will now point to the Ubuntu installation and GRUB 2 will control the boot process. The GRUB 2 menu will include an entry for Windows if it found what it considers the necessary Windows boot files.

      Windows boot files in the Windows partition are not affected by the GRUB 2 installation. Only the MBR data is changed. Windows control of the boot process can be obtained by selecting a Windows entry in the GRUB 2 menu during boot.

  • If GRUB has detected another OS it will display a menu so the user may make a selection. If no selection is made, Ubuntu will boot after a brief timeout.
  • If GRUB has detected no other operating systems, no menu will be displayed and the computer will boot the new Ubuntu installation. If the user wishes to display the menu, hold down the SHIFT key as the computer boots.

To view the GRUB 2 file system and configuration options please refer to Grub 2 community documentation page.

Reinstalling GRUB 2

The user may wish to reinstall GRUB 2 for a variety of reasons, including:

  • After installing another operating system which installed its own bootloader, reinstall GRUB2 to return control to the desired OS. When an operating system is added on a multiboot computer it will generally take command of the boot process. Reinstalling GRUB 2 from a within the desired OS will return control of the boot process to that OS.
  • Add the boot information to an additional drive. GRUB 2 can be installed on multiple drives – all pointing to the same operating system. This provides a backup in case the MBR or boot record data on a particular drive becomes corrupted.
  • Replace missing files
  • Repair a broken system, such as when the user sees only “GRUB” on a black screen with no prompt or when the user cannot boot using GRUB 2’s rescue mode options.
  • Upgrade from Grub Legacy

When using the grub-install command, the boot information is updated and written to the designated drive, missing – but not corrupted or intentionally deleted – files are restored. Specifically the core.img, grubenv, and device.map are updated and missing modules restored. If missing, the grub folder will be recreated. The grub-install command does not generate a new GRUB 2 menu (grub.cfg).

Восстановление загрузчика WinXP

Иногда, по совершенно непонятным причинам, возникает необходимость восстановить не GRUB, а загрузчик WinXP. Этот загрузчик, в отличие от GRUB Legacy, не умеет грузить ни Linux, ни более современные версии Windows, так что подумайте перед тем как выполнять приведённые ниже инструкции.

Для восстановления загрузчика WinXP надо загрузиться с установочного диска WinXP и выбрать пункт Восстановление системы. Далее:

  1. В консоли восстановления наберите команду и подтвердите выполнение команды, нажав y
  2. Далее наберите команду и подтвердите выполнение команды, нажав y
  3. Теперь наберите для выхода из консоли.

По умолчанию: GRUB2

Emerge

Если используется старая материнская плата, BIOS которой поддерживает только таблицу разделов MBR, для установки GRUB не нужно никаких дополнительных настроек:

Заметка для пользователей UEFI: запущенная команда выведет включенные значения в переменной GRUB_PLATFORMS, перед компиляцией. Если используется более новая UEFI-совместимая материнская плата, пользователям сперва нужно убедиться, что включено (обычно это уже сделано по умолчанию). Если это не так, добавьте в файл /etc/portage/make.conf до компиляции GRUB2, что позволит собрать пакет с поддержкой EFI:

Если GRUB2 был каким-то образом был установлен до включения , то добавьте строку (из примера выше) в make.conf, после чего повторно переопределите зависимости для для набора пакетов world с помощью emerge :

GRUB2 теперь установлен в системе, но еще не активирован.

Установка GRUB2 на диск

Далее установим необходимые для GRUB2 файлы в каталог /boot/grub/ с помощью команды grub-install. Если предположить, что первый диском (тот, с которого будет загружаться система) является /dev/sda, то одна из следующих команд сделает это:

Когда используется BIOS:

Когда используется UEFI:

ВажноУбедитесь, что системный раздел EFI был смонтирован перед запуском grub-install. grub-install может установить файл GRUB EFI (grubx64.efi) в неправильном каталоге без каких-либо сообщений, о том, что использовался неправильный каталог

ЗаметкаИзмените параметр на корневой каталог системного раздела EFI. Это необходимо, если раздел /boot не был отформатирован как FAT.

ВажноЕсли grub_install вернёт ошибку , необходимо перемонтировать специальную точку монтирования efivars в режим чтения-записи:

Некоторые производители материнских плат поддерживают только каталог /efi/boot/ для расположения файла .EFI в системном разделе EFI (ESP). Установщик GRUB может выполнить эту операцию автоматически, если использовать параметр . Убедитесь, что ESP смонтирован до запуска следующих команд. Предполагая, что ESP смонтирован в /boot (как было предложено ранее), выполните:

Это создает каталог по умолчанию, определенный спецификацией UEFI, а затем скопирует файл grubx64.efi в каталог EFI «по умолчанию», определенный той же спецификацией.

Настройка

Далее, нужно сгенерировать конфигурационный файл GRUB2 на основе настроек пользователя, указанных в файле /etc/default/grub и сценариях /etc/grub.d. В большинстве случаев ничего не нужно настраивать, так как GRUB2 автоматически определяет, какое ядро есть для загрузки (самый высокий приоритет у /boot/) и какая файловая система у rootfs. Здесь также можно добавить параметры ядра в /etc/default/grub, используя переменную GRUB_CMDLINE_LINUX.

Для создания окончательной конфигурации GRUB2, запустите команду grub-mkconfig:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-4.9.16-gentoo
Found initrd image: /boot/initramfs-genkernel-amd64-4.9.16-gentoo
done

Вывод команды должен содержать по крайней мере один образ Linux, так как он необходим для загрузки системы. Если используется initramfs или ядро создавалось с помощью genkernel, также должен быть указан правильный образ initrd. Если это не так, перейдите в /boot/ и проверьте содержимое, используя команду ls. Если файлы действительно отсутствуют, вернитесь к инструкции по настройке и установке ядра.

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий