- Не загружается Linux, чиним загрузчик GRUB
- Что такое Grub
- От чего могут возникнуть проблемы
- Восстановление Grub с помощью LiveCD/USB
- Как создать LiveCD/USB
- С помощью Rufus:
- С помощью Etcher:
- Восстановление с помощью chroot
- Восстановление Grub в rescue mode
- Восстановление Grub с помощью утилиты Boot repair
- Выводы
- GRUB Error Reference
- Contents
- Starting notes
- Acknowledgements
- Disclaimer warning
- GRUB loading, please wait.
- Situation
- Solution
- GRUB Error 12
- Situation
- Solution
- GRUB error 15
- Situation
- Solution — Initial configuration
- Solution — Booting an entry
- GRUB error 17
- Situation
- Solution
- GRUB error 18
- Situation
- Solution
- GRUB GRUB GRUB GRUB GRUB .
- Situation
- Solution
- Probing devices to guess BIOS drives. This may take a long time
- Situation
- Solution
- When installing GRUB, it just hangs
- Situation
- Solution
- Uncompressing Linux. Ok, booting the kernel
- Situation
- Solution
- GRUB just shows a GRUB prompt
- Situation
- Solution
- Could not find device for /boot/boot: not found or not a block device
- Situation
- Solution
- The system reboots after hitting return at the GRUB menu
- Situation
- Solution
- After hitting the Enter (Return) key at the GRUB menu, the screen blanks out
- Situation
- Solution
- Missing GRUB image
- Situation
- Solution
- Failing To boot Windows from a second hard drive
- Situation
- Solution
- GRUB segfaults when trying to install
- Situation
- Solution
Не загружается Linux, чиним загрузчик GRUB
Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.
Что такое Grub
Grub (или GRand Unified Bootloader) — загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего — основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows, вам определенно понадобится помощь Grub.
Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно — узнаете далее.
От чего могут возникнуть проблемы
Одна из самых распространенных причин — это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК — вам непременно стоит знать правильную последовательность:
- Сначала устанавливаем Windows
- И только потом уже Linux
Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.
Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.
Восстановление Grub с помощью LiveCD/USB
Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.
Как создать LiveCD/USB
Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.
Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.
С помощью Rufus:
Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:
Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:
Находим загруженный образ через менеджер, после чего жмем «Старт».
С помощью Etcher:
Опять же, идем на официальный сайт, где скачиваем последнюю версию утилиты. Далее делаем все так, как показано на этой гифке:
Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:
Открываем таблицу разделов с помощью команды:
Примерно такая таблица будет выведена на экран:
По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.
С помощью следующей команды мы смонтируем этот раздел в /mnt:
Теперь, для записи grub в MBR, нужно ввести следующую команду:
Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.
Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:
Вот и все, восстановление закончено!
Восстановление с помощью chroot
Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.
Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:
В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.
В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:
Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.
Далее мы переходим в окружающую среду chroot с помощью команды:
И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:
Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:
Если все прошло успешно, выходим из chroot, используя команду:
Далее нужно отмонтировать все разделы. Для этого вводим в терминал:
В случае, если вы монтировали раздел /boot введите команду:
Теперь перезагружаем систему с помощью:
Можно также обновить меню Grub, используя команду:
Восстановление Grub в rescue mode
Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.
Само восстановление проходит таким образом: сначала мы подгружаем все модули, чтобы открыть доступ ко всей функциональной части Grub, после чего запуститься с нужного раздела. Надо понимать, что Grub состоит из двух частей:
Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).
Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:
Для начала вводим следующую команду:
В выводе будет что-то подобное:
В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.
В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела — (hd0,1). Используем следующую команду:
С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:
Если в выводе будет список файлов и папок, значит мы все сделали правильно. Теперь можно загрузить все необходимые модули. Для этого выполним команды:
После выполнения команд Grub загрузится в полнофункциональном режиме. Будут найдены все операционные системы, которые установлены на компьютере, после чего будет показано стандартное меню загрузки.
Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:
sdX — диск, на который должен быть установлен Grub.
Если операционная система расположена на разделе с файловой системой btrfs, то нам необходимо выполнить следующие команды:
И подгрузить модули:
Ну и теперь запустить GRUB:
Восстановление Grub с помощью утилиты Boot repair
С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.
Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:
- Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
- Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.
Если с первым способом все понятно: нужно просто скачать и записать образ с помощью соответствующих инструментов. То во втором уже нужно знать конкретные команды, которые выглядят следующим образом:
В утилите будет доступно два варианта на выбор:
Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.
Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.
Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.
Вам обязательно стоит заглянуть на официальный сайт Boot Repair. Там вы сможете найти более подробную информацию обо всех возможностях и особенностях программы. Там же будет доступна информация о выходе новых версий: фиксах и улучшениях самой утилиты, а также многом и многом другом.
Выводы
Вот мы и рассмотрели несколько вариантов исправления загрузчика Grub. Стоит сказать, что некоторые из них могут показаться сложными или даже невыполнимыми. Это не так, каждый из рассмотренных способов нашел подтверждение в виде сотен и тысяч актов исправления загрузчика Grub в опенсорсном сообществе. Кстати говоря, какой из способов выбрать — решать только вам, любой из них достаточно эффективен, чтобы попасть в этот материал.
Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить GRUB2 если Ubuntu не хочет загружаться. Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.
Источник
GRUB Error Reference
The objective of this article is to list problems and errors that may occur in certain situations when using the GRUB Legacy bootloader. All these solutions have been acquired through the cooperation of users on the Gentoo Forums.
Contents
Starting notes
Acknowledgements
Many thanks to Earthwings, penetrode, loyaltonone, pilla, airhead, nephros, yamakawa and all the others for the suggestions on the original thread.
Disclaimer warning
The examples provided are just examples. Be sure to change partition numbers and the like according to the specific systems specs. Follow the solutions provided by this document at the readers own risk.
GRUB loading, please wait.
Situation
After this message, the system stops. If attempting to boot the system using a GRUB floppy, the problem disappears.
Solution
According to The_Bell, changing the boot order in the BIOS can solve the problem.
Tell the BIOS to not boot from the floppy first.
[1] took hard disks off the system one-by-one until found out the problem was caused by the SiI3512A SATA RAID-controller.
penetrode wrote that this may also be due to bad CFLAGS settings. Although the current GRUB ebuild filters out -fstack-protector , it can’t hurt to recompile GRUB with clean CFLAGS if nothing else helps.
This problem appeared on a dell r320 server, caused by having serial and terminal options in grub.conf , problem disappeared after removing those options.
GRUB Error 12
Situation
This error is returned if the device strings syntax is correct but other than that, an error occurred that isn’t defined by any other error.
Solution
When GRUB was installed in the boot record using the interactive commands, were the two lines below executed in the GRUB prompt?
(hd0,0) must be replaced with the boot partition and (hd0) with the HDD that was chosen. Remember that (hd0) will install the bootloader in the Master Boot Record of the first hard disk, the primary master.
GRUB error 15
Situation
This error can occur in two different stages of the GRUB configuration, either during the initial configuration (installing GRUB in the master boot record) or after booting the system and attempting to launch Linux (or any other entry).
Booting an entry:
Solution — Initial configuration
This error is returned if the specified file name cannot be found, but everything else (like the disk/partition info) is OK.
Frequently, the error notes a missing kernel image file. Make sure that the file it is referring to exists on the boot partition.
To find out the exact name of the kernel, boot from the installation cd, mount the root and (if applicable) boot partition. Next, chroot into the Gentoo system and do a listing of the available files to see what kernel images there are available:
This will list all the kernels that there are on the boot partition. If the kernel is missing make sure to have compiled a kernel (using genkernel or manually):
And that it has been copied to the boot partition:
Verify that the name of the kernel is exactly the same as the one mentioned in the grub.conf file. Also make sure that the kernel line in the grub.conf file is referring to that partition (either explicitly or implicitly).
Another reported mistake is to have the BIOS ignore the disk on which the kernel or GRUB stages reside. Also, the partition on which GRUB stores its stages should not use a software RAID-5 (or other striping technology) configuration.
Solution — Booting an entry
First, verify that the root and setup lines that were used are correct.
If it is certain they are valid, then there is the possibility of using a flawed GRUB version (0.93.20031222). Upgrade the Portage tree or mask this version of GRUB:
Another option is using the grub-install script as is recommended by the GRUB authors. The —root-directory option is needed if there is a separate boot partition, otherwise it should be left out.
When all this fails, the boot partition may be corrupt. Check the partition for errors:
GRUB error 17
Situation
Solution
This error is returned if the partition requested exists, but the filesystem type cannot be recognized by GRUB.
Be sure to check the root(x,y) settings in grub.conf .
Also, when trying to boot Windows, make sure that the grub.conf file has the root (hdX,Y) (or rootnoverify (hdX,Y) ) and chainloader (hdX,Y)+1 in it.
GRUB error 18
Situation
Solution
This error is returned when a read is attempted at a linear block address beyond the end of the BIOS translated area. This generally happens if the disk is larger than the BIOS can handle (512 MB for (E)IDE disks on older machines or larger than 8 GB in general).
Try an update for the BIOS and/or move the boot partition to the front (or at least into the appropriate range).
GRUB GRUB GRUB GRUB GRUB .
Situation
Solution
According to airhead this can be caused by having the BIOS detect the disks automatically. Try to set the BIOS entry to User Type HDD.
Another possibility is that Grub was installed on the MBR and then reinstalled (for instance due to hard disk changes) but using the wrong setup and root commands.
Probing devices to guess BIOS drives. This may take a long time
Situation
While trying to install GRUB, it hangs after displaying the following line:
Solution
One reported cause was an exotic configuration of disk devices, like ultra/non-ultra DMA disks on one cable.
When installing GRUB, it just hangs
Situation
When installing GRUB, it hangs:
At this stage, the installation stops.
Solution
If there is no floppy drive, was the —no-floppy switch used?
Uncompressing Linux. Ok, booting the kernel
Situation
The system hangs after displaying the following line:
Solution
Strictly speaking, this is no GRUB error. One possible cause is that ACPI is not working correctly but is enabled in the kernel. Try to disable it in the BIOS or in the kernel. Another possible cause is that the kernel has been compressed to a format it does not support for decompression, such as LZO requiring LZO_DECOMPRESS.
GRUB just shows a GRUB prompt
Situation
When booting the system, a GRUB prompt appears instead of a list of entries that were defined in the grub.conf file.
Solution
Mount the boot partition and verify if the grub/grub.conf file exists.
Also make sure that the menu.lst symbolic link exists:
If not, recreate the symbolic link:
If this is the case, reinstall GRUB:
Could not find device for /boot/boot: not found or not a block device
Situation
When running grub-install during the GRUB installation, the following error appears:
Solution
Check that the following wasn’t forgotten:
The system reboots after hitting return at the GRUB menu
Situation
After hitting the Enter ( Return ) key at the GRUB menu during the system boot, the system reboots.
Solution
Try disabling framebuffer support in the kernel. If this does not help, disable APM and ACPI.
After hitting the Enter (Return) key at the GRUB menu, the screen blanks out
Situation
After hitting Enter ( Return ) at the GRUB menu during system boot, the screen blanks out, but the system is responsive (for instance, the numlock LED is switchable).
Solution
Turn off framebuffer (typically remove vga=XYZ from grub.conf ) and check the processor architecture in the kernel config.
Missing GRUB image
Situation
When booting the system, the spiffy Gentoo splash screen is not seen.
Solution
First of all check if the splash screen file that is being are referred to in grub.conf really exists. If that is the case, go and check the GRUB ebuild. Maybe the patch for the splash image is commented out in the version that is being used.
Failing To boot Windows from a second hard drive
Situation
After selecting the Windows entry, the system refuses to boot without any clear reason as to why.
Solution
cyrillic provides information that it is possible to «map» the disks in a different order by changing grub.conf ‘s Windows entry like so:
GRUB segfaults when trying to install
Situation
The situation described below is only relevant for grub-0.95.x at the moment of installing GRUB at the boot sector.
Solution
This is a known bug related to this problem and has been fixed in grub-0.96. It is also known that grub-0.94-r1 and grub-0.94-r2 should work correctly. If that fails too, try to emerge grub-static which is currently stable on amd64 and unstable on x86 and (
x86 ). Check out bug #79378 for additional information.
Источник