Восстановление GRUB Legacy
Содержание
Вкратце: на любом винчестере есть так называемая MBR область, к которой обращается BIOS при загрузке компьютера с этого винчестера. В эту MBR загрузчик системы должен записать ‘ссылку’ на свои основные файлы, которые храняться уже на основных разделах винчестера. Так вот, Windows при установке перетирает без всяких вопросов ссылку Linux и ставит свою, в итоге, Linux пропадает из меню загрузки. Слава богу, Windows так же втихую не убивает сам Linux, так что восстановить последствия беспредела достаточно просто.
Восстановление MBR с использованием LiveCD Ubuntu
Вам понадобиться всего лишь LiveCD с Ubuntu (обычный диск Ubuntu Desktop, в принципе, любой версии до 9.04 включительно). Загрузите компьютер с него, в появившемся при загрузке меню выберите пункт Загрузить Ubuntu без установки на компьютер, дождитесь окончания загрузки.
Теперь откройте терминал, он находится в меню Приложения→Стандартные→Терминал в русской версии или в меню Applications→Accessories→Terminal в английской версии.
В открывшемся терминале наберите:
Вы увидите нечто похожее на:
Это значит, что вы попали в программу управления grub. Теперь нам надо выяснить, где на вашем компьютере храниться основная часть загрузчика GRUB, для этого наберите:
В результате выполнения этой команды вы увидите нечто типа:
Всё, теперь можно перезагрузиться, при загрузке вы снова сможете попасть в свою Ubuntu. Правда, если вы устанавливали Windows, то он не появится волшебным образом в меню загрузки, см. ниже пункт про добавление в меню опций загрузки Windows и других ОС.
Super Grub Disk
Существует специальный диск для выполнения восстановительных работ с MBR, скачать его можно с официального сайта:
Инструкция по восстановлению остаётся такой же, как и в случае с LiveCD Ubuntu, с той лишь разницей, что необходимо грузиться с загрузочного диска Super Grub Disk, подробнее см. на сайте.
Установка файлов GRUB на раздел с Linux
Иногда зачем-то бывает необходимо поставить GRUB Legacy на существующий раздел с Linux. Например, если вы по неосторожности сумели повредить файлы загрузчика. Делается это очень просто. Необходимо загрузиться с LiveCD Ubuntu (или Super Grub Disk) и примонтировать раздел с вашим Linux. Допустим, вы примонтировали его в каталог /mnt.
После этого GRUB Legacy поставится в /mnt/boot/grub и пропишет загрузку себя в MBR винчестера /dev/sda.
Добавление Windows и других ОС в меню загрузки GRUB
Восстановление загрузчика WinXP
Иногда, по совершенно непонятным причинам, возникает необходимость восстановить не GRUB, а загрузчик WinXP. Этот загрузчик, в отличие от GRUB Legacy, не умеет грузить ни Linux, ни более современные версии Windows, так что подумайте перед тем как выполнять приведённые ниже инструкции.
Для восстановления загрузчика WinXP надо загрузиться с установочного диска WinXP и выбрать пункт Восстановление системы. Далее:
Fix Minimal BASH like line editing is supported GRUB Error In Linux
The other day when I installed Elementary OS in dual boot with Windows, I encountered a Grub error at the reboot time. I was presented with command line with error message:
Minimal BASH like line editing is supported. For the first word, TAB lists possible command completions. anywhere else TAB lists possible device or file completions.
Indeed this is not an error specific to Elementary OS. It is a common Grub error that could occur with any Linux OS be it Ubuntu, Fedora, Linux Mint etc.
In this post we shall see how to fix this “minimal BASH like line editing is supported” Grub error in Ubuntu based Linux systems.
You can read this tutorial to fix similar and more frequent issue, error: no such partition grub rescue in Linux
Prerequisites
To fix this issue, you would need the followings:
Once you make sure that you have the prerequisites, let’s see how to fix the black screen of death for Linux (if I can call it that ;)).
Fixing “minimal BASH like line editing is supported” Grub error
The process is simple if you follow the steps carefully (not blindly). You may have to change the partition names as per your system.
Step 1: Boot in to the live Linux USB.
Step 2: You need to find out iif your system uses EFI or BIOS. To do that, open the terminal and use the following command to list your partitions:
Look closely in its output because it could be a huge output. If you see something like EFI, it’s an indication that your system has EFI. This information is important in later stages.
You need to note two things here. The partition where EFI is installed (if it is installed) and the partition where root partition is installed.
Step 3 (for UEFI systems only): Now, what you need to do is to reinstall grub.
Mount the root partition first. I am using /dev/sda2 for root but you should change this with what you have on your system:
If you have EFI system, mount that partition as well:
Now, the next step is to finally install grub for UEFI system like this:
You should have the grub back to normal.
Step 3 (only for non-EFI system): Installing grub on non-EFI system is even easier.
Mount the root partition of Linux:
And then install grub:
Reboot and it should be fine.
Alternate method to fix this “minimal BASH like line editing is supported” Grub error in Ubuntu based Linux
I know that you might point out that this Grub error is not exclusive to Ubuntu or Ubuntu based Linux distributions, then why am I putting emphasis on the world Ubuntu? The reason is, here we will take an easy way out and use a tool called Boot Repair to fix our problem. I am not sure if this tool is available for other distributions like Fedora. Without wasting anymore time, let’s see how to solve minimal BASH like line editing is supported Grub error.
Step 1: Boot in lives session
Plug in the live USB and boot in to the live session.
Step 2: Install Boot Repair
Once you are in the lives session, open the terminal and use the following commands to install Boot Repair:
Note: Follow this tutorial to fix failed to fetch cdrom apt-get update cannot be used to add new CD-ROMs error, if you encounter it while running the above command.
Step 3: Repair boot with Boot Repair
Once you installed Boot Repair, run it from the command line using the following command:
Actually things are pretty straight forward from here. You just need to follow the instructions provided by Boot Repair tool. First, click on Recommended repair option in the Boot Repair.
It will take couple of minutes for Boot Repair to analyze the problem with boot and Grub. Afterwards, it will provide you some commands to use in the command line. Copy the commands one by one in terminal. For me it showed me a screen like this:
It will do some processes after you enter these commands:
Once the process finishes, it will provide you a URL which consists of the logs of the boot repair. If your boot issue is not fixed even now, you can go to the forum or mail to the dev team and provide them the URL as a reference. Cool, isn’t it?
After the boot repair finishes successfully, shutdown your computer, remove the USB and boot again. For me it booted successfully but added two additional lines in the Grub screen. Something which was not of importance to me as I was happy to see the system booting normally again.
Did it work for you?
Like what you read? Please share it with others.
Настройка и восстановление загрузчика Grub
Что же делать в этой ситуации? Хорошая новость заключается в том, что результатом получения одного из этих сообщений является программная ошибка. Вы можете исправить ее, отредактировав конфигурационный файл или же переустановив программу-загрузчик. Оба этих действия нетрудно выполнить, но только в том случае, если вы хорошо представляете себе, что вы должны получить в конечном результате. Поэтому для начала нам потребуется немного вводной информации. Я постараюсь объяснить все как можно проще.
Процесс загрузки
После успешного выполнения задачи все настройки будут установлены таким образом, что ядро операционной системы может управлять физическими файловыми системами, контроль над которыми и возложен на него.
Примерно так обстоят дела с загрузкой в системе PCLinuxOS. Однако то, о чем было вкратце описано выше, является неполной картиной всех процессов, происходящих в системе Grub. Более того, этот способ далеко не единственный, применяемый для загрузки операционных систем.
Восстановление
Приведем общую картину загрузки компьютера, применимую к дистрибутивам PCLinuxOS, но несколько отличную для других операционных систем. К примеру, Ubuntu и все дистрибутивы Linux, основанные на Ubuntu, на сегодняшний день используют загрузчик Grub2, алгоритм работы которого отличается от представленного здесь.
Как мы узнали ранее, загрузчику Grub необходимо знать три вещи, с помощью которых он сможет загрузить операционную систему:
Во время загрузки системы информация может быть введена в командной строке, поэтому требуется навык для работы с ней.
Для восстановления операционной системы можно загрузиться с LiveCD-диска, который использовался для установки PCLinuxOS на жесткий диск. С оптического диска система PCLinuxOS загрузится в оперативную память ОЗУ, после чего можно будет исправить любой поврежденный файл на жестком диске компьютера.
Поиск поврежденного файла
У вас будет запрошен пароль суперпользователя. Это пароль администратора (root) системы, но не пароль вашей пользовательской учетной записи. После того, как вы зайдете под учетной записью root, помните о том, что необходимо быть предельно осторожным при вводе любой команды в терминале, так как пользователь root обладает абсолютными правами. Он может все, поэтому любая ошибочная команда приведет к краху системы.
Затем вводим команду:
В результате произойдет переход в командную оболочку загрузчика Grub, где можно выполнить переустановку резидентной части Grub. Оболочка Grub имеет ограниченный набор поддерживаемых команд, список которых можно просмотреть, нажав клавишу «Tab».
В этом списке имена, оканчивающиеся на символ @ являются ссылками, которые можно использовать в конфигурационном файле загрузчика Grub.
Присвоение ярлыков разделам
Конфигурационный файл
В оригинале данный файл выглядит следующим образом:
Добавление нового пункта в меню Grub
При добавлении нового пункта меню (stanza) необходимо оставлять перед строфой и после нее одну пустую строку, так как иначе загрузчик Grub не будет знать, где заканчивается одна запись и начинается другая.
После того, как все данные будут введены, нажимаем сочетание клавиш Ctrl+X, при этом редактор nano спросит, сохранить ли изменения в файле. Подтверждаем сохранение и выходим.
Этого будет достаточно для успешной загрузки системы, хотя вы можете захотеть несколько приукрасить загрузчик. Однако, и этих трех строк в файле menu.lst хватит для правильной настройки конфигурации.
Я не сделал попытки восстановить файл. Наоборот, я напишу свои собственные инструкции, когда я буду знать, что конфигурационный файл Grub корректно работает и я могу им управлять. Поэтому я оставил оригинальный набор инструкций для загрузчика Grub. Позже, когда я буду точно знать, что система загружается нормально, я вернусь и отредактирую файл. Но сейчас я оставляю его таким, каким он был в самом начале.
Что все это значит
Четыре первые строки в файле menu.lst выполняют следующие функции.
Команда Timeout = 10 устанавливает временной промежуток, в течении которого загрузчик Grub будет ожидать действий пользователя, которые укажут ему, какой пункт меню загружать. Если он не дождется такого указания в течении установленного времени, то будет произведена загрузка пункта меню, установленного по умолчанию. А если такой не определен в конфигурационном файле, то первого по списку пункта меню. Чтобы остановить счетчик времени, достаточно нажать любую клавишу на клавиатуре.
Команда Color white/blue yellow/blue устанавливает цветовую раскраску текстового меню (в которое можно войти, нажав клавишу «Esc», если в данный момент вы находитесь в графическом меню Grub. Просто иногда бывают случаи, когда вам потребуется войти в текстовое меню загрузчика). Первая пара значений задает цвета переднего (foreground) и заднего (background) фона всего меню, а вторая пара служит для установки цветов выделенного пункта меню.
Команда gfxmenu (hd0,0)/boot/gfxmenu указывает загрузчику Grub, где располагается графическое меню.
Команда default 0 устанавливает пункт меню для загрузки по умолчанию, при этом отсчет ведется с нуля.
Добавление параметра aplash=silent vga=788 в конец этой строки позволит установленной графической теме Plymouth скрыть строки текста, появляющиеся на экране монитора при загрузке системы. Число 788 является разрешением монитора, которое наиболее оптимально для большинства компьютеров.
Установка PCLinuxOS по умолчанию предлагает три пункта меню загрузчика.
Все три вышеназванных режима можно включить, добавив одну из перечисленных ниже команд в строку kernel между параметром kernel и параметром корневой раздел root :
Переустановка загрузчика
Если загрузчик Grub является поврежденным, то задача его восстановления не такая уж и сложная. Снова откройте терминал, с помощью команды su получите права root и запустите командную оболочку Grub:
С помощью встроенной команды поиска find найдите разделы, на которых располагаются файлы Grub:
Проверьте, правильный ли вы выбрали раздел:
Все, задачу мы выполнили. Вводим команду quit для выхода из оболочки Grub.
Загрузка нескольких операционных систем
Если необходимо настроить загрузку одной из нескольких операционных систем, установленных на компьютере, то наиболее простой способ представлен ниже.
В окончании процесса установки операционной системы, как правило, у вас будет спрошено, куда бы вы хотели установить загрузчик Grub. По умолчанию это первый загрузочный сектор MBR жесткого диска, на который производиться установка. Вместо этого выберите установку загрузчика на раздел диска. Затем инсталлятор спросит вас, с какого жесткого диска производить загрузку операционной системы. В данном случае этот жесткий диск будет являться обычным корневым разделом, настройку которого мы будет производить дальше вручную в конфигурационном файле, открыв его в терминале.
А здесь представлена часть оригинального файла menu.lst :
Такое построение загрузки нескольких операционных систем мне кажется наиболее простым и легким для дальнейшей ее поддержки.
Добавление загрузки Windows
Для включения загрузки такой операционной системы, как Windows, которая не использует Grub, но имеет свой собственный загрузчик, я поступаю следующим образом. В конфигурационный файл menu.lst добавляется следующая строфа:
Обратите внимание: необходимо изменить раздел (hd0,2) на тот, на котором установлена операционная система Windows.
Команда makeactive делает указанный корневой раздел активным (загрузочным).
Команда chainloader +1 «говорит» загрузчику Grub перейти на второй сектор указанного раздела в поисках загрузочного кода, так как первый раздел всегда зарезервирован файловой системой.
Использование встроенных команд Grub во время загрузки
Если процесс загрузки компьютера окончился неудачей по какой-либо причине, то все еще существует возможность войти в систему, используя для этого собственную командную оболочку загрузчика Grub. Если у вас Grub настроен на использование графического меню, то нажмите клавишу «Esc» на клавиатуре, чтобы перейти в текстовый режим после подтверждения своего намерения в соответствующем окне.
Причиной ошибки при загрузке компьютера может быть опечатка, допущенная вами в конфигурационном файле Grub при его правке, или ошибка самого текстового редактора, который разбил одну длинную строку на две короткие и Grub не может понять, как ее читать. Прямо из командной оболочки Grub можно отредактировать эту строку. Для этого выберите в меню загрузчика тот пункт с операционной системой, которая «не хочет» загружаться, с помощью клавиш-стрелок на клавиатуре и затем последовательно нажмите клавиши «E» и «Enter». Если после этого снова нажать клавишу «E», то выбранная строка поместиться в командную оболочку Grub, где ее можно отредактировать. При первоначальном открытии для редактирования курсор будет находиться в самом конце строки, но его можно переместить с помощью клавиш-стрелок или же клавиш «Home» и «End». После внесения изменений в строку нажмите клавишу «Enter», чтобы сохранить их или же клавишу «Esc» для выхода из режима редактирования без сохранения изменений. Если редактор испортил изменяемую строку, то можно удалить ее полностью, нажав клавишу «D».
Если вы не видите в строках никаких ошибок, то не отчаивайтесь, еще не все потеряно. Нажмите клавишу «C» для перехода в режим командной строки Grub, который аналогичен тому, который мы получали в терминале для переустановки загрузчика.
Данная команда найдет разделы на всех установочных жестких дисках, которые могут быть корневыми разделами для Grub. Введите следующую команду, чтобы указать Grub использовать этот раздел:
Мы уже знаем, что файл vmlinuz является ссылкой, в то время как другой файл vmlinuz-2.6.32.11-pclos2 представляет из себя физическое ядро операционной системы. Которое мы можем использовать в дальнейшем, так как ссылка на него может быть поврежденной. Для того, чтобы добавить это имя в командную строку, нет необходимости вводить его полностью. Просто добавляем дефис и снова нажимаем клавишу «Tab», чтобы Grub сам дополнил все остальное. Такой способ позволяет избежать ошибок при вводе имени файла.
Кажется, все работает, поэтому переходим дальше и выполняем те же действия для файла initrd :
Видим, что Grub имеет всю необходимую ему информацию, поэтому мы можем попытаться загрузить операционную систему:
Вся информация для загрузки будет взята из текущей сессии Grub, поэтому я точно знаю, что все будет работать.
В заключение нужно сказать следующее. Все приведенные выше примеры работы с загрузчиком Grub безопаснее всего производить (в качестве тренировки) на операционной системе, установленной под виртуальной машиной VirtualBox. Установка и настройка такой машины проста и существует прекрасная статья, описывающая данный процесс, в октябрьском выпуске за 2008 год журнала PCLinuxOS. Статья написана редактором этого журнала parnote. В ней рассматривается установка операционной системы Windows под VirtualBox, но принцип остается одинаковым и полностью применим к инсталляции PCLinuxOS.
Grub отображает консоль вместо меню
Всем привет! Установил на компьютер (не на свой, а на другой) поверх Windows 8 Ubuntu 12.04 LTS. При включении компьютера вместо меню grub’а с выбором линукса и винды отображается консоль grub’а. Выглядит она так:
А grub в этой версии бубунты умеет UEFI? Возможно, дистр поновее надо. Ну или руками в инсталляторе выбрать версию grub с поддержкой UEFI(не знаю, возможно ли такое в бубунте, в дебиане такая возможность есть).
Спасибо за совет! Специально установил 12.10, потому что в 13.10 много косяков. Видимо придется переустанавливать.
P.S. Может, кто-нибудь что-нибудь другое напишет помимо этого?
Обнови только груб.
для этого нужно зайти с livecd, но как, если отображается лишь только консоль grub? В восьмой винде в биос зайти невозможно через del
Новый вопрос: 1) как через консоль grub’а зайти в ОС (в Windows зайти не спрашиваю, потому что у меня гр*баный Secure Boot включен) или 2) как зайти в BIOS через grub (для тех кто в танке: на компьютерах с предустановленным Windows 8 невозможно зайти в BIOS при включении компьютера. Только через «Дополнительные настройки ПО» внутри самой винды)?
Ура! Я смог наконец-то зайти через LiveCD! Что мне теперь писать в консоли линукса?
С этого момента команды выполняются внутри установленной системы. Я бы порекомендовал установить grub-efi, а затем
Я бы порекомендовал установить grub-efi[\quote] Я вас немножко не понял, как установить этот самый grub-efi? Или вы имели ввиду сделать то, что ниже этого текста?
Сделал всё по вашей инструкции (grub-efi через центр приложений установил), но всё тоже.
Быть может стоит переустановить Ubuntu? На более новую версию.
Как Вы зашли в liveSD?
А grub в этой версии бубунты умеет UEFI? Возможно, дистр поновее надо.
UEFI тут вероятнее всего не причём.
из «скриншота» видно что начальная стадия загрузки GRUB уже прошла (то есть — GRUB смог успешно получить управление в свои руки!).
вот только конфиг и модули — не загрузились (возможно поменялся нормел раздела? раздел удалился? или ещё какая-то фигня произошла?).
в этой ситуации можно было бы прям из этого GRUB-Minimal-Shell:
1. посмотреть переменные окружения. команда «set».
2. потом посмотреть какие файлы лежат на каком разделе, команды «ls» и «cd» — наверняка сработают.
3. подправить переменные окружения (в соответствии с увиденной реальной картиной из пункта 2). команда «set BLAHBLABLAH=BLABLA».
4. далее: команды «insmod normal» и «normal» — продолжат загрузку, загрузятся конфиг и модули. (в успешном случае — покажется нормальное меню GRUB, ну или пойдёт загрузка операционной системы)
Minimal BASH like line editing is supported. Boot error on Fedora
I am using fedora 22 and windows 8 on my laptop. Recently I updated fedora using yum update command. When I restarted fedora, boot menu is not coming. Instead a black screen is coming with following message:
Can I get back fedora or I have to reinstall it.
2 Answers 2
You can get back fedora.
I encountered this issue on my laptop computer each time when the grub2-efi package updated/reinstalled (including system upgraded to next release). It will caused grub2 boot into some kinds of rescue mode like yours.
The grub2-efi package from Fedora seems can’t install correctly on my laptop (ASUS TX300, Fedora x86_64, version 18 to 23).
Manual boot
You can boot Fedora manually from this grub2 rescue mode, then fix this issue by reinstalling grub2 to disk. To do it:
Use ls command to list all partitions
Use linuxefi (for EFI) or linux16 (for BIOS) command to specify the linux kernel file, and then specify the root patition using root= parameter, like:
You can use TAB to auto-complete the vmlinuz part.
Use initrdefi (for EFI) or initrd16 (for BIOS) command to specify the initial ramdisk file.
Example one: initrdefi (hd2,gpt6)/initramfs-4.4.2-300.fc23.x86_64.img
Example two: initrd16 (hd0,msdos1)/initramfs-4.4.2-300.fc23.x86_64.img
Type boot to boot Fedora, this will bring your Fedora alive.
Then, reboot to see if this issue is fixed.
Don’t forget to repeat step 5 when grub2-efi package updated/reinstalled next time
Other information
A little deeper analysis shows that /boot/efi/EFI/fedora/grubx64.efi file does not contain root (partition) information. In the following hexdump (copied from hexedit actually) of /boot/efi/EFI/fedora/grubx64.efi file, «(,gpt6)/grub2» string in 0001D2B0 line does not exists when grub2-efi package updated/reinstalled.


















