- Восстановление GRUB
- Содержание
- Восстановление с помощью LiveCD/USB
- Первый способ
- Восстановление используя chroot
- Восстановление в rescue mode
- Howto Fix Grub
- Contents
- Other titles for this same problem.
- Rescatux
- Windows Solution
- Quick solution
- Not So Quick solution
- Classical solution
- Advanced solution
- Problematic solution
- GRUB solution (on its own)
- GRUB solution (Linux shell)
- GRUB2 solution (on its own)
- GRUB2 solution (Linux shell) (Recommended)
- GRUB2 solution (Linux shell) (Maybe deprecated)
- Tecnical explanation
- One thing you should know
- Problems ?
- Fix Grub Not Showing For Windows 10 Linux Dual Boot
- Fix Dual Boot system booting straight to Windows
- Step 1
- Step 2
- Step 3
- Step 4
- No success?
- Восстановление GRUB
- Подготовка
- Загрузка в Live-режиме
- Открываем терминал
- Определение разделов
- Вывод fdisk для BIOS
- Вывод fdisk для UEFI
- Монтирование разделов
- Монтирование EFI-раздела
- Выполняем chroot на /mnt
- Генерация файла конфигурации GRUB
- Устанавливаем GRUB
- Перезагрузка компьютера
- Шпаргалка
Восстановление GRUB
Содержание
GRUB — это основной загрузчик Ubuntu начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии GRUB, известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать соответствующую статью.
На любом загрузочном винчестере есть так называемая Главная загрузочная запись (англ. master boot record, MBR), к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.
Восстановление с помощью LiveCD/USB
Первый способ
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
На экран должна быть выведена примерно такая таблица:
Из таблицы видим, что Linux (загрузочный /-корень отмечен звёздочкой) стоит, в нашем случае, на разделе /dev/sdc1.
Теперь подключим этот раздел в /mnt следующей командой (следим за пропусками между кодами и порядковыми номерами разделов):
Затем, для записи grub в MBR, вводите следующую команду:
В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.
Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:
Восстановление используя chroot
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
На экран должна быть выведена примерно такая таблица:
Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:
Теперь перейдем в окружающую среду chroot:
Теперь необходимо установить GRUB, используя команду:
Также в некоторых случаях может помочь вариант:
Если все прошло успешно, выходим из chroot командой:
Теперь необходимо отмонтировать разделы:
Если Вы монтировали раздел /boot воспользуйтесь командой:
Затем перезагрузим Ваш компьютер командой:
При необходимости Вы можете обновить меню загрузчика командой:
Восстановление в rescue mode
При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:
Вначале следует дать команду:
В ответ она выведет, например, следующее:
Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos. Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.
Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) — первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов — с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:
Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:
если в ответ получаем список всех файлов в этой директории, то диск и раздел выбраны правильно. Подгружаем модули:
После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.
Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:
Где sdX, диск, на который нужно установить Grub.
Howto Fix Grub
This documentation is outdated. It’s only useful if you are using Grub legacy. Please check current documentation at: Wizard — Restore Grub
After windows reinstallation, Linux no longer boots!
Contents
Other titles for this same problem.
- How do I restore GRUB?
- I have lost my GRUB, how do I find it again?
- I have reinstalled Windows and the Ubuntu selection menu is not there.
Rescatux
- Please check the complete Wizard at: Wizard – Restore Grub with Rescatux
- Select Restore grub / Fix Linux Boot option and click on OK button
- Select the partition where your main Linux is and click on OK button
- Select the hard disk where you want Grub to be installed (usually the first one)
- Grub was installed OK confirmation / Grub was not installed error will appear
Windows Solution
This is the less complicated and most easy solution for a Windows user. Please check: Auto Super Grub Disk.
Quick solution
- GRUB => MBR & !LINUX! (1) AUTO ;-)))
- SGD fixes GRUB automagically for you and presents your grub boot menu again.
Not So Quick solution
- GRUB => MBR & !LINUX! (>2) MANUAL |8-)
- Choose the partition where the Linux GRUB you want to recover is located.
- Choose the partition where the Linux GRUB you want to boot is located.
Classical solution
- Choose the partition where the Linux GRUB you want to recover is located and SGD prompts you: SGD HAS SUCCEEDED.
Advanced solution
Sometimes the hard disk where you want to GRUB to be installed might not be the first one. If you want to install GRUB into a non-standard MBR you can choose:
- Super Grub Disk (WITH HELP) :-)))
- English Super Grub Disk
- Advanced
- Grub
- Restore Grub to MBR
- Restore Grub to MBR manually
- Select the partition where GRUB it is found (i.e. stage1 is found).
- Select the hard disk where you want GRUB installed to its MBR.
Problematic solution
Sometimes BIOS does not «show» Super Grub Disk’s grub the correct hard disk boot order. It’s even possible that SGD says that it’s fixing grub ok and it actually fixes it but in the wrong hard disk. The hard disk that it is not the first one to boot. It’s also possible that you try to boot your computer’s Linux and you have some errors but when you boot normally it works without any problem.
If you only have two hard disks from the quick menu choose: EASY LIVE SWAP and then try to Fix Grub another time and SGD should succeed ok.
GRUB solution (on its own)
Find the partition where GRUB stage1 it is.
Let’s suppose that you want to restore GRUB from second partition on first hard disk (hd0,1).
Just type these commands:
Now you can reboot your machine with the reboot command.
GRUB solution (Linux shell)
Let’s suppose you know that your Linux installation is located at sda3 partition. From a live cd you should do:
Tip: You might have to change ext3 to fit your partition filesystem type.
GRUB2 solution (on its own)
As long as I know GRUB2 cannot recover itself on its own.
GRUB2 solution (Linux shell) (Recommended)
GRUB2 solution (Linux shell) (Maybe deprecated)
You have to type the same commands as the ones found at: #GRUB solution (Linux shell) where we suppose that you have a GRUB2 installed in the GRUB partitions and thus grub-install is not the command from GRUB but the command from GRUB2.
Tecnical explanation
When you reinstall Windows, MBR boot code points to Windows partition boot sector. Windows partition boot sector has a programa that loads Windows. When you reinstall GRUB, MBR boot code points either to GRUB’s stage1_5 file (After MBR and before first partition) or to GRUB’s stage2 file (found at the linux filesystem). Either stage1_5 or stage2 read the menu.lst file and present the GRUB menu to the user.
One thing you should know
- These methods only restore GRUB successfully if a stage1,stage2 (and optionally a stage1_5 file) is found. If you have deleted these files the GRUB solution (Linux shell) might help although it might be better to reinstall GRUB from a chroot environment got from a live cd.
If your Linux filesystem has errors GRUB might not be able to find its files even if they are there. So sometimes is advised to try to run the:
command as root where DEV is your linux partition device.
will fix the third partition from an scsi or sata first disk (Although it might not actually be the first one).
- OpenSolaris GRUB cannot be restored to MBR which this method. You need to boot Linux and then use the install-grub command. See man install-grub for more info.
- If menu.lst is incorrect you will be able to access your menu.lst again but maybe Linux entries might not boot.
If you cannot get to restore grub this way you can always try to boot Linux and then use the Grub Solution (on its own) method or the Grub Solution (Linux shell) method.
Problems ?
You can always check the possible problems when fixing grub from Super Grub Disk in Super Grub Disk Problems page.
Fix Grub Not Showing For Windows 10 Linux Dual Boot
Brief: Can’t access Linux in dual boot because your system boots straight to Windows without showing the Grub menu? Here’s a possible fix for you.
So, finally, I upgraded Windows 8.1 to Windows 10 last night. Since I dual boot Windows 8.1 with Ubuntu, I was expecting to see the Grub menu at boot so that I could choose the operating system I wanted to use. But the upgrade to Windows 10 from Windows 8.1 messed up the settings and it never showed the grub menu. It just kept booting into Windows 10 at each startup.
Frustrating, isn’t it? It seemed like there was no way to access Ubuntu at all. No – the Ubuntu install on the other partition was fine. It was just the UEFI settings that were different in the boot manager. I verified everything by accessing the UEFI firmware settings in Windows 10.
If you too are unable to boot into Grub and you’re just rebooting Windows 10 repeatedly, here’s the simple solution that worked for me.
Warning!
Playing with your boot settings can leave your system messed up. I advise having a recovery disk or Windows installation disk with you to reverse boot settings. Keeping the Linux live USB can also help in many situations.
Fix Dual Boot system booting straight to Windows
Though I’m referring to Windows 10, the steps are equally valid for Windows 8 and 8.1. Similarly, I’m using Ubuntu in dual boot here, but the trick applies to all other Linux distributions such as Linux Mint, etc.
Step 1
In Windows, go to the menu.
Step 2
Search for Command Prompt, right click on it to run it as administrator.
Step 3
This is strictly for Ubuntu. Other distributions might have some other folder name.
In here, copy and paste the command below:
You don’t need to enter a password or anything like that. The command should run just fine given that your account has admin rights.
Step 4
Restart and you’ll be welcomed by the familiar Grub screen. I hope this quick tutorial helped you fix the Grub issue.
No success?
If the above method didn’t change anything, you can reverse it using the command below:
Even if the above command didn’t work, try the one below to set the boot back to Windows.
If you’re not able to boot into the Windows installation, insert the Windows installation disk and there you’ll have access to the command prompt.
You can try some suggestions mentioned here to stop dual boot from booting straight into Windows.
If you see a “no boot found” error, you can try this or this solution.
Like what you read? Please share it with others.
Восстановление GRUB
В данной статье рассматривается процесс восстановления загрузчика GRUB 2.
Причины, по которым может понадобится восстановить GRUB, могут быть разными.
Очень часто требуется восстанавливать GRUB после установки Windows. Если у вас был установлен Linux и вы установили в соседний раздел или на соседний диск Windows, то после перезагрузки компьютера загрузится Windows, как будто Linux вообще пропал. Загрузчик GRUB даже не появился. Иногда подобное происходит при обновлении существующего Windows.
Иногда требуется восстановление GRUB после установки Linux, когда неверно был выбран раздел для установки загрузчика.
Во всех случаях нужно выполнить восстановление загрузчика GRUB. Существуют разные способы восстановления. В данном руководстве рассматривается процесс использованием загрузочного Live-образа Linux. Загрузившись в Live-систему вам нужно будет ввести несколько команд, чтобы выполнить восстановление. Рассматривается способ восстановления без использования сторонних программ.
Также иногда различают процесс восстановления для систем с BIOS и с UEFI. Описанный ниже способ рассматривает оба этих случая. Я тестировал его как на компьютерах с традиционным BIOS, так и с UEFI.
Подготовка
Для восстановления GRUB потребуется загрузочный диск или флешка с дистрибутивом Linux. Если у вас его нет, то нужно скачать образ с дистрибутивом. Например, можно скачать ISO образ Ubuntu.
Для создания загрузочной флешки можно воспользоваться программой Etcher. Она работает в Linux, Windows и MacOS. Подробная инструкция: Как создать загрузочную флешку.
Загрузка в 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-носителя
Открываем терминал
Итак, вы загрузились в Live-режиме. Теперь нужно открыть терминал.
В Ubuntu и некоторых других дистрибутивах это можно сделать нажатием сочетания клавиш Ctrl+Alt+T . Или запустить терминал через меню программ.
Определение разделов
Теперь нужно определить раздел диска, на котором был установлен GRUB.
Выведем список разделов, для этого выполняем команду (в конце команды стоит строчная буква L):
Вывод fdisk для BIOS
Пример вывода команды:
В моем случае мы видим 2 диска: /dev/sda (SSD диск) и /dev/sdb (флешка, с которой сейчас загружена Live-система).
Нас интересует диск /dev/sda . На диске /dev/sda создано несколько разделов. В моем случае /dev/sda4 , на котором установлен Windows, а также 4 раздела с пометкой Linux (см. последний столбец таблицы). У вас скорее всего может быть один раздел Linux (корневой раздел) или два раздела (корневой и home). На одном из этих разделов установлен GRUB.
То есть из таблицы вы должны определить какой раздел является корневым, на нем скорее всего у вас установлен GRUB. В моем случае GRUB установлен в раздел /dev/sda2 . Далее по тексту я буду его использовать (вы должны будете указывать свой раздел).
Иногда бывает, что для загрузчика GRUB выделен отдельный раздел (он называется boot-раздел). Если это так, то на следующем шаге вам нужно будет примонтировать корневой раздел и раздел с загрузчиком.
Вывод fdisk для UEFI
Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:
Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1 , которые расположены на диске /dev/nvme0n1 .
Монтирование разделов
Примонтируем корневой раздел. Выполняем команду (вместо /dev/sda2 вы должны указать свой раздел):
Мы примонтировали раздел /dev/sda2 в директорию /mnt .
Если для загрузчика у вас выделен отдельный раздел, то нужно примонтировать еще и его (вместо /dev/sdX укажите ваш boot-раздел):
Теперь можно посмотреть содержимое директории /mnt , чтобы убедиться, что мы примонтировали верный раздел:
Вывод команды должен быть примерно следующим. Обратите внимание есть ли в этом списке каталог /boot , так как именно в нем установлен GRUB.
Также можно проверить, что директория boot не пустая:
У меня вывод команды выглядит следующим образом. Обратите внимание на присутствие каталога с именем grub .
Далее нужно создать ссылки на несколько директорий, к которым GRUB должен иметь доступ для обнаружения всех операционных систем. Для этого выполните команды:
Монтирование EFI-раздела
Если у вас используется UEFI, то еще нужно примонтировать EFI-раздел в директорию /mnt/boot/efi (выше я указал пример вывода команды fdisk -l в котором показан EFI-раздел):
Выполняем chroot на /mnt
На предыдущем шаге мы смонтировали все необходимые директории в директорию /mnt . Теперь переключимся (выполним chroot ) на данную директорию. Выполняем команду:
Генерация файла конфигурации GRUB
Данный шаг нужно выполнять не всем. Если у вас был установлен GRUB и вы уверены, что его конфигурация верная, то можно перейти к следующему шагу.
Для генерации файла конфигурации GRUB используется команда update-grub . Данная команда автоматически определяет файловые системы на вашем компьютере и генерирует новый файл конфигурации. Выполняем команду:
В выводе команды будет показано, какие операционные системы были найдены.
Если вдруг утилита update-grub не определила ваш Windows (у меня такое было для UEFI), то можно будет запустить update-grub повторно уже из вашей Linux-системы, когда вы в нее загрузитесь (мне это помогло и Windows определился).
Устанавливаем GRUB
Осталось выполнить установку GRUB на диск. Мы определили раздел на котором у нас установлен GRUB на первом шаге данного руководства. В моем случае это раздел /dev/sda2 , который расположен на диске /dev/sda .
Для установки GRUB используется команда grub-install , которой нужно передать в качестве параметра диск, на который будет выполняться установка (в моем случае это диск /dev/sda ):
https://askubuntu.com/questions/88384/how-can-i-repair-grub-how-to-get-ubuntu-back-after-installing-windows
If Ubuntu is installed in EFI mode, and EFI partition UUID has changed, you may need to update it in /etc/fstab. Compare it:
blkid | grep -i efi
grep -i efi /etc/fstab
Перезагрузка компьютера
Выходим из окружения chroot, для этого выполняем команду:
Отмонтируем все разделы, которые мы примонтировали:
Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:
Если вы монтировали EFI-раздел, отмонтируем:
Отмонтируем корневой раздел:
Перезагружаем компьютер. Для этого выполняем команду:
Если во время перезагрузки компьютера меню GRUB не появилось, то это еще не значит, что он не восстановился. Возможно, просто установлена нулевая задержка и меню не показывается. Чтобы показать меню GRUB нужно во время загрузки, после того, как появился логотип материнской платы:
- удерживать клавишу Shift , если у вас классический BIOS;
- нажать Esc , если у вас UEFI.
Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:
Мне это помололо на компьютере, который использует UEFI.
Шпаргалка
Мы рассмотрели процесс восстановления загрузчика GRUB 2. Для удобства привожу краткую шпаргалку по командам, которые мы выполняли. Учитывайте, что названия и имена разделов ( /dev/sd. ) у вас могут отличаться.