Роса линукс не загружается

Обновлено: 07.07.2024

Загрузчик GRUB является универсальным, гибким и достаточно надёжным инструментом для организации загрузки операционных систем (ОС). Однако при наличии некоторых обстоятельств и факторов. От которых не застрахована ни одна система. Могут возникать сбои, в результате которых загрузка системы может быть некорректной или вовсе невозможной. Если в данном случае точно установлено, что система не загружается из-за неработоспособности самого загрузчика. То в данной ситуации далеко не всё так сложно и безнадёжно. Как может показаться некоторым неопытным пользователям или системным администраторам. В большинстве случаев загрузку системы можно довольно быстро и относительно легко восстановить, не прибегая к переустановке системы. Для этого существуют давно проверенные способы, о которых будет рассказано в данной статье.

Почему «ломается» загрузчик GRUB?

Естественно, само по себе ничего не происходит. Если «сломалась» загрузка GRUB – значит что-то на это повлияло. Очень часто в подобных ситуациях пользователи говорят, что системную конфигурацию не изменяли, а GRUB вдруг перестал работать. И они отчасти правы.

На самом деле GRUB довольно чувствителен к любому изменению как своей, так и системной конфигурации, каким бы универсальным и удобным он ни был. Так, например, изменение идентификатора раздела, хранящего ядра (/boot), уже приведёт к невозможности загрузки системы. И GRUB здесь и ни причём. Нужно искать причину, по которой изменился идентификатор раздела. А они могут быть самыми разными. К примеру, даже если компьютер долгое время не использовался и на его платы не подавалось питание. То это также может быть причиной сброса некоторых настроек BIOS (по причине севшей батареи). Что может привести при последующем после длительного перерыва включении переопределению параметров оборудования. От которых зависит, в некоторых случаях, и идентификатор раздела. Это лишь одна из причин неработоспособности GRUB, самая неочевидная, которую не могут предусмотреть ни разработчики GRUB, ни создатели системных плат.

Наличие ошибок на разделах диска, человеческий фактор (особенно среди малоопытных пользователей) также очень часто являются причиной неработоспособности GRUB. Главное, что нужно понимать — это то, что в большинстве случаев причиной является внешний фактор. A GRUB – это довольно уязвимое место, чувствительное практически к любым внешним воздействиям, поскольку это программная среда, организующая передачу управления компьютером от BIOS (UEFI) к ОС.

Способы восстановления GRUB

В данной статье будут рассмотрены два самых эффективных способа восстановления GRUB:

  • с помощью LiveCD/DVD – самый «народный» метод, с ним вполне справляются новички;
  • работа в командной консоли GRUB – ручная загрузка системы и восстановление GRUB «родной» системной среды, очень полезно, когда нет возможности воспользоваться LiveCD/DVD или другим загрузочным устройством.

Как нетрудно догадаться, восстановление GRUB напрямую связано с загрузкой системы. Основная работа по восстановлению именно в этом и заключается — загрузить родную системную среду альтернативными способами или вручную. Далее, в подавляющем большинстве случаев, восстановление GRUB осуществляется одной командой:

Существуют также и другие команды:

Вторая команда создаёт конфигурационный файл GRUB исходя из текущей конфигурации системы. Анализируется информация о количестве имеющихся в системе ядер, их версий и т. д. В результате формируется оптимальная и безопасная конфигурация загрузки системы. Если ядер несколько, то будет сформирован список, который может быть доступен (в меню загрузки GRUB) для выбора определенного ядра для загрузки. По-умолчанию GRUB загружает ядро самой свежей версии.

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

Примечание: вместо команд grub-install и grub-mkconfig могут использоваться команды grub2-install и grub2-mkconfig соответственно. Это зависит от используемой системы (дистрибутива).

Загрузка и восстановление с помощью LiveCD

При использовании любого из альтернативных вариантов загрузки «родной» системы очень полезно сначала узнать (или убедиться), с какого устройства происходит загрузка. Необходимо заранее это выяснить в настройках BIOS компьютера. Это необходимо, если придётся не просто обновить конфигурацию загрузчика, а полностью его переустановить. А для этого очень желательно устанавливать его на то устройство, которому из BIOS передаётся управление для дальнейшей загрузки ОС. Для BIOS материнских плат MSI это выглядит примерно следующим образом:


Рис. 1: BIOS MSI — просмотр и настройка приоритета устройств для загрузки системы.

Как можно видеть, для данной системы загрузочным устройством является SSD-накопитель «Samsung SSD 860 EVO 250 GB». А пока это наименование можно запомнить или где-нибудь записать.

Теперь можно загрузиться с любого Live-образа используя для этого оптический CD/DVD-диск или накопитель USB-Flash. Опуская технические подробности, важно заметить, что для этого должны быть сделаны соответствующие настройки в BIOS компьютера. В качестве Live-образа рекомендуется использовать ту же систему, что и установлена на компьютере.
Итак, загрузившись в Live-режиме, первым делом следует запустить командную консоль. Далее, необходимо определить корневой раздел системы, для которой нужно восстановить загрузчик. Это нужно, чтобы войти в программную среду «родной» системы из непосредственно Live-режима и использовать весь доступный инструментарий, в том числе и команды по восстановлению GRUB.

Монтирование корневого и загрузочного раделов

С помощью команды fdisk определяем какой раздел и на каком устройстве используется родной системой как корневой:

Как можно видеть, в системе два диска — sda и sdb. Тут нужно сориентироваться и вспомнить, как размечался диск изначально при установке системы. И определить по данным вывода, какой раздел является корневым. В данном случае это раздел sda2. Его теперь нужно примонтировать командой mount:

Необходимо также примонтировать и раздел /boot. Но очень важно заметить, что если в качестве /boot используется отдельный раздел (а не подкаталог в корневом разделе, как в большинстве современных дистрибутивов, например Ubuntu), то его монтирование будет выглядеть следующим образом:

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

Подготовка программной среды для работы

Далее необходимо определить программное окружение среды, указав каталог /mnt и интерпретатор команд:

Эта команда указывает, где должны выполняться команды и какое программное окружение для этого должно использоваться. В данном случае, теперь ядро Live-образа может полноценно работать с ФС родной системы. Используя все её пакеты, команды, файлы и прочие доступные ресурсы.

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

Теперь нужно обновить MBR (главную загрузочную запись) диска, установив на него загрузчик GRUB. Здесь и нужно вспомнить, какой диск является загрузочным, исходя из конфигурации BIOS. Поскольку ранее это уже было определено, то теперь остаётся узнать, как это устройство обозначается в системе. Для этого полезно выполнить следующий скрипт:

Данный скрипт отработает, если в родной системе установлена утилита hdparm. Но поскольку в большинстве Linux-дистрибутивов она предустановлена и доступна «из коробки», то беспокоиться не о чем.

Как можно видеть, устройству «Samsung SSD 860 EVO 250GB», который ранее был определён как загрузочный, соответствует его определение в системе как /dev/sda . Именно на него и следует производить установку GRUB:

Создание файла конфигурации GRUB:

Ну и напоследок можно выполнить:

Далее необходимо отмонтировать все ранее примонтированные устройства и ФС:

Если /boot монтировался из отдельного раздела, то его также необходимо отмонтировать:

Ну и наконец, необходимо отмонтировать также и корневой раздел:

Далее можно перезагрузиться без Live-образа (сделав соответствующие настройки в BIOS и снова указав в качестве загрузочного «Samsung SSD 860 EVO 250GB»). И проверить, что GRUB загружает родную систему.

Загрузка из командной консоли GRUB

Рис. 2: Внешний вид командной консоли GRUB.

Рис. 2: Внешний вид командной консоли GRUB.

Итак, первое, что нужно сделать после входа в командную консоль GRUB – это выполнить команду ls. В результате будет выведен список всех доступных в системе дисков и разделов.

Определение и выбор раздела загрузки

Однако, обозначает GRUB разделы по-своему. Например вместо привычного sda4 будет (hd0,gpt2), а вместо sdb1 будет (hd1,gpt3). Таким образом, как можно видеть, устройства в формате GRUB нумеруются цифрами, так же как и разделы. Но разделы нумеруются в обратном порядке. Например на устройстве sda с пятью разделами, разделу sda2 в формате GRUB будет соответствовать запись (hd0,gpt4), sda1 – (hd0,gpt5) и т. д. Этот принцип можно и нужно брать на вооружение при работе с разделами в командной консоли GRUB. Ведь для ручной загрузки системы необходимо правильно определить и указать корневой раздел или раздел /boot .

Примечание: префикс «gpt» в обозначении разделов в формате GRUB может быть другим. Например «msdos» (когда GRUB не смог определить тип разметки), но в данном примере разделы размечены в формате GPT.

Если известно, что /boot находится на разделе sda2, у которого пять разделов. То с большой степенью вероятности это будет (hd0,4) в формате GRUB. Префикс «gpt» для раздела можно не указывать. Ну а если же изначальную структуру разделов вспомнить или определить не представляется возможным. То остаётся только перебирать или угадывать.
Команда ls выведет примерно следующее:

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

Важно заметить, что если «угадано» верно, то будет загружена родная система так, как она загружалась в штатном режиме.

Ручная загрузка ядра

Пусть для ручной загрузки выбран раздел (hd0,4) — т. е. sda2. Нужно задать этот раздел в качестве корневой файловой системы:

Подключение модулей для работы с ФС Ext2/3/4:

Для других типов ФС нужно подключать соответствующие модули: bfs, xfs или zfs.
Подключение модуля normal для полноценного запуска и работы GRUB:

Если после этих команд штатная загрузка не начнётся, то остаётся её продолжить вручную. Для этого нужно попытаться найти доступные ядра и выбрать нужное для загрузки. Для этого следует ввести команду linux /boot/vmlinuz и нажать клавишу <Tab>:

Как можно видеть, команда linux обнаружила в системе два ядра. И автоматически подготовила следующую команду для выбора нужного. Остаётся только дописать «1-generic», если нужно загрузить ядро версии 4.18.0-21-generic. Указать корневой раздел и выполнить команду:

Важно заметить, что указывается тот же корневой раздел, что и в команде set root, только уже в классическом формате.

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

Теперь всё готово, можно выполнить загрузку:

Если всё сделано правильно и выбран нужный раздел загрузки, то будет загружена «родная» система так, как это происходит в штатном режиме. Ведь всё, что было проделано вручную — это основной набор команд, хранящихся в файле /boot/grub/grub.cf g и выполняемых GRUB автоматически.

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

Заключение

В заключение необходимо напомнить, что были рассмотрены наиболее распространённые неполадки в работе загрузчика GRUB, а также причины их появления. На примерах были подробно рассмотрены основные и самые доступные способы восстановления работы GRUB.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если у вас есть компьютер, загружающийся в режиме Legacy BIOS, но при этом сам компьютер поддерживает UEFI, и вы хотите установить на него ROSA Fresh именно в UEFI, то эта статья для вас.

Мы решили собрать тут основные проблемы, с которыми вы можете столкнуться при таком сценарии, а также (по возможности) пути их решения. Настоятельно рекомендуется сначала прочесть статью и тщательно взвесить все «за» и «против», прежде чем приступать к установке, потому что, увы, не на всех компьютерах удастся получить рабочую конфигурацию. Кроме того, перед установкой может потребоваться выполнить некоторые шаги, чтобы потом восстановить загружаемость компьютера.

Статья скомпонована в виде списка проблем и их решений.

Содержание

После установки ROSA не загружается

Если у вас был Legacy-BIOS-загрузчик, то, скорее всего, на диске находилась таблица разделов MBR. В настоящее время утилита добавления загрузочного пункта UEFI не поддерживает логические MBR-разделы. Поэтому если ваш EFI-раздел (/boot/efi) является логическим (то есть имеет номер выше 4, например, /dev/sda5, /dev/sdb8 и т. п.), то загрузочный пункт добавлен не будет, и UEFI не будет знать, что загружать.

Возможные решения и обходные пути:

Использовать таблицу разделов GPT Это решение подойдёт, только если у вас чистый диск или если существующие разделы и системы вам не нужны, так как конвертация MBR-диска в GPT без потери данных инсталлятором не поддерживается. Создать EFI-раздел как первичный (sdX1-sdX4) К сожалению, это не всегда возможно из-за структуры MBR.

На MBR-диске может находиться не более 4-х первичных разделов. Поэтому либо у вас будет всего 4 раздела (без возможности создавать новые), либо будет не более трёх первичных разделов, а четвёртый будет использоваться в качестве так называемого расширенного раздела, который по сути является «контейнером» для дополнительных, логических разделов. Соответственно, если у вас уже есть 3 первичных раздела и несколько логических, создать ещё один первичный раздел для EFI будет невозможно. Кроме того, даже если для первичного раздела есть свободный номер, вы не сможете его расположить между двумя логическими разделами, поскольку тогда его местоположение будет пересекаться с расширенными разделом, что запрещено.

Вручную прописать UEFI-загрузчик Некоторые компьютеры (например, отдельные серии Dell Inspiron или Latitude) позволяют в настройках UEFI создавать собственные пункты загрузки. В этом случае после установки ROSA вы можете добавить такой пункт, выбрав в качестве корневой файловой системы ваш EFI-раздел, а в качестве загружаемого файла — \EFI\rosa\BOOTx64.efi или \EFI\rosa\grubx64.efi . Если у вас поддерживается Secure Boot и вы планируете его включать, то нужно грузиться через BOOTx64.efi, если нет — можно использовать grubx64.efi напрямую.

Dell EFI BIOS Editor Select.jpg

Dell EFI BIOS Editor.jpg

Автозапуск командного скрипта из EFI-раздела Некоторые UEFI-прошивки поддерживают автозапуск командного скрипта из EFI-раздела. Поэтому если предыдущие варианты не подошли, попробуйте загрузить ROSA в Live-режиме, подмонтировать EFI-раздел в какой-нибудь временный каталог и создать в его корне файл с именем startup.nsh , в котором в кодировке UTF-16LE с BOM-сигнатурой должны быть прописаны команды перехода на нужный раздел и загрузки EFI-файла, например: UEFI-имена разделов обычно выглядят как BLKn: , а для распознанных файловых систем создаются псевдонимы FSn: , где n — порядковый номер. Список устройств может выводиться на экран при загрузке компьютера (если нет, попробуйте найти нужный номер перебором).

В загрузочном меню UEFI-ROSA отсутствует Windows

Legacy-загрузчик не поддерживается в режиме UEFI, поэтому Windows, установленная в Legacy-режиме, не будет искаться и добавляться в Grub-меню.

Имеющиеся Linux-системы же, напротив, будут корректно добавлены, поскольку для своей загрузки не требуют обращения к Legacy-загрузчику: имеющаяся UEFI-версия Grub2 просто обращается к файлам ядра и initrd напрямую.

С Windows такой механизм невозможен, поэтому для её загрузки необходимо отключать UEFI или явно выбирать загрузку с жёсткого диска через MBR (если в UEFI реализован Legacy-совместимый режим работы).

После установки UEFI-ROSA и переключения в Legacy BIOS перестала грузиться ранее установленная Windows

Эта проблема связана с тем, что загрузчик Windows запоминает идентификатор диска, записанный в MBR. Установка ROSA в UEFI-режиме, по неустановленным пока причинам, может этот идентификатор перезатереть. В итоге Windows не может найти свой загрузочный диск и падает с ошибкой 0xc000000e .

Для решения этой проблемы необходимо перед началом установки ROSA проделать следующее:

  • Если вы загрузились в Live-режим, то откройте консоль (Konsole); если вы в режиме установки, то переключитесь в терминал (Ctrl+Alt+F2) и залогиньтесь в аккаунт root (пароль не потребуется).
  • Выполните команду:
  • После завершения установки надо будет загрузиться либо в свежеустановленную ROSA, либо снова в Live-режим и восстановить идентификатор. Для этого открываем консоль и запускаем:
  • Запускается консоль fdisk. Вводим последовательно следующие команды:
    • x (вход в режим эксперта)
    • i (смена идентификатора диска)
    • далее вводим записанный нами ранее код (в примере выше это 0xcea3e5ff )
    • r (выход в основной режим)
    • w (запись изменений и выход из fdisk)

    А я потерял прежний идентификатор, что делать?

    В этом случае есть возможность вытащить старый идентификатор из реестра Windows. Можно воспользоваться какой-нибудь Linux-программой визуального представления реестра, но проще обойтись тем, что под рукой.

    Не загружается Linux, чиним загрузчик GRUB

    Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.

    Что такое Grub

    GRUB_screenshot

    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:

    Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:

    Rufus

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

    Rufus obraz

    Находим загруженный образ через менеджер, после чего жмем "Старт".

    С помощью 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

    1335260967

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

    Понимание процедуры загрузки в Linux RHEL7/CentOS

    Следующие шаги суммируют, как процедура загрузки происходит в Linux.

    1. Выполнение POST: машина включена. Из системного ПО, которым может быть UEFI или классический BIOS, выполняется самотестирование при включении питания (POST) и аппаратное обеспечение, необходимое для запуска инициализации системы.

    2. Выбор загрузочного устройства: В загрузочной прошивке UEFI или в основной загрузочной записи находится загрузочное устройство.

    3. Загрузка загрузчика: с загрузочного устройства находится загрузчик. На Red Hat/CentOS это обычно GRUB 2.

    4. Загрузка ядра: Загрузчик может представить пользователю меню загрузки или может быть настроен на автоматический запуск Linux по умолчанию. Для загрузки Linux ядро загружается вместе с initramfs . Initramfs содержит модули ядра для всего оборудования, которое требуется для загрузки, а также начальные сценарии, необходимые для перехода к следующему этапу загрузки. На RHEL 7/CentOS initramfs содержит полную операционную систему (которая может использоваться для устранения неполадок).

    5. Запуск /sbin/init: Как только ядро загружено в память, загружается первый из всех процессов, но все еще из initramfs . Это процесс /sbin/init , который связан с systemd . Демон udev также загружается для дальнейшей инициализации оборудования. Все это все еще происходит из образа initramfs .

    6. Обработка initrd.target: процесс systemd выполняет все юниты из initrd.target , который подготавливает минимальную операционную среду, в которой корневая файловая система на диске монтируется в каталог /sysroot . На данный момент загружено достаточно, чтобы перейти к установке системы, которая была записана на жесткий диск.

    7. Переключение на корневую файловую систему: система переключается на корневую файловую систему, которая находится на диске, и в этот момент может также загрузить процесс systemd с диска.

    8. Запуск цели по умолчанию (default target): Systemd ищет цель по умолчанию для выполнения и запускает все свои юниты. В этом процессе отображается экран входа в систему, и пользователь может проходить аутентификацию. Обратите внимание, что приглашение к входу в систему может быть запрошено до успешной загрузки всех файлов модуля systemd . Таким образом, просмотр приглашения на вход в систему не обязательно означает, что сервер еще полностью функционирует.
    На каждом из перечисленных этапов могут возникнуть проблемы из-за неправильной настройки или других проблем. Таблица суммирует, где настроена определенная фаза и что вы можете сделать, чтобы устранить неполадки, если что-то пойдет не так.

    Передача аргементов в GRUB 2 ядру во время загрузки

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

    Когда сервер загружается, вы кратко видите меню GRUB 2. Смотри быстро, потому что это будет длиться всего несколько секунд. В этом загрузочном меню вы можете ввести e, чтобы войти в режим, в котором вы можете редактировать команды, или c, чтобы ввести полную командную строку GRUB.


    После передачи e в загрузочное меню GRUB вы увидите интерфейс, показанный на скриншоте ниже. В этом интерфейсе прокрутите вниз, чтобы найти раздел, начинающийся с linux16 /vmlinuz , за которым следует множество аргументов. Это строка, которая сообщает GRUB, как запустить ядро, и по умолчанию это выглядит так:



    После ввода параметров загрузки, которые вы хотите использовать, нажмите Ctrl + X, чтобы запустить ядро с этими параметрами. Обратите внимание, что эти параметры используются только один раз и не являются постоянными. Чтобы сделать их постоянными, вы должны изменить содержимое файла конфигурации /etc/default/grub и использовать grub2-mkconfig -o /boot/grub2/grub.cfg , чтобы применить изменение.

    Когда у вас возникли проблемы, у вас есть несколько вариантов (целей), которые вы можете ввести в приглашении загрузки GRUB:

    ■ rd.break Это останавливает процедуру загрузки, пока она еще находится в стадии initramfs .
    Эта опция полезна, если у вас нет пароля root.

    ■ init=/bin/sh или init=/bin/bash Указывает, что оболочка должна быть запущена сразу после загрузки ядра и initrd . Это полезный вариант, но не лучший, потому что в некоторых случаях вы потеряете консольный доступ или пропустите другие функции.

    ■ systemd.unit=rescue.target Команда запускает еще несколько системных юнитов, чтобы привести вас в более полный рабочий режим. Требуется пароль root.
    Чтобы увидеть, что загружено только очень ограниченное количество юнит-файлов, вы можете ввести команду systemctl list-units .

    Запуск целей(targets) устранения неполадок в Linux

    1. (Пере)загружаем Linux. Когда отобразиться меню GRUB, нажимаем e ;

    2. Находим строку, которая начинается на linux16 /vmlinuz. В конце строки вводим systemd.unit=rescue.target и удаляем rhgb quit ;

    3. Жмем Ctrl+X, чтобы начать загрузку с этими параметрами. Вводим пароль от root;

    4. Вводим systemctl list-units и смотрим. Будут показаны все юнит-файлы, которые загружены в данный момент и соответственно загружена базовая системная среда;

    5. Вводим systemctl show-environment . Видим переменные окружения в режиме rescue.target;

    6. Перезагружаемся reboot ;

    7. Когда отобразится меню GRUB, нажимаем e . Находим строку, которая начинается на linux16 /vmlinuz. В конце строки вводим systemd.unit=emergency.target и удаляем rhgb quit ;

    8. Снова вводим пароль от root;

    9. Система загрузилась в режиме emergency.target;

    10. Вводим systemctl list-units и видим, что загрузился самый минимум из юнит-файлов.

    Устранение неполадок с помощью загрузочного диска Linux

    Еще один способ восстановления работоспособности Linux использовать образ операционки.

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

    • Install CentOS 7 in Basic Graphics Mode: эта опция переустанавливает систему. Не используйте её, если не хотите устранить неполадки в ситуации, когда обычная установка не работает и вам необходим базовый графический режим. Как правило, вам никогда не нужно использовать эту опцию для устранения неисправностей при установке.
    • Rescue a CentOS System: это самая гибкая система спасения. Это должен быть первый вариант выбора при использовании аварийного диска.
    • Run a Memory Test: если вы столкнулись с ошибками памяти, это позволяет пометить плохие микросхемы памяти, чтобы ваша машина могла нормально загружаться.
    • Boot from local drive: здесь я думаю всё понятно.

    Пример использования "Rescue a CentOS System"

    1. Перезагружаем сервер с установочным диском Centos 7. Загружаемся и выбираем "Troubleshooting".

    2. В меню траблшутинга выбираем "Rescue a CentOS System" и загружаемся.


    3. Система восстановления теперь предлагает вам найти установленную систему Linux и смонтировать ее в /mnt/sysimage . Выберите номер 1, чтобы продолжить:
    4. Если была найдена правильная установка CentOS, вам будет предложено, чтобы система была смонтирована в /mnt/sysimage . В этот момент вы можете дважды нажать Enter, чтобы получить доступ к оболочке восстановления.



    5. Ваша система Linux на данный момент доступна через каталог /mnt/sysimage . Введите chroot /mnt/sysimage . На этом этапе у вас есть доступ к корневой файловой системе, и вы можете получить доступ ко всем инструментам, которые необходимы для восстановления доступа к вашей системе.

    Переустановка GRUB с помощью аварийного диска

    Одна из распространенных причин, по которой вам нужно запустить аварийный диск, заключается в том, что загрузчик GRUB 2 не работает. Если это произойдет, вам может понадобиться установить его снова. После того, как вы восстановили доступ к своему серверу с помощью аварийного диска, переустановить GRUB 2 несложно, и он состоит из двух этапов:

    1. Убедитесь, что вы поместили содержимое каталога /mnt/sysimage в текущую рабочую среду.
    2. Используйте команду grub2-install , а затем имя устройства, на котором вы хотите переустановить GRUB 2. Если это виртуальная машина KVM используйте команду grub2-install /dev/vda и на физическом сервере или виртуальная машина VMware, HyperV или Virtual Box, это grub2-install /dev/sda .

    Повторное создание Initramfs с помощью аварийного диска

    Иногда initramfs также может быть поврежден. Если это произойдет, вы не сможете загрузить свой сервер в нормальном рабочем режиме. Чтобы восстановить образ initramfs после загрузки в среду восстановления, вы можете использовать команду dracut . Если используется без аргументов, эта команда создает новый initramfs для загруженного в данный момент ядра.
    Кроме того, вы можете использовать команду dracut с несколькими опциями для создания initramfs для конкретных сред ядра. Существует также файл конфигурации с именем /etc/dracut.conf , который можно использовать для включения определенных параметров при повторном создании initramfs .

    • /usr/lib/dracut/dracut.conf.d/*.conf содержит системные файлы конфигурации по умолчанию.
    • /etc/dracut.conf.d содержит пользовательские файлы конфигурации dracut.
    • /etc/dracut.conf используется в качестве основного файла конфигурации.

    Исправление общих проблем

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

    Переустановка GRUB 2

    Код загрузчика не исчезает просто так, но иногда может случиться, что загрузочный код GRUB 2 будет поврежден. В этом случае вам лучше знать, как переустановить GRUB 2. Точный подход зависит от того, находится ли ваш сервер в загрузочном состоянии. Если это так, то довольно просто переустановить GRUB 2. Просто введите grub2-install и имя устройства, на которое вы хотите его установить. У команды есть много различных опций для точной настройки того, что именно будет установлено, но вам, вероятно, они не понадобятся, потому что по умолчанию команда устанавливает все необходимое, чтобы ваша система снова загрузилась. Становится немного сложнее, если ваш сервер не загружается.

    Если это произойдет, вам сначала нужно запустить систему восстановления и восстановить доступ к вашему серверу из системы восстановления. После монтирования файловых систем вашего сервера в /mnt/sysimage и использования chroot /mnt/sysimage , чтобы сделать смонтированный образ системы вашим корневым образом: Просто запустите grub2-install , чтобы установить GRUB 2 на желаемое установочное устройство. Но если вы находитесь на виртуальной машине KVM, запустите grub2-install /dev/vda , а если вы находитесь на физическом диске, запустите grub2-install /dev/sda .

    Исправление Initramfs

    В редких случаях может случиться так, что initramfs будет поврежден. Если вы тщательно проанализируете процедуру загрузки, вы узнаете, что у вас есть проблема с initramfs , потому что вы никогда не увидите, как корневая файловая система монтируется в корневой каталог, и при этом вы не увидите запуска каких-либо системных модулей. Если вы подозреваете, что у вас есть проблема с initramfs , ее легко создать заново. Чтобы воссоздать его, используя все настройки по умолчанию (что в большинстве случаев нормально), вы можете просто запустить команду dracut --force . (Без --force команда откажется перезаписать ваши существующие initramfs .)
    При запуске команды dracut вы можете использовать файл конфигурации /etc/dracut.conf , чтобы указать, что именно записывается в initramfs . В этом файле конфигурации вы можете увидеть такие параметры, как lvmconf = «no» , которые можно использовать для включения или выключения определенных функций. Используйте эти параметры, чтобы убедиться, что у вас есть все необходимые функции в initramfs .

    Восстановление после проблем с файловой системой


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

    Некоторые дистрибутивы Linux не предлагают безопасный режим и средства автоматического восстановления, но вы можете увидеть режим восстановления, который предоставляет некоторые параметры, которые хранят ваши файлы и может устранить проблему.

    Существует также другая возможность с помощью Linux live CD или USB, который поможет использовать инструменты или команды.

    1) Восстановление Grub2

    Ubuntu и многие другие дистрибутивы Linux используют загрузчик GRUB2.

    Если GRUB2 ломается, например, если вы установили Windows после установки Ubuntu или перезаписали свой MBR, вы не сможете загрузиться в свою систему Linux.

    Способность GRUB 2 исправлять проблемы с загрузкой значительно улучшилась по сравнению с исходным загрузчиком GRUB.

    Я покажу вам, как решить ваши проблемы с загрузкой GRUB 2 и конкретные инструкции о том, как использовать терминал GRUB 2.

    Вы должны использовать liveCD.

    Когда вы загрузитесь, откройте терминал и введите следующую команду:

    Теперь вы можете перезагрузить систему.

    Если операция не разрешена, загрузитесь в режиме liveCD и установите пакеты восстановления для загрузки, как показано ниже:

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

    2) Сбросить пароль для входа в систему

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

    Приведенная выше команда устанавливает корневой раздел в режиме чтения / записи.

    Теперь измените свой пароль

    Если у вас есть SELinux, введите приведенную ниже команду, чтобы обновить ее параметры:

    Теперь вы можете нормально перезагрузить систему и ввести новый пароль

    3) Unable to log in: fail to start session

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

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

    Или это, вероятно, потому, что на вашем компьютере мало места или проблема с LightDM или Xauthority.

    Чтобы устранить проблему, введите Ctl-Alt-F1 и войдите в терминал.

    Теперь введите команду ниже:

    4) Просмотр журналов загрузки системы

    Чтобы просмотреть журнал предыдущей загрузки, используйте -1 относительный указатель с флагом -b

    У вас могут возникнуть проблемы из-за приложений.

    Journald упрощает использование расширенных функций журнала и проводит обширный анализ и реляционную отладку различных компонентов приложений.

    5) Ошибка загрузки на консоли

    Это запустит вас прямо в командную строке оболочку Bash.

    Затем вы можете перемонтировать файловую систему «/» и проверить / var / log / messages на ошибки.

    Вы можете использовать приведенную ниже команду для повторного подключения «/» как чтения / записи.

    Ошибка в ядре может быть из-за плохого процессора или материнской платы или плохой памяти.

    Если вышеуказанные шаги не работают, то попробуйте так:

    1) Загрузитесь диска Linux (загрузочный компакт-диск).

    2) Введите «boot rescue» в приглашении загрузки Linux.

    3) После появления приглашения оболочки bash введите «chroot / mnt / sysimage».

    a) Проверить наличие ошибки на диске:

    Выполните «fdisk -l / dev / hda», чтобы проверить, сколько у вас разделов

    Если вы используете загрузчик Lilo, введите «cd / etc; lilo».

    Вывод

    LiveCDs, такие как Ubuntu или Knoppix, делают работу по спасению просто прекрасной.

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