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

Обновлено: 21.11.2024

В этой статье представлена ​​пошаговая процедура восстановления GRUB на REHL 7 / CentOS 7. Повреждение/потеря GRUB — одна из наиболее распространенных проблем на серверах/рабочих станциях Linux. Возможные причины повреждения grub могут быть связаны с неисправностью диска/ошибкой прошивки или внезапным отключением питания системы. Системы поставляются с прошивкой BIOS/UEFI, и вы должны знать, какая ОС используется в настоящее время. Вот как можно отличить BIOS от UEFI на серверах Linux. Чтобы восстановить GRUB на RHEL7/CentOS 7, у вас должен быть последний образ DVD или ISO.

Распространенные ошибки в GRUB:

Если GRUB поврежден или утерян, система не загрузится и зависнет в grub, как показано ниже.

Система останавливается со следующим сообщением.

В таких случаях следуйте приведенным ниже инструкциям.

Восстановление/восстановление системы GRUB — BIOS:

<р>1. Вставьте последний DVD-диск RHEL 7 / CentOS 7 на сервер или прикрепите образ ISO с помощью ILO.
2. В случае виртуальной машины прикрепите ISO-образ к виртуальной машине.
3. Загрузите сервер, используя образ DVD/ISO.

<р>4. Выберите вариант устранения неполадок после загрузки системы с DVD/ISO.

<р>5. Выберите режим восстановления.

<р>6. Нажмите 1, чтобы продолжить поиск образа ОС и получить приглашение оболочки.

<р>8. Начиная с RHEL 7/CentOS 7, GRUB 2 является загрузчиком по умолчанию. Файл конфигурации GRUB 2 — /boot/grub2/grub.cfg. Установите загрузчик grub на корневой диск. (По умолчанию: /dev/sda).

<р>9. Перейдите в каталог /boot/grub2 и подтвердите существование «grub.cfg». Здесь файл «grub.cfg» не существует.

<р>10. Давайте сгенерируем файл «grub.cfg».

Если вам не хватает команды grub2-mkconfig, установите пакет grub2-tools.x86_64 в режиме восстановления. Поскольку вы загрузились с DVD, пакет должен быть доступен на нем.

Grub.cfg воссоздан с помощью grub2-mkconfig

<р>11. Выйдите из chroot и перезагрузите систему.

Это будет работать только на серверах X86 и виртуальных машинах на основе BIOS, но не будет работать с серверами встроенного ПО UEFI и виртуальными машинами.

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

Распространенные проблемы

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

Вы не можете нормально загрузиться в CentOS.

У вас проблемы с оборудованием или программным обеспечением, и вы хотите восстановить данные с жесткого диска вашей системы.

Вы забыли пароль root.

Не удается загрузить CentOS

Эта проблема часто возникает из-за установки другой операционной системы после того, как вы установили CentOS. Некоторые другие операционные системы предполагают, что на вашем компьютере нет других операционных систем. Они перезаписывают основную загрузочную запись (MBR), которая изначально содержала загрузчик GRUB2. Если загрузчик перезаписан таким образом, вы не сможете загрузить CentOS, если не сможете загрузиться в режиме восстановления программы установки и перенастроить загрузчик.

Еще одна распространенная проблема возникает при использовании инструмента создания разделов для изменения размера раздела или создания нового раздела из свободного места после установки, и он изменяет порядок ваших разделов. Если номер вашего раздела / изменится, загрузчик может не найти его для монтирования раздела. Чтобы решить эту проблему, вам нужно будет переустановить загрузчик. Инструкции о том, как это сделать, см. в разделе Переустановка загрузчика.

Проблемы с оборудованием и программным обеспечением

Эта категория включает широкий спектр различных ситуаций. Два примера включают отказ жестких дисков и указание недопустимого корневого устройства или ядра в файле конфигурации загрузчика. Если что-то из этого произойдет, вы не сможете перезагрузиться в CentOS. Однако, если вы загрузитесь в режиме восстановления программы установки, вы сможете решить проблему или, по крайней мере, получить копии наиболее важных файлов.

Сброс корневого пароля

Режим спасения анаконды

Режим восстановления программы установки Anaconda представляет собой минимальную среду Linux, которую можно загрузить с DVD-диска CentOS 7 или другого загрузочного носителя. Он содержит утилиты командной строки для устранения самых разных проблем. Доступ к этому режиму восстановления можно получить из подменю «Устранение неполадок» меню загрузки. В этом режиме вы можете монтировать файловые системы только для чтения или вообще не монтировать их, заносить в черный список или добавлять драйвер, предоставленный на диске с драйверами, устанавливать или обновлять системные пакеты или управлять разделами.

Режим спасения Anaconda отличается от режима спасения (эквивалент однопользовательского режима) и аварийного режима, которые предоставляются как части системы systemd и диспетчера служб. Дополнительные сведения об этих режимах см. в Руководстве системного администратора Red Hat Enterprise Linux 7.

Чтобы загрузиться в режиме восстановления Anaconda, вы должны иметь возможность загрузить систему с одного загрузочного носителя CentOS, например минимального загрузочного диска или USB-накопителя, или полного установочного DVD.

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

Расширенное хранилище, такое как устройства iSCSI или zFCP, должно быть настроено с использованием параметров загрузки dracut, таких как rd.zfcp= или root=iscsi:options . Невозможно настроить эти устройства хранения в интерактивном режиме после загрузки в режиме восстановления.

Для получения информации о параметрах загрузки dracut см. справочную страницу dracut.cmdline(7).

Загрузите систему либо с минимального загрузочного носителя, либо с полного установочного DVD-диска или USB-накопителя, и дождитесь появления меню загрузки.

В меню загрузки выберите параметр «Восстановление системы CentOS» в подменю «Устранение неполадок» или добавьте параметр inst.rescue в командную строку загрузки. Чтобы войти в командную строку загрузки, нажмите клавишу Tab в системах на основе BIOS или клавишу e в системах на основе UEFI.

Если для загрузки вашей системе требуется сторонний драйвер, который находится на диске с драйверами, добавьте inst.dd=имя_драйвера в командную строку загрузки:

Дополнительную информацию об использовании диска с драйверами во время загрузки см. в разделе Обновление драйверов вручную (x86) для систем AMD64 и Intel 64 или Обновление драйверов вручную (ppc) для серверов IBM Power Systems.

Если драйвер, входящий в состав дистрибутива CentOS 7, препятствует загрузке системы, добавьте параметр modprobe.blacklist= в командную строку загрузки:

Дополнительную информацию о добавлении драйверов в черный список см. в разделе Добавление драйвера в черный список (x86).

Когда все будет готово, нажмите Enter (системы на основе BIOS) или Ctrl + X (системы на основе UEFI), чтобы загрузить измененный параметр. Затем подождите, пока не появится следующее сообщение:

Если вы нажмете «Продолжить», он попытается смонтировать вашу файловую систему в каталоге /mnt/sysimage/. Если не удастся смонтировать раздел, вы получите уведомление. Если вы выберете «Только для чтения», он попытается смонтировать вашу файловую систему в каталоге /mnt/sysimage/, но в режиме только для чтения. Если вы выберете Пропустить, ваша файловая система не будет смонтирована. Выберите «Пропустить», если считаете, что ваша файловая система повреждена.

После того как ваша система находится в режиме восстановления, на VC (виртуальная консоль) 1 и VC 2 появляется запрос (используйте комбинацию клавиш Ctrl + Alt + F1 для доступа к VC 1 и Ctrl + Alt + F2 для доступа к VC 2) :

Даже если ваша файловая система смонтирована, корневой раздел по умолчанию в режиме восстановления Anaconda является временным корневым разделом, а не корневым разделом файловой системы, используемой в обычном пользовательском режиме ( multi-user.target или graphical.target ) . Если вы решили смонтировать свою файловую систему и она успешно смонтирована, вы можете изменить корневой раздел среды режима восстановления Anaconda на корневой раздел вашей файловой системы, выполнив следующую команду:

Это полезно, если вам нужно запустить команды, такие как rpm , которые требуют, чтобы ваш корневой раздел был смонтирован как / . Чтобы выйти из среды chroot, введите exit, чтобы вернуться к приглашению.

Если вы выбрали вариант «Пропустить», вы все равно можете попытаться смонтировать раздел или логический том LVM2 вручную в режиме восстановления Anaconda, создав каталог, например /directory/ , и введя следующую команду:< /p>

В приведенной выше команде /directory/ — это каталог, который вы создали, а /dev/mapper/VolGroup00-LogVol02 — это логический том LVM2, который вы хотите смонтировать. . Если раздел отличается от XFS, замените строку xfs правильным типом (например, ext4 ).

Если вы не знаете имена всех физических разделов, используйте следующую команду, чтобы вывести их список:

Если вы не знаете имена всех физических томов, групп томов или логических томов LVM2, используйте команды pvdisplay , vgdisplay или lvdisplay соответственно.

Из командной строки можно запускать множество полезных команд, например:

ssh , scp и ping, если сеть запущена

дамп и восстановление для пользователей с ленточными накопителями

parted и fdisk для управления разделами

rpm для установки или обновления программного обеспечения

Переустановка загрузчика

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

Следуйте инструкциям в разделе Загрузка в режиме восстановления Anaconda, чтобы загрузиться в режиме восстановления Anaconda. Убедитесь, что вы монтируете системный раздел / (корневой) в режиме чтения-записи.

Изменить корневой раздел:

Используйте следующую команду, чтобы переустановить загрузчик GRUB2, где install_device — это загрузочное устройство (обычно /dev/sda):

Перезагрузите систему.

Использование RPM для добавления, удаления или замены драйвера

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

Когда вы устанавливаете драйвер с диска с драйвером, этот диск обновляет все образы initramfs в системе для использования этого драйвера. Если проблема с драйвером препятствует загрузке системы, вы не можете полагаться на загрузку системы из другого образа initramfs.

Загрузите систему в режиме восстановления Anaconda. Следуйте инструкциям в разделе Загрузка в режиме восстановления Anaconda. Убедитесь, что вы монтируете установленную систему в режиме чтения-записи.

Измените корневой каталог на /mnt/sysimage/ :

Используйте команду rpm -e для удаления пакета драйвера. Например, чтобы удалить пакет драйвера xorg-x11-drv-wacom, выполните:

Выйдите из среды chroot:

Если вы не можете удалить неисправный драйвер по какой-либо причине, вы можете вместо этого занести его в черный список, чтобы он не загружался во время загрузки. Дополнительные сведения о добавлении драйверов в черный список см. в разделах «Занесение драйвера в черный список» и «Параметры загрузки».

Установка драйвера аналогична процессу, но в системе должен быть доступен пакет RPM:

Загрузите систему в режиме восстановления Anaconda. Следуйте инструкциям в разделе Загрузка в режиме восстановления Anaconda. не монтируйте установленную систему только для чтения.

Сделайте доступным пакет RPM, содержащий драйвер. Например, смонтируйте компакт-диск или флэш-накопитель USB и скопируйте пакет RPM в выбранное вами место в /mnt/sysimage/ , например: /mnt/sysimage/root/drivers/

Измените корневой каталог на /mnt/sysimage/ :

Используйте команду rpm -ivh для установки пакета драйверов. Например, чтобы установить пакет драйверов xorg-x11-drv-wacom из /root/drivers/, выполните:

Каталог /root/drivers/ в этой среде chroot — это каталог /mnt/sysimage/root/drivers/ в исходной среде восстановления.

Выйдите из среды chroot:

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

Вся документация по CentOS доступна по лицензии CC-BY-SA 3.0.

Эта страница была создана с использованием модифицированной версии пользовательского интерфейса Antora по умолчанию. Исходный код этого пользовательского интерфейса распространяется на условиях лицензии MPL-2.0.

CentOS / RHEL 7 теперь включает GRUB2, который использует новый способ установки в MBR вашего загрузочного устройства. Возможно, вам придется переустановить загрузчик GRUB2, если ваша система не загружается после сбоя. Чтобы переустановить GRUB2, вам нужно загрузиться в режиме восстановления. Выполните следующие действия, чтобы загрузиться в режиме восстановления и переустановить загрузчик GRUB2.

Загрузка в режиме восстановления и переустановка GRUB2

<р>1. Загрузитесь с установочного DVD-диска RHEL7, изменив порядок загрузки в Bios и выбрав DVD-носитель в качестве первого параметра загрузки.

Примечание. Старая версия RHEL 7 DVD здесь не работает. Поэтому убедитесь, что у вас есть DVD с последней версией RHEL 7.

<р>2. На экране загрузки выберите параметр «Устранение неполадок» в конце экрана.

<р>3. На следующем экране выберите параметр Спасти систему CentOS Linux.

<р>4. На следующем экране нажмите Enter, чтобы продолжить. Когда вас спросят, хотите ли вы, чтобы Rescue нашел вашу установку, выберите «Продолжить».

Если у вас возникли проблемы с обнаружением установки, повторите попытку, используя параметр «Пропустить», и вручную определите и подключите хранилище. Вы получите сообщение, показанное на рисунке ниже, если режим восстановления обнаружит правильную установку.

<р>5. Следующим шагом будет изменение корневого каталога на /mnt/sysimage с помощью команды chroot. Это делает вашу систему корневой средой.

<р>6. Используйте команду grub2-install, чтобы перезаписать MBR на загрузочное устройство. Загрузочное устройство обычно /dev/sda.

Вы должны получить сообщение об успешной установке, как показано ниже.

Чтобы перезагрузить систему, сначала выйдите из среды chroot и выполните команду reboot.

Переустановка grub2 на машинах с UEFI

Если вы работаете на компьютере с UEFI, убедитесь, что вы добавили следующие 2 шага, прежде чем переустанавливать GRUB2 с помощью команды «grub2-install».

<р>1. Если системный раздел EFI был воссоздан или поврежден, эти файлы можно восстановить, переустановив пакеты grub2-efi, grub2-efi-modules и shim.

Grub Rescue: это руководство посвящено устранению проблем с загрузкой. Одной из наиболее распространенных проблем может быть подсказка «спасение личинки». Большинство вопросов за несколько дней пришло или как я могу восстановиться после ошибки спасения grub. Это может быть связано с человеческим фактором или с некоторыми действиями по установке исправлений. Давайте рассмотрим несколько шагов, чтобы решить проблему с загрузкой grub Rescue.

Файлы конфигурации Grub

Конфигурация grub на основе BIOS

Конфигурация grub на основе UEFI

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

Доступные параметры grub подробно описаны в официальном руководстве администратора ядра.

Случайно удаленные файлы из /boot

В случае, если вы случайно удалили все файлы из раздела /boot, это руководство может помочь восстановить его. В демонстрационных целях мы намеренно удалили все файлы из точки монтирования /boot.

/boot точка монтирования без файлов

Тип ошибок Grub

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

На приведенном ниже изображении только «grub>», потому что файл grub.cfg отсутствует или поврежден.

жрать>

Это может быть связано с тем, что все файлы, связанные с grub, удалены, /boot/grub2/ пуст или даже этот каталог может отсутствовать.

Спасательная подсказка grub

Ошибки grub любого типа можно легко исправить, загрузившись с помощью опции спасения ISO/DVD.

Запуск процесса восстановления

Загрузка с RHEL ISO или DVD. Выберите в меню пункт «Устранение неполадок».

Экран загрузки RHEL ISO

Выберите режим восстановления, выбрав «Восстановить систему Red Hat Enterprise Linux» в меню.

Меню экрана загрузки RHEL Rescue

Это загрузит установщик anaconda в режиме восстановления.Как только мы получим параметры режима восстановления, выберите 1 и нажмите клавишу возврата, чтобы войти в среду chroot.

Выберите 1, чтобы перейти в режим восстановления

Выполнение Chroot

Выполнив приведенную ниже команду, вы получите доступ к среде chroot.

запустите chroot, чтобы получить корневую среду

Найдите и найдите раздел /boot

найти загрузочный диск

Установить Grub

При установке grub мы не должны устанавливать его на раздел, вместо этого устанавливаем grub на весь диск. В моем случае /dev/sda1 — это раздел, используемый для /boot, поэтому мне нужно установить grub на /dev/sda.

Установите grub в каталоге /dev/sda, выполнив приведенную ниже команду.

После установки мы получим только файлы, связанные с grub, в каталоге /boot. Но все же нам нужно выполнить дополнительные действия, чтобы получить vmlinuz, initramfs для успешной загрузки.

grub2-install для установки grub

Переустановка ядра

Смонтируйте RHEL Disk/ISO в любом месте и переустановите ядро. При переустановке мы вернем все файлы вроде vmlinuz и initramfs.

Сохранение или восстановление конфигурации GRUB

Наконец, запустите grub2-mkconfig, чтобы записать изменения в файл. Выполнив эту команду, он восстановит требуемый файл конфигурации grub «grub.cfg». Расположение будет в /boot/grub2/grub.cfg.

grub2-mkconfig для сохранения в config

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

Все файлы на месте

Выход из Chroot/Rescue Shell

Введите два раза exit, чтобы выйти из оболочки chroot и аварийного восстановления. Как только вы выйдете из спасательной оболочки, она перезагрузит сервер. Во время перезагрузки он переименует SELinux для новых файлов, поэтому не прерывайте процесс. Более того, после перемаркировки он снова автоматически перезагрузится.

Фиксированное меню Grub

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

Восстановление машины на основе UEFI

На серверах на основе UEFI файл конфигурации находится в папке /boot/efi/EFI/redhat/. В случае, если мы получим «спасение личинки» на машине на базе UEFI, мы можем исправить это, выполнив аналогичные действия, описанные выше. но расположение конфигурации будет немного отличаться от машин на основе BIOS.

Выполните все вышеперечисленные шаги, кроме установки пакетов и сохранения конфигурации grub.

Установите пакеты

На компьютере с UEFI нам необходимо переустановить указанные ниже пакеты, чтобы исправить запрос на спасение grub.

Сохранение конфигурации Grub

Наконец, сохраните конфигурацию в указанном ниже месте.

Чтобы завершить операцию спасения, выйдите из оболочки chroot и спасательной оболочки, как указано в предыдущих шагах. Перезагрузка займет некоторое время, чтобы завершить перемаркировку SELinux. После этого все будет в порядке с загрузкой сервера.

Заключение

Устранение неполадок при загрузке — самая важная роль системного администратора. Знать, какой файл и какие шаги необходимо выполнить, чтобы решить проблему с загрузкой, является наиболее важной частью. Будет часто обновлять эту статью с изменениями. Подпишитесь на информационный бюллетень и ознакомьтесь с аналогичными руководствами по устранению неполадок.

2 мысли о «Как исправить Grub Rescue в CentOS и RHEL 7»

Здравствуйте, мой сервер, который я использую для своего веб-сайта, вышел из строя, и при перезагрузке я получаю следующую ошибку. Я пытался решить эту проблему с помощью iso-файла Centos 7, но безуспешно. Как я могу решить эту проблему?

Загрузка с жесткого диска…
.
ошибка: неизвестная файловая система.
Вход в режим спасения…
спасение grub> ls
(hd0) (hd0,msdos1)
спасение grub>

Можете ли вы попробовать смонтировать /dev/sda1 в любом месте и показать файлы в нем?

Читайте также: