Что делать при ошибке grub rescue?

Как восстановить загрузчик windows 10 после установки ubuntu

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

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

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

  1. Загрузите Linux с флешки или диска, который использовался при установке.
  2. Откройте терминал, используя сочетание Ctrl+Alt+T. Введите команду «sudo fdisk –l», чтобы посмотреть структуру разделов.
  3. Посмотрите в столбце «Device Boot» корневой раздел Linux Ubuntu (для Mint 17 и других сборок процедура ничем не отличается). В приведенном примере корневой раздел обозначается как sda5.
  4. Смонтируйте том в систему с командой «sudo mount /dev/sda5 /mnt». Вместо «sda5» необходимо написать номер тома, где расположен корневой раздел вашей Ubuntu или Mint 17.
  5. Для восстановления загрузчика введите «sudo grub-install —root-directory=/mnt /dev/sda».

После перезаписи загрузчика необходимо перезагрузить компьютер, используйте команду «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. Многие новички используют этот радикальный метод, лишь бы не связываться с терминалом. Однако переустановка приводит к удалению пользовательских файлов, поэтому применять её из-за банального повреждения загрузчика – слишком большая роскошь.

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

Ручная правка загрузчика Grub для загрузки в режим восстановления

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

  1. В меню Grub выбираем строку, соответствующую загрузке Linux в нормальном режиме (должна быть самой первой в списке), и нажимаем клавишу e.
  2. Откроется редактирование параметров загрузки дистрибутива Linux. Здесь нужно найти строку, начинающуюся с , после чего перейти в её конец — сделать это проще всего с помощью клавиши End или комбинации клавиш Ctrl + E. Затем, в эту строку следует вписать вписать .
  3. После этого нажать комбинацию Ctrl + X для загрузки системы — и если предыдущая команда была написано верно и в нужном месте, то система загрузится в режим восстановления.

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

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

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

  • Запись и установка специального образа диска 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 и т.д.

Пользовательские элементы меню загрузки

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

menuentry «Linux on USB» { set root=(hd1,1) linux /vmlinuz root=/dev/sdb1 ro quiet splash initrd /initrd.img }

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

set root=UUID=54f22dd7-eabe

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

Настройка загрузчика Grub

Для того чтобы новое ядро загружалось автоматически, необходимо поменять несколько параметров запуска дистрибутива в загрузчике Grub. Откройте конфигурационный файл /etc/defaul/grub и измените значение переменной GRUB_DEFAULT на 0:

Это означает, что по умолчанию будет использоваться первое ядро , которое находится в списке Grub. А первым обычно размещается именно самое новое. Чтобы обновить конфигурацию выполните команду:

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

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

Быстрое исправление

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

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

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

sudo mount /dev/sda5 /mnt

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

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

Теперь вы можете покинуть live-окружение и перейти в окружение установленного на разделе, представленном файлом устройства /dev/sda5, дистрибутива с помощью утилиты chroot:

$ sudo chroot /mnt /bin/bash

Все готово для установки, проверки и обновления системного загрузчика GRUB 2. Как и ранее, для переустановки системного загрузчика следует использовать команду:

sudo grub2-install /dev/sda

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

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

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

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

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

Загрузка в Live-режиме

Теперь нужно загрузиться с созданного диска или флешки.

Чтобы это сделать сначала нужно в BIOS выбрать приоритет загрузки с CD/DVD или с USB (если вы используете флешку).

На современных компьютерах, где используется BIOS/UEFI, для входа в BIOS нужно при включении компьютера удерживать специальную клавишу. У разных производителей клавиша может быть разной. Обычно это: F2, Del, F10, Esc, F11 или F3.

На старых компьютерах, где используется классический BIOS, чтобы войти в BIOS нужно при загрузке компьютера, в самом начале, когда появляется логотип материнской платы, нажать специальную клавишу. Для разных материнских плат клавиша может быть разной. Обычно это одна из клавиш: Del, F1, F2, F8, F10 или какая-нибудь другая, или даже сочетание клавиш. Подробности: Настройка BIOS для загрузки с CD/DVD-диска или с USB-носителя

Updating GRUB package

The very first thing to do is make sure that GRUB is up-to-date. When you update the system, pacman will take care of updating GRUB to the latest version.

sudo pacman -Syu

If you want to manually make sure that the system has the latest version of GRUB, use the following command.

sudo pacman -S grub

This command will reinstall GRUB, of course. However, pacman will check for the latest version from the server and if there’s an update available, will grab and install it.

Editing GRUB configuration

GRUB allows custom configuration. You can perform a number of actions using this opportunity, for example, setting the default OS (if multiple OS is installed), GRUB menu timeout, custom background image and much more. It’s also possible to set custom scripts for GRUB.

GRUB uses its own configuration file for performing all the actions. The file is located at “/etc/default/grub”. For GRUB scripts, “/etc/grub.d” directory is used.

Edit the GRUB configuration file.

sudo <editor> etcdefaultgrub

For example, to change the GRUB wallpaper, change the value of “GRUB_BACKGROUND” variable.

GRUB also allows coloring the texts for easier reading.

At the start of the file, you’ll notice “GRUB_DEFAUTL” variable. It’s used to define which OS is the default one in the bootloader.

The next entry “GRUB_TIMEOUT” will decide how long the GRUB menu should remain open. By default, the value is 5 (seconds). If you want to unlimited GRUB menu show, set the value to any negative integer.

Once editing is complete, save the file.

Let’s check out the GRUB script directory.

GRUB customizer

This is a very helpful tool that allows easier customization of various GRUB settings. It’s a graphical tool and available directly from the Arch Linux repository.

sudo pacman -S grub-customizer

Start “grub-customizer” from the menu.

It’ll require the root password to start. After all, you’re calling a tool to perform system-level changes.

Every single option of the tool is simple and self-explanatory.

Reload GRUB

After making all the changes, it’s necessary to update the GRUB cfg file at the “/boot/grub” directory. Run the following command after making any change to GRUB’s configuration file.

sudo grub-mkconfig -o bootgrubgrub.cfg

If you’re not interested in running this lengthy command, you can use the “update-grub”. It’s a script that runs the previously mentioned command. However, it’s not available on the Arch Linux official directory. “update-grub” has to be grabbed from AUR.

Prepare your system for building and installing AUR packages.

sudo pacman -S git base-devel

Grab “update-grub” from AUR.

git clone https://aur.archlinux.orgupdate-grub.git

Start building “update-grub”.

Note: For easier AUR access, it’s recommended to use a suitable AUR helper. AUR helpers can automate the entire task. Learn how to use AUR.

yay -S update-grub

Once the installation is complete, you can directly call “update-grub” to do the job.

sudo update-grub

Final thoughts

GRUB is the most popular bootloader for all the Linux distros. It can work with other OS as well. For taking full control over the boot process, it’s necessary to have knowledge on manipulating GRUB configurations and updating GRUB properly.

Настройка Grub через конфигурационные файлы

Сразу нужно сказать, что существует два способа настройки Grub Ubuntu, через конфигурационные файлы. Первый — через конфигурационный файл утилиты grub-mkconfig, который позволяет задать общие параметры для загрузчика и ручное редактирование /boot/grub/grub.cfg.

Первый — рекомендованный, и с помощью него можно настроить большинство параметров, в этом случае настройки не собьются, когда вы обновите ядро или загрузчик. Второй вариант еще более гибкий, но после любого обновления вы потеряете свои настройки. Так что то что можно настроить через /etc/default/grub настраиваем через него, все остальное — через /boot/grub/grub.cfg. Сначала рассмотрим первый вариант.

Настройка Grub через /etc/default/grub

Как я уже сказал, настройка загрузчика через файл /etc/default/grub, на основе которого будет автоматически создан /boot/grub/grub.cfg более желательна. Давайте рассмотрим параметры, которые вы можете здесь настроить.

  • GRUB_DEFAULT — указывает какой пункт нужно загружать по умолчанию. Может быть указан номер, или полное название или же строка saved, которая значит, что нужно загрузить пункт, указанный с помощью grub-reboot;
  • GRUB_SAVEDEFAULT — загружать последнюю использованную запись по умолчанию;
  • GRUB_HIDDEN_TIMEOUT — сколько секунд ждать перед тем, как вывести меню;
  • GRUB_HIDDEN_TIMEOUT_QUIET — если установлено true, то меню не будет показано;
  • GRUB_TIMEOUT — сколько секунд будет показано меню;
  • GRUB_CMDLINE_LINUX — добавить опции ядра для всех ядер, как обычных, так и режима восстановления;
  • GRUB_CMDLINE_LINUX_DEFAULT — добавить опции ядра только для обычных ядер;
  • GRUB_CMDLINE_LINUX_RECOVERY — опции ядра, только для режима восстановления;
  • GRUB_BADRAM — указать адреса оперативной памяти, которые не нужно использовать;
  • GRUB_TERMINAL — модуль терминала для Grub. Можно использовать console, только для текстового режима или gfxterm с поддержкой графики;
  • GRUB_GFXMODE — разрешение экрана в Grub, лучшие использовать auto, чтобы система выбрала сама то что ей нужно.
  • GRUB_DISABLE_RECOVERY — не включать в меню пункты восстановления;
  • GRUB_DISABLE_OS_PROBER — не искать другие операционные системы;
  • GRUB_BACKGROUND — адрес картинки для фона, должна находиться в той же папке что и файлы grub;
  • GRUB_THEME — устанавливает тему Grub.

Например, можно использовать такую конфигурацию:

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

See also

  • In Chainloading the use of GRUB2 to boot other boot loaders is described. This is important to read when dual-booting systems, or when GRUB2 needs to be configured to boot ISO files.
  • In Advanced storage the necessary steps are documented on how to install and use GRUB on more advanced storage situations, such as software RAID, logical volumes or encrypted file systems.
  • In Configuration variables an exhaustive list of GRUB configuration variables, as used by /etc/default/grub, is documented.
  • In Troubleshooting a list of common GRUB errors (with their solutions) is presented.
  • In Hybrid partition table the use of a mixed MBR/GPT setup is documented, as well as how to use such hybrid partition layout with GRUB.

Немного теории[править]

DOS Partition Tableправить

Загрузчик ОС может находиться как в Master Boot Record (MBR), так и в boot record раздела. Если загрузчик находится в BR раздела, этот раздел должен быть помечен как активный, а в MBR должен находиться стандартный загрузчик, который находит активный раздел и запускает следующий загрузчик оттуда.

Рекомендуемые средстваправить

Действия, описанные в разделе «Восстановление загрузки при повреждении MBR», можно сделать из любой ОС любыми имеющимися там средствами. Для действий, описанных в разделе «Подготовка к восстановлению основного загрузчика» и далее требуется любой LiveCD с Linux, соответствующий по архитектуре установленной на восстанавливаемой системе (но x86_64 может быть применён для i586). Во многих образах ALT Linux присутствует возможность загрузиться в режиме восстановления (rescue). Как правило, в этих образах присутствуют две полезные утилиты — fixmbr и mount-system. Кроме того, существует специализированный LiveCD ALT Linux Rescue.

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

Для этого вам потребуется загрузочная флешка либо диск с записанным дистрибутивом 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.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector