Grub не видит mac os

Обновлено: 06.07.2024

Дело в том, что у меня уже установлена ​​Windows 8.1 Pro через Boot Camp, поэтому Дисковую утилиту в Mac OS нельзя использовать для переразметки SSD. я использовал resizeStack в терминале, чтобы сжать раздел OS X ( руководство здесь). Теперь SSD разделен на:

  • /dev/sda1 : Раздел EFI
  • /dev/sda2 : OS X Йосемити
  • /dev/sda3 : OS X Recovery HD
  • /dev/sda4 : Boot Camp Windows 8
  • /dev/sda5 : Ubuntu Disk подключен к /
  • /dev/sda6 : Ubuntu Swap

Загрузчик Ubuntu выбран для установки на /dev/sda1 , но установщик уведомил, что загрузчик Windows также существует в sda1 , После установки Ubuntu и Mac OS успешно загрузились с GRUB2, но Windows не может быть загружена ни с GRUB2, ни из встроенного менеджера загрузки Apple (нажав option при загрузке). Я использовал Parallels Desktop для загрузки раздела Boot Camp как виртуальной машины, и Windows работает.

Я подключил установочную флешку Windows и попробовал автоматическое восстановление при загрузке, которое не сработало. Затем я попытался восстановить основную загрузочную запись с помощью командной строки: bootrec /fixmbr

После восстановления Mac OS была установлена ​​в качестве первой системы для загрузки, поэтому меню Grub не появлялось при запуске компьютера. я использовал efibootmgr на установочной флешке Ubuntu для установки Ubuntu первым загрузочным диском и Mac OS вторым. Windows по-прежнему не может быть загружена.

Странно то, что на этот раз менеджер загрузки Apple не пытался загрузить Windows после нажатия значка диска "Windows"; значок "Macintosh HD" и "Windows" приведет к загрузке Mac OS. Таким образом, ремонт должен был изменить менеджер загрузки Apple.

Кажется, что загрузчик Windows в /dev/sda1 перезаписывается Grub. Так есть ли способ заставить загрузчик Windows Boot Loader и Linux (теперь это Grub, верно?) Сосуществовать?

Следует отметить, что Boot Camp Windows 8 загружается в режиме EFI на MacBook Pro, так как setupact.log шоу Callback_BootEnvironmentDetect: Detected boot environment: EFI , Руководство Я также проверил Grub, что он работает в режиме EFI. Поэтому Windows также использует таблицу разделов GUID (GPT), аналогичную Mac OS, вместо MBR? В этом случае восстановление MBR может оказаться бесполезным.

Я не уверен, где находится загрузочный переключатель Apple и как его можно изменить с помощью установочного диска Windows? Это также в /dev/sda1 ?

Я новичок в этом вопросе. Большое спасибо за ваши ответы!

Я попытался следующие команды в командной строке установки Windows:

  • bootrec /fixmbr : Успешно
  • bootrec /fixboot : Успешно
  • bootrec /scanos : Идентифицировано 1 Установка Windows на D:\Windows
  • bootrec /rebuildbcd : Идентифицировано 1 Установка Windows на D:\Windows ; Запрошенное системное устройство не может быть найдено.
  • bcdedit : Запрошенное системное устройство не может быть найдено.

Windows не может быть загружена, с кодом ошибки 0xc000000e ,

Обновления № 2

Я последовал ответу Рода Смита, чтобы преобразовать мой раздел EFI из MBR: MBR only в MBR: protective а также GPT: present , но затем опция "Windows" исчезает из менеджера загрузки Apple, и Grub не может быть загружен.

Также я следовал за ответом Терранса rebuildbcd но не удалось. Смотрите комментарии к их ответам.

У меня есть Intel Mac (MacMini) и внешний usb-накопитель. На внутреннем диске у меня есть раздел с установленной OSX и один с Ubuntu+Grub2. На внешнем диске у меня есть копия моего полного раздела OSX и копия моего полного раздела Ubuntu (оба с UUID, отличными от оригинала).

Я использую REFIt для двойной загрузки. Внутренние OSX и Linux и внешний OSX появляются в меню rEFIt и являются загрузочными. Внешний Linux, который я хочу загрузить, отсутствует. После создания резервной копии Linux я выполнил update-grub для внутреннего Linux (он нашел все 4 установки) и для внешнего (через chroot - он нашел все установки, кроме внутреннего Linux). Это не решило проблему.

Когда я ls во внутреннем меню Grub, в нем перечисляются все разделы на внутреннем диске, но (hd1) полностью отсутствует.

Я попытался синхронизировать таблицы разделов на внешнем диске с помощью gptsync , но он утверждает, что GPT отсутствует. gdisk нашел такой, и сравнение вручную с выводом fdisk дает мне впечатление, что они синхронизированы. (Раздел Linux включен в обе таблицы.)

Я записал REFInd на CD и экспериментировал. Результаты:

Когда я загружаю свой mac, нажимая C для загрузки с компакт-диска, он вскоре показывает серый фон rEFInd, но затем сразу же запускает grub из внутренней установки. Я могу обойти это, выбрав REFInd из REFIt. Тем не менее, это дает мне мало уверенности для установки rEFInd в OSX.

rEFInd показывает все параметры, которые должны отображаться. Как и следовало ожидать, Grubs по-прежнему не могут загружать Linux с внешнего диска.

Когда я запускаю ядро Linux с внешнего диска с помощью rEFInd, оно загружается, но после загрузки оказывается, что внутренний раздел монтируется как / . Согласно этой статье, единственные изменения, которые нужно сделать после копирования раздела, находятся в grub. Так как я не использую личинку, я не понимаю.

1 ответ 1

Сначала вы должны понять разницу между загрузкой в собственном режиме EFI и загрузкой в BIOS/CSM/ устаревшем режиме. Mac на базе Intel имеют прошивку EFI, а OS X загружается в режиме EFI. Эта микропрограмма включает в себя эмулятор BIOS (известный как модуль поддержки совместимости или CSM; или иногда называемый поддержкой "устаревшего режима"), который позволяет им загружать загрузчики в режиме BIOS. Apple намерена использовать это для загрузки Windows; но многие люди также используют эту поддержку BIOS/CSM/ legacy для загрузки других ОС, включая Linux. Linux, тем не менее, поддерживает загрузку в режиме EFI, а также загрузку в режиме BIOS, поэтому использование CSM для Mac часто не нужно и даже усложняет. OTOH, есть определенные модели, на которых аппаратное обеспечение работает лучше в Linux при загрузке в режиме BIOS, чем при загрузке в режиме EFI.

Загрузка с внешнего носителя на Mac - сомнительное предложение, особенно в BIOS/CSM/ устаревшем режиме. Скорее всего, это проблема, с которой вы сталкиваетесь. Я не знаю решения "серебряной пули" для проблемы в режиме BIOS. Наиболее вероятное решение - перейти на загрузку в EFI-режиме. Для этого я рекомендую вам перейти от заброшенного REFIt к его форку, который я поддерживаю, REFInd. Помимо прочего, в rEFInd добавлена поддержка прямого запуска ядер Linux с загрузчиками-заглушками EFI (в том числе большинство ядер, поставляемых с дистрибутивом, начиная с 3.3.0). Если вы загрузите rEFInd с флэш-накопителя USB или образа CD-R, имеющегося на его странице загрузок, он может запустить Linux как с внутреннего, так и с внешнего накопителя (и OS X из обоих мест). Если это работает, установите rEFInd в OS X, а также установите драйвер для любой файловой системы, содержащей ваше ядро Linux (обычно ext4fs). Результатом должна стать возможность загрузки любой ОС напрямую, минуя GRUB.

Если все это работает, я рекомендую удалить некрасивую и опасную гибридную MBR, которую EFI Apple использует в качестве триггера для активации своей CSM. (Утилита gptsync создает или изменяет гибридную MBR.) Пожалуйста, прочитайте эту ссылку, чтобы понять, что такое гибридный MBR и почему это такая проблема.

РЕДАКТИРОВАТЬ:

Тот факт, что rEFInd CD-R не работал правильно, когда вы использовали "C" для прямой загрузки, но работал при запуске из rEFIt, мало говорит о вероятности правильной работы rEFInd при установке на жесткий диск или USB-накопитель. К сожалению, загрузка с оптических носителей в EFI довольно запутанна, и Apple, похоже, наложила свои собственные морщины. Таким образом, загрузка таким способом может быть немного рискованной, тем более что у меня (разработчика REFInd) есть только один древний Mac, на котором можно что-то тестировать. Загрузка с жесткого диска (или с флэш-накопителя USB) с большей вероятностью будет работать.

Попробуйте убить и повторно запустить процесс панели приложений.

Попробуйте убить и повторно запустить процесс панели приложений. Если вы не можете запустить терминал (например, например, с помощью ярлыка Alt + F2), но можно запустить диспетчер файлов, вы можете найти терминал в: /usr/bin/gnome-terminal (или вообще в /usr/bin/*)

Поиск группового процесса (например, gnome-system -monitor> вкладка «Процессы», поиск чего-то * -панель), для меня это было xfce4-panel, для вас это, вероятно, gnome-panel Run terminal Убить все это: sudo killall gnome-panel Запустить его снова sudo gnome-panel &

Если у вас есть /usr/bin/gnome-terminal , процесс вашей панели приложений, вероятно, xfce4-panel, тогда, конечно: sudo killall xfce4-panel sudo xfce4-panel & [!d17 ]

2 ответа

Хорошо работает в Ubuntu 14.04 и Mac OS X 10.9.4.

У меня есть macbook Pro 8.2, Late 2011, на котором я установил OSX и Linux Mint.

Это шаги, которые я сделал:

В OSX я переделал свой 500gb жесткий диск пополам. По какой-то причине я не могу загрузиться с USB-порта, если я не отредактирую начальный экран с nomodeset, но затем я получаю предупреждение о том, что я нахожусь в безопасном режиме, и видео драйверы не загружены. Поэтому, загружая с компакт-диска, удерживая ключ опции, когда куранты Mac, у меня было три варианта: OSX, Windows, EFI. Я перебираю и выбираю опцию Windows. После того, как Ubuntu загрузится и вы нажмете для установки на жесткий диск, когда появится опция либо установить на жесткий диск, либо что-то еще, выберите что-то еще. Затем сделайте три раздела: Swap, / (root) и Home, затем нажмите, чтобы установить. Вы получите предупреждение о том, что вам нужно создать загрузочный раздел или у него могут возникнуть проблемы с загрузкой, проигнорировать это и продолжить. После установки и перезагрузки он автоматически загрузится в OSX, и я позволил ему загрузиться, чтобы убедиться, что у меня все еще есть OSX, но все, что вам нужно сделать, это удерживать клавишу выбора опций, когда вы слышите звуковой сигнал, и у вас есть два варианта OSX, Windows. выберите Windows, и он загрузится в Linux.

Я не пробовал это с Ubuntu, хотя я это делал с Fedora и Debian, и оба они не очень хорошо работали с OSX.

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

Восстановление GRUB

В данной статье рассматривается процесс восстановления загрузчика GRUB 2.

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

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

Иногда требуется восстановление GRUB после установки Linux, когда неверно был выбран раздел для установки загрузчика.

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

Также иногда различают процесс восстановления для систем с BIOS и с UEFI. Описанный ниже способ рассматривает оба этих случая. Я тестировал его как на компьютерах с традиционным BIOS, так и с UEFI.

Подготовка

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

Для создания загрузочной флешки можно воспользоваться программой Etcher. Она работает в Linux, Windows и MacOS. Подробная инструкция: Как создать загрузочную флешку.

Загрузка в Live-режиме

Теперь нужно загрузиться с созданного диска или флешки.

Чтобы это сделать сначала нужно в BIOS выбрать приоритет загрузки с CD/DVD или с USB (если вы используете флешку).

На современных компьютерах, где используется BIOS/UEFI, для входа в BIOS нужно при включении компьютера удерживать специальную клавишу. У разных производителей клавиша может быть разной. Обычно это: F2 , Del , F10 , Esc , F11 или F3 .

На старых компьютерах, где используется классический BIOS, чтобы войти в BIOS нужно при загрузке компьютера, в самом начале, когда появляется логотип материнской платы, нажать специальную клавишу. Для разных материнских плат клавиша может быть разной. Обычно это одна из клавиш: Del , F1 , F2 , F8 , F10 или какая-нибудь другая, или даже сочетание клавиш. Подробности: Настройка BIOS для загрузки с CD/DVD-диска или с USB-носителя

Открываем терминал

Итак, вы загрузились в Live-режиме. Теперь нужно открыть терминал.

В Ubuntu и некоторых других дистрибутивах это можно сделать нажатием сочетания клавиш Ctrl+Alt+T . Или запустить терминал через меню программ.

Определение разделов

Теперь нужно определить раздел диска, на котором был установлен GRUB.

Выведем список разделов, для этого выполняем команду (в конце команды стоит строчная буква L):

Вывод fdisk для BIOS

Восстановление GRUB. fdisk l

Пример вывода команды:

В моем случае мы видим 2 диска: /dev/sda (SSD диск) и /dev/sdb (флешка, с которой сейчас загружена Live-система).

Нас интересует диск /dev/sda . На диске /dev/sda создано несколько разделов. В моем случае /dev/sda4 , на котором установлен Windows, а также 4 раздела с пометкой Linux (см. последний столбец таблицы). У вас скорее всего может быть один раздел Linux (корневой раздел) или два раздела (корневой и home). На одном из этих разделов установлен GRUB.

То есть из таблицы вы должны определить какой раздел является корневым, на нем скорее всего у вас установлен GRUB. В моем случае GRUB установлен в раздел /dev/sda2 . Далее по тексту я буду его использовать (вы должны будете указывать свой раздел).

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

Вывод fdisk для UEFI

Fdisk l для UEFI

Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:

Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1 , которые расположены на диске /dev/nvme0n1 .

Монтирование разделов

Примонтируем корневой раздел. Выполняем команду (вместо /dev/sda2 вы должны указать свой раздел):

Восстановление GRUB. Монтирование корневого раздела

Мы примонтировали раздел /dev/sda2 в директорию /mnt .

Если для загрузчика у вас выделен отдельный раздел, то нужно примонтировать еще и его (вместо /dev/sdX укажите ваш boot-раздел):

Теперь можно посмотреть содержимое директории /mnt , чтобы убедиться, что мы примонтировали верный раздел:

Восстановление GRUB. Список файлов

Вывод команды должен быть примерно следующим. Обратите внимание есть ли в этом списке каталог /boot , так как именно в нем установлен GRUB.

Также можно проверить, что директория boot не пустая:

Восстановление GRUB. Список файлов в boot

У меня вывод команды выглядит следующим образом. Обратите внимание на присутствие каталога с именем grub .

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

Восстановление GRUB. mount bind dev pts proc sys

Монтирование EFI-раздела

Если у вас используется UEFI, то еще нужно примонтировать EFI-раздел в директорию /mnt/boot/efi (выше я указал пример вывода команды fdisk -l в котором показан EFI-раздел):

Выполняем chroot на /mnt

На предыдущем шаге мы смонтировали все необходимые директории в директорию /mnt . Теперь переключимся (выполним chroot ) на данную директорию. Выполняем команду:

Восстановление GRUB. chroot

Генерация файла конфигурации GRUB

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

Для генерации файла конфигурации GRUB используется команда update-grub . Данная команда автоматически определяет файловые системы на вашем компьютере и генерирует новый файл конфигурации. Выполняем команду:

Восстановление GRUB. update-grub

В выводе команды будет показано, какие операционные системы были найдены.

Если вдруг утилита update-grub не определила ваш Windows (у меня такое было для UEFI), то можно будет запустить update-grub повторно уже из вашей Linux-системы, когда вы в нее загрузитесь (мне это помогло и Windows определился).

Устанавливаем GRUB

Осталось выполнить установку GRUB на диск. Мы определили раздел на котором у нас установлен GRUB на первом шаге данного руководства. В моем случае это раздел /dev/sda2 , который расположен на диске /dev/sda .

Для установки GRUB используется команда grub-install , которой нужно передать в качестве параметра диск, на который будет выполняться установка (в моем случае это диск /dev/sda ):

Восстановление GRUB. grub-install

Перезагрузка компьютера

Выходим из окружения chroot, для этого выполняем команду:

Отмонтируем все разделы, которые мы примонтировали:

Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:

Если вы монтировали EFI-раздел, отмонтируем:

Отмонтируем корневой раздел:

Перезагружаем компьютер. Для этого выполняем команду:

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

  • удерживать клавишу Shift , если у вас классический BIOS;
  • нажать Esc , если у вас UEFI.

Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:

Мне это помололо на компьютере, который использует UEFI.

Шпаргалка

Мы рассмотрели процесс восстановления загрузчика GRUB 2. Для удобства привожу краткую шпаргалку по командам, которые мы выполняли. Учитывайте, что названия и имена разделов ( /dev/sd. ) у вас могут отличаться.

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