Efi не загружается linux

Обновлено: 04.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление

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

  1. Не загружается Linux Live при записи на флешку
  2. Linux не загружается сразу после установки операционной системы
  3. Linux не загружается после обновления или установки программ (ядра Linux, драйверов)
  4. Linux не загружается из-за аппаратных изменений компьютера (новая видеокарта, новый диск или отключение диска)

1. Не загружается Linux Live при записи на флешку

1.1 Включены опции Quick boot и (или) Secure boot

Причина может быть в том, что в вашем BIOS (UEFI) включены опции Quick boot и (или) Secure boot. Зайдите в БИОС и отключите их.

1.2 Не пользуйтесь Rufus

Не надо пользоваться Rufus для записи образов Linux. Сейчас большинство ISO LIVE образов Linux это гибридные образы: в них имеется поддержка BIOS и UEFI, т. е. они прекрасно работают на старом и новом железе, а Rufus вносит какие-то изменения и просто портит их.

Для записи используйте портативную кроссплатформенную программу Etcher.

1.3 Обновите БИОС вашего компьютера

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

1.4 A start job is running for live-config contains the components that configure a live system during the boot process (late userspace)

2. Linux не загружается сразу после установки операционной системы

2.1 error: attempt to read or write outside of disk “hd0″

3. Linux не загружается после обновления или установки программ

Среди вероятных причин проблем с загрузкой Linux после обновления или установки программ могут быть:

  1. обновление ядра Linux
  2. установка или обновление драйверов для графической карты

3.1 Невозможно загрузиться после установки драйверов видеокарты

Загрузка доходит до меню, но замирает на экране консоли или после ввода логина и пароля

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

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

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

Чтобы избежать эту проблему, когда появится меню загрузки GRUB нажмите букву e.


Теперь отредактируйте опции загрузки, добавив nomodeset. Для этого найдите строку, начинающуюся со слова linux и в её конец допишите через пробел слово nomodeset. Для продолжения загрузки нажмите F10.

Эта настройка действует только для текущей загрузки и при последующих перезагрузках системы это нужно делать снова.

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

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

в консоли загрузки.

Для отключения nouveau создайте файл /etc/modprobe.d/blacklist-nouveau.conf и скопируйте в него:

Если вы не можете загрузиться в графический интерфейс, то попробуйте с помощью сочетаний клавиш Ctrl+Alt+F1, Ctrl+Alt+F2, Ctrl+Alt+F3 и так далее перейти в консоль. Залогинтесь там и с помощью консольного редактора создайте в папке /etc/modprobe.d/ файл blacklist-nouveau.conf со следующим содержимым:

Для создания файла с помощью текстового редактора nano:

Или с помощью vim:

3.2 Невозможно загрузиться после обновления ядра

В производных Debian после установки нового ядра могут появляться новые опции в меню загрузки с вариантами загрузки компьютера с предыдущей версией ядра.

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

  • /boot/initrd.img-5.4.0-kali2-amd64
  • /boot/initrd.img-5.4.0-kali3-amd64

В Arch Linux и производных текущее ядро имеет имя /boot/initramfs-linux.img, а предыдущее ядро имеет имя /boot/initramfs-linux-fallback.img.

4. Linux не загружается из-за аппаратных изменений компьютера

4.1 Не загружается после добавления/удаления диска

4.2 Новая видеокарта

Как откатить изменения в Linux, если система не загружается

1) После попадания в чёрный экран. Попробуйте нажать Ctrl+Alt+F1. Если ничего не произойдёт, то нажимайте дальше Ctrl+Alt+F2, Ctrl+Alt+F3 и т. д. Ctrl+Alt+F* пока не появится приглашение авторизации.

2) Введите логин и пароль вашего пользователя

3) С помощью менеджера пакета (apt, pacman) удалить пакеты, которые вызвали проблемы. С помощью текстовых редакторов с интерфейсом командой строки (vim, nano) откатите изменения в конфигурационных файлах, которые препятствуют загрузке.

Как увидеть, из-за каких ошибок не загружается Linux

Увидеть ошибки, которые препятствуют загрузке системы, можно двумя способами:

1) на экране во время загрузки

2) с помощью команды journalctl

Иногда система намертво зависает и невозможно воспользоваться командой journalctl, тогда в этом случае остаётся только первый вариант. Но другая проблема в том, что многие дистрибутивы Linux во время запуска компьютера убирают вывод журнала загрузки на экран и/или закрывают его заставкой.

1) Чтобы вернуть показ журнала загрузки системы выполните следующую последовательность действий:

1.1 В меню загрузки нажмите е (или TAB). Откроется окно опций загрузки. Если в нём несколько строк, то передвиньте курсор на строку, которая начинается с

1.2 Посмотрите, встречаются ли в этой строке «quiet» и «splash»?

1.3 Уберите обе эти строки и начните загрузку (кнопку F10). Посмотрите, какие именно ошибки не дают загрузиться системе.

2) Как просмотреть журнал последней загрузки

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

Либо используйте следующую команду для сохранения информации о последней загрузки в файл:

Использование однопользовательского режима для восстановления системы

В крайнем случае, если не удаётся войти даже в интерфейс командной строки из-за зависания системы, воспользуйтесь однопользовательским режимом. Подробности об этом режиме, а также какие опции нужно указать смотрите в статье «Как в Linux сбросить забытый пароль входа». В этой статье также даются подсказки о подключении диска для записи и о том, как отредактировать опции загрузки Linux в различных дистрибутивах.

ставил сегодня Ubuntu 14.04 x64 на EFI-based комп с предустановленной, но после перезагрузки не видит винт вообще - ни винду, ни убунту.

использованы были разделы /, /boot, /boot/efi . boot флаг установлен на раздел с efi.


Если загрузится получилось см. man efibootmgr .


нету. или я как-то не так захожу.


(U)EFI shell должнен быть, поищи хорошенько в материнке или бутменю.

Разметка MBR, что ли? Не все UEFI умеют грузиться с MBR, некоторые признают только GPT (у меня такой, например). Ещё EFI-раздел должен быть в FAT32, его тип раздела должен быть EF00.

использованы были разделы /, /boot, /boot/efi

Зачем отделять отдельно /boot?

Не во всех UEFI есть встроенный шелл.


Записать шелл на флешку - дело 5 минут.


разметка GPT, EFI - в fat32. Устанавливался напрямую установщиком Ubuntu.

Отеделение или не отделение бута - это не принципиальный вопрос в большинстве случаев.

Какие клавиши есть для входа в EFI Shell? Del, F12 - вход в биос (если что, bios - american megatrends).

Еще один может быть важный факт: раздел EFI - не первый. Хотя когда стояла винда, всё работало и так.

Записать шелл на флешку - дело 5 минут.

Отеделение или не отделение бута - это не принципиальный вопрос в большинстве случаев.

На работоспособность это вряд ли повлияло, просто смысла нет отделять.


в биосе нет строчки Internal EFI Shell. вообще ничего нет связанного с EFI.


Как? тупо скачать Shell_Full.efi и через dd на флэшку?


Не надо никаких dd. Просто скопируй файл на флешку (fat32) и все.


но послперезагрузки не видит винт вообще - ни винду, ни убунту.


видимо, винт не инициализируется uefi (?).

После очередной попытки установки (на этот раз тот же образ записывался через dd) обнаружилась еще пара багов:

1) Ubuntu определяет EFI как-то через раз. В этот раз при разбивке диска не было строчки в меню, которая позволяла бы назначить раздел EFI.

2) На последнем этапе Восстановления пакетов установщик сказал, что все пакеты - битые.

P.S.: Я начинаю тихо ненавидеть ubuntu.


Если он виден в установщике, значит инициализируется. Что насчет второго вопроса?

Ubuntu определяет EFI как-то через раз. В этот раз приразбивке диска не былострочки в меню, которая позволяла бы назначить раздел EFI.

Возможно ты в этот раз загрузился в Legacy-режиме.

Andrew ★★★ ( 08.09.14 00:29:15 )
Последнее исправление: Andrew 08.09.14 00:30:09 (всего исправлений: 1)


boot-repair определяет оба раздела - и с виндой, и с линуксом на борту.

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


сначала смотрит то, что в биосе стоит по первому приоритету

Что значится в списке? По твоему описанию там нет ни винта, ничего.


эм. вероятно, я как-то не так описал. в списке Boot Device Priority винт обнаруживается. после Save & Exit и ребута, когда доходит до программы загрузки диска (и это уже не биос и не загрузчики систем, что-то новое. может и uefi, ни разу не видел, как оно выглядит, но если и так, то оно никак не показывает, что это uefi, показывает только марку винта - 2,2 TB и статус-бар. Да, это не размер диска, а марка), снова появляется предложение нажать любую клавишу для выбора устройства загрузки. И вот именно в этом списке нет разделов винта, только флэшки.


то есть, винт как устройство обнаруживается, а разделы на себе он не видит. Загрузчик убунты ставился по всякому, в том числе и в /dev/sda. Его он тоже не мог найти.


Итак, вы указали в настройках BIOS загрузку с CD/DVD или с USB, и при загрузке с Ubuntu LiveCD получили вместо фиолетового экрана с пиктограммами клавиатуры и человечка вот такой экран:

Загрузка с UEFI

Ничего страшного, так бывает 1) . В этом случае нужно учесть ряд моментов, о которых и будет рассказано в этом разделе. Кстати, наличие фиолетового экрана при загрузке совсем не означает, что у вас нет UEFI, просто с чёрным экраном все особенности UEFI проявляются наиболее ярко. Так что, в любом случае прочитать этот раздел будет очень полезно. А пока смело выбирайте верхнюю строчку «Try Ubuntu without installing» и нажимайте Enter . После непродолжительного ожидания вы попадёте на рабочий стол Ubuntu, и, пока ждёте загрузки Ubuntu, поговорим об UEFI.

Введение в UEFI и GPT

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

Что происходит при включении компьютера? Прежде всего компьютер должен корректно инициализировать сам себя, то есть своё собственное оборудование, и передать управление загрузчику операционной системы. Занимается этим процессом «Extensible Firmware Interface» (EFI) (Расширяемый интерфейс прошивки) — интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования. Раньше за это отвечал BIOS, а теперь EFI, который после очередного изменения стандарта стал называться «Unified Extensible Firmware Interface» (UEFI) — это название и будет использоваться в дальнейшем. Надо заметить, что UEFI, как более современный интерфейс, полностью поддерживает все функции BIOS, обратное, к сожалению, не верно. В настройках режим поддержки BIOS чаще всего называется «Legacy» («наследуемый» или «традиционный» по-английски) или просто «UEFI Disabled» («UEFI отключён», как не трудно догадаться). Сейчас, однако, нас интересует включённый режим UEFI.

Итак, при включении компьютера UEFI начинает инициализировать оборудование и находит какое-то блочное устройство, скажем, жёсткий диск. Вы, наверное, знаете, что целиком жёсткий диск практически никогда не используется — диск обязательно разбивается на разделы, в том числе и для удобства в обращении. А вот разбить его на разделы можно, на сегодняшний день, двумя стандартными способами: с помощью MBR или GPT. В чём их отличие?

MBR («Master Boot Record» — основная загрузочная запись) использует 32-битные идентификаторы для разделов 2) , которые размещаются в очень маленьком кусочке пространства (64 байта) в самом начале диска (в конце первого сектора диска). Из-за такого маленького объёма поддерживаются только четыре первичных раздела (подробнее об этом можно узнать в этой статье). Поскольку используется 32-битная адресация, то каждый раздел может быть не более 2,2 ТБ. Кроме того, загрузочная запись не имеет никакой запасной MBR, так что если приложение перезапишет основную загрузочную запись, то вся информация о разделах будет потеряна.

GPT («GUID Partition table» — таблица разделов GUID) использует уже 64-битные идентификаторы для разделов, поэтому кусочек пространства, в котором сохраняется информация о разделах, уже больше чем 512 байт, кроме того, не существует ограничения на количество разделов. Заметьте, ограничение на размер раздела в этом случае почти 9,4 ЗБ (да-да, вы всё прочитали правильно — зеттабайт, единичка с двадцатью одним нулём!). А в конце диска имеется копия GPT, которая может использоваться для восстановления повреждённой основной таблицы разделов в начале диска 3) .

Так вот, когда связь между оборудованием и операционной системой осуществляется через включённый режим UEFI (а не Legacy BIOS), использование GPT для разбивки разделов является практически обязательным, иначе наверняка возникнут проблемы совместимости с MBR 4) .

Ну вот, с блочными устройствами, кажется, разобрались, UEFI всё корректно инициализировал, и теперь он должен найти загрузчик операционной системы и передать управление ему. В первом приближении это выглядит так: поскольку UEFI преемник BIOS, то он выполняет поиск загрузчика в строгом соответствии с установленными правилами. Если он находит загрузчик операционной системы, который не поддерживает UEFI, то активируется режим эмуляции BIOS (именно так, даже если Legacy BIOS явно не указан). И начинается всё сначала, с той лишь разницей, что теперь уже эмулированный BIOS проверяет состояние оборудования и загружает микропрограммное обеспечение — простые драйверы для отдельных аппаратных компонентов. После этого эмулированный BIOS опять выполняет поиск загрузчика ОС и активирует его. Тот, в свою очередь, загружает операционную систему или выводит на экран список доступных ОС 5) .

А в случае UEFI всё происходит несколько иначе. Дело в том, что UEFI имеет собственный загрузчик операционных систем с интегрированными менеджерами запуска установленных ОС. С этой целью для него — для загрузчика UEFI — на диске должен быть создан небольшой раздел (100–250 МБ), который называется «Extensible Firmware Interface System Partition» (системный раздел расширяемого интерфейса прошивки, ESP). Кроме указанного размера, раздел должен быть отформатирован в файловой системе FAT32 6) и быть загрузочным. На нем находятся драйверы аппаратных компонентов, к которым может получать доступ запущенная операционная система. И в этом случае загрузка происходит прямо с этого раздела, что намного быстрее.

Итак, подведём некоторые итоги: чтобы по полной задействовать функционал UEFI, диск должен быть с GPT, и на нём должен быть специальный раздел ESP 7) . Обратите внимание на фразу «чтобы по полной задействовать функционал» — существует масса способов установки Ubuntu на систему с «урезанным» в той или иной степени UEFI, и все они зависят от наличия или отсутствия предустановленных операционных систем на вашем компьютере. Например, вы хотите оставить предустановленную Windows. Какую Windows — «семёрку» или новомодную 8.1? А может быть у вас, не дай бог, установлена «ператская винда», активированная с MBR, и не желающая запускаться с GPT, и вы, тем не менее, хотите дальше её изучать? Кроме того, очень много зависит от разрядности операционных систем — без плясок с бубном невозможно 32-битную систему заставить работать с UEFI. И таких примеров достаточно много. Поэтому в этом разделе пойдёт разговор только про установку Ubuntu в режиме «максимально полного» задействования возможностей UEFI, хотя даже после прочтения этого введения, вы уже сможете представлять устройство своего компьютера и, при желании, реализовать свой собственный сценарий установки.

Ну что, приступим?

Разметка диска

Прежде чем продолжить, обязательно ознакомьтесь с правилами разметки диска и устройством файловой системы в Ubuntu, иначе некоторые вещи вам могут быть не совсем понятны.

Итак, вы загрузились в Ubuntu с LiveCD в режиме UEFI. Открывайте «Редактор разделов GParted» 8) , а пока поговорим об очень важных особенностях, на которые нужно обратить внимание.

Самое главное, у вас должен быть план ваших действий, поверьте — перечень шагов и порядок их выполнения достаточно обширен, так что желательно записать где-нибудь на бумажке основные пункты плана и периодически с ними сверяться. Итак, что же вам известно. Для нормальной установки Ubuntu в режиме UEFI жёсткий диск вашего компьютера должен быть правильно подготовлен, а именно:

на диске должны быть стандартные разделы: системный, подкачки, а также раздел для домашнего каталога.

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

Начнём с ответа на второй вопрос: о наличии других операционных систем. Если на вашем компьютере уже установлены операционные системы, поддерживающие загрузку в режиме UEFI (например, Windows 8), и вы не намерены пока от них отказываться, то первые два пункта плана уже выполнены: раздел ESP наверняка уже есть, ну и диск, разумеется, с GPT. Давайте проверим, что это действительно так.

Предположим, после запуска редактора разделов GParted у вас откроется вот такое окно 9) :

Окно GParted

Какую информацию можно получить при внимательном изучении этого окна? Во-первых, посмотрите на столбец «File System» («Файловая система»): все разделы отформатированы в ntfs , кроме одного раздела с файловой системой fat32 — это, по всей видимости, и есть раздел ESP. На диске уже установлена Windows 8 (раздел /dev/sda4 — в Windows это диск C: ) — об этом говорит метка диска (столбец «Label»). Во-вторых, на жёстком диске есть ряд служебных разделов Windows — об этом можно узнать не только по меткам ( WINRE_DRV и LRS_ESP ), но и по флагам (столбец «Flags») — все эти разделы скрыты, поскольку у них установлен флаг hidden , что намекает на специальный характер информации на них. И, наконец, присмотритесь к разделу /dev/sda5 — вы случайно не потеряли диск D: в Windows? Вот он, в целости и сохранности.

Итак, первые два пункта плана уже выполнены, а реализация третьего пункта: создание разделов для Ubuntu — достаточно подробно описана в примере использования GParted для переразбивки жёсткого диска. Напомним вкратце, что от диска с данными (в примере это /dev/sda5, или диск D: в Windows) нужно «отрезать» достаточное пространство и на его месте создать три раздела: подкачки, системный и раздел для домашнего каталога. Учтите также, что ваш диск — GPT, так что расширенного раздела, содержащего логические диски, у него нет, следовательно, при создании разделов выбирайте Primary partition («Основной раздел»).

Не производите никаких операций со служебными разделами Windows — они предназначены для нормального функционирования этой ОС. Случайное или преднамеренное изменение этих разделов гарантировано приведёт к возникновению проблем в Windows, вплоть до полной её неработоспособности.

В итоге должно получиться что-то похожее на эту картинку:

Результат работы GParted

Здесь показаны дополнительно созданные разделы:

/dev/sda6 — системный раздел для вашей будущей Ubuntu, в примере его размер 15 ГБ; /dev/sda8 — раздел для пользовательских данных или, другими словами, раздел для домашнего каталога /home — в примере под него выделено всё оставшееся свободное пространство. /dev/sda6 — системный раздел (раздел для «корня» системы) /dev/sda8 — раздел для пользовательских данных.

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

А что делать, если ОН 11) уже наступил вы решили отказаться от использования других операционных систем и хотите установить Ubuntu единственной системой?

Нет ничего проще, хотя и придётся постараться. Прежде всего хочется предупредить, что после этого вся, абсолютно вся информация на вашем жёстком диске будет утрачена 12) . Так что позаботьтесь о резервном копировании всех важных для вас файлов. Есть, конечно, способ избежать бэкапа, но только если общий объём сохраняемых файлов немного меньше половины общего дискового пространства. Догадаетесь как 13) ?

Тем не менее, продолжаем работать с редактором GParted. Ваша задача — удалить все разделы и на свободном месте создать нужную для Ubuntu конфигурацию диска. Для этого можно щёлкнуть правой кнопкой мыши на каждом из разделов и выбрать из выпадающего меню пункт «Delete». Но лучше поступить по-другому: найдите на панели меню редактора GParted пункт «Device» (Устройство) и выберите в меню «Create Partition Table…» (Создать таблицу разделов…). Появится предупреждение:

WARNING: This will ERASE ALL DATA on the ENTIRE DISK /dev/sda

(ВНИМАНИЕ: это приведёт к УДАЛЕНИЮ ВСЕХ ДАННЫХ на ВСЁМ ДИСКЕ /dev/sda)

Не переживайте, вы же позаботились о резервных копиях? Посмотрите чуть ниже — на надпись «Advanced» (Подробности). Щёлкните мышью на треугольник слева и в меню выберите gpt :

Выбор GPT

Всё дисковое пространство станет серым. Щёлкните на нём правой кнопкой мыши и начните создавать необходимые разделы, выбрав «New» (Новый) из выпадающего меню. Первый из новых разделов — специальный раздел ESP, требуемый, как вы помните, для работы UEFI. Поскольку он форматирован в неродной для Linux файловой системе, и кроме того, должен быть загрузочным, то расположить его надо в начале дискового пространства. Определите ему размер в поле «New size (MiB)» (Новый размер в МиБ 14) ) 100 МБ 15) , а файловую систему — fat32 :

Создание раздела ESP

Таким же образом создайте разделы под будущие: системный (15 ГБ с файловой системой ext4 ), раздел подкачки (4 ГБ с linux-swap ) и для домашнего каталога (всё оставшееся пространство в ext4 ). Как вы помните, GParted применяет изменения не сразу, а просто ставит их в очередь на выполнение. Поэтому нажмите на зелёную галочку «Apply All Operations» (Выполнить все операции):

Применить изменения

Да, совсем не обязательно управлять флагами загрузки на этом этапе — установщик Ubuntu выполнит всё так, как надо. А теперь внимательно читайте про то, как устанавливать Ubuntu, и, как будете готовы, продолжим.

Установка Ubuntu

После такой подготовительной работы установка Ubuntu не вызовет трудностей, особенно если вы внимательно прочитали правила установки. Просто достаньте бумажку с перечнем разделов и обратите внимание, что для специального раздела EFI (/dev/sda2 из примера о совместной установки Ubuntu и Windows) нужно точно назначить свойство загрузочного раздела EFI, а не резервной загрузочной области BIOS:

Назначение раздела EFI

Если вы этого не сделаете, то установщик покажет вам такое уведомление:

Ошибка при установке

Исправьте ошибку, а если не получится, выйдите из установщика, запустите редактор GParted и проверьте, что всё, рассказанное выше, выполнено.

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

Возможные проблемы

Иногда бывает так, что после установки одна из операционных систем, предустановленных на компьютере, не запускается. Что ж, не вдаваясь в достаточно сложные способы приведения всего в норму, отметим, что есть комплексное решение возможных проблем с загрузкой. Имя этому решению — Boot-repair 16) .

Придерживайтесь золотого правила: «Никогда не чинить то, что ещё не сломалось»!

Загрузитесь в Ubuntu. Не имеет значения как вы это сделаете — Boot-Repair работает как с LiveCD, так и на установленной системе. Разумеется, если вы испытываете трудности с загрузкой только что поставленной Ubuntu, то первый способ становится единственным 17) . Для начала Boot-Repair нужно поставить на ваш компьютер, делается это с помощью терминала. Нажмите Ctrl + Alt + T и в появившемся окне наберите:

FIXME

: Изменить команду ближе к выходу релиза.

Сейчас вы, конечно, скажете: «Вы что там, совсем? Столько букв — я же ничего не понимаю и обязательно ошибусь!» Разумеется, никто представленную команду 18) по буквам в терминал не вводит — просто выделите её полностью и щёлкните средней кнопкой мыши в окне терминала, или перетащите выделенный текст туда же. Нажмите Enter . Если вы находитесь в уже установленной Ubuntu, появится предложение ввести ваш пароль. Обратите внимание, при вводе пароля никакие символы не отображаются: ни точки, ни звёздочки — вообще ничего, — наверное, не нужно объяснять почему так сделано. После ввода пароля опять нажмите Enter .

Загрузите открытый ключ репозитория с программой из хранилища доверенных ключей 19) :

Обновите список приложений командой:

Установите и запустите Boot-Repair :

После непродолжительного сканирования появится основное окно Boot-Repair :

Стартовое окно Boot-Repair

FIXME

: В процессе написания.

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

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