- Не загружается openSUSE после установки рядом с Windows 10
- Почему не загружается openSUSE
- Решение проблемы
- Примечание
- Делаем загрузчик GRUB загрузчиком по умолчанию
- Шаг 1 – Запускаем менеджер загрузки
- Шаг 2 – Запускаем UEFI Shell
- Шаг 3 – Входим в файловую систему загрузочного раздела
- Шаг 4 – Переименовываем текущий загрузочный файл
- Шаг 5 – Копирование файла загрузчика GRUB
- Шаг 6 – Выход из командной строки
- Создаем новую загрузочную запись, которая будет запускать GRUB
- Как добавить параметры загрузки в ядро с помощью bcfg из оболочки EFI?
- 4 ответов
- Bcfg boot dump не работает
Не загружается openSUSE после установки рядом с Windows 10
Всем привет! В этом материале я расскажу о том, как исправить ситуацию, когда после успешной установки дистрибутива Linux openSUSE второй системой рядом с Windows 10 на компьютер с UEFI, openSUSE не загружается, точнее даже не загружается загрузчик GRUB, вместо него по-прежнему, как и до установки openSUSE, запускается Windows 10.
Почему не загружается openSUSE
В прошлом материале (ссылка указана чуть выше) мы с Вами рассмотрели процесс установки дистрибутива Linux openSUSE второй системой рядом с Windows 10 на компьютер с UEFI.
Однако после успешной установки у нас не появляется окно загрузчика GRUB, которое позволяло бы нам выбирать операционную систему, в которую мы хотим загрузиться (Windows или Linux), а у нас вместо него, как и раньше по умолчанию, запускается Windows 10, и выбрать систему для загрузки мы не можем.
Дело в том, что загрузчик, который запускает Windows 10, не умеет работать с другими операционными системами, отличными от систем Microsoft (по крайней мере по умолчанию), иными словами, он не может запустить openSUSE. И этот загрузчик UEFI запускает по умолчанию.
А загрузчик GRUB, который используется в Linux, и в openSUSE в частности, умеет запускать и Linux, и Windows и другие загрузочные системы. Загрузчик GRUB у нас уже установлен, так как он используется в Linux для загрузки операционных систем и включается в дистрибутив Linux, в нашем случае он установился вместе с openSUSE, но не запускается, так как он просто не назначен загрузчиком по умолчанию или имеет более низкий приоритет по сравнению с загрузчиком Windows в порядке загрузки систем.
Решение проблемы
Поэтому, для того чтобы иметь возможность по выбору запускать операционные системы на компьютере, необходимо, чтобы загрузкой управлял загрузчик GRUB, т.е. запускался по умолчанию. А в нашей текущей ситуации по умолчанию запускается загрузчик Windows.
В данном материале мы рассмотрим два варианта решения этой задачи:
- Сделать загрузчик GRUB загрузчиком по умолчанию
- Создать новую загрузочную запись в загрузочном меню, которая будет иметь более высокий приоритет и запускать загрузчик GRUB
Примечание
Все действия будут выполняться в UEFI Shell, поэтому эти действия предполагают наличие у Вас определенного опыта администрирования операционных систем и навыков работы с компьютером. При определенных обстоятельствах некорректные действия могут повлечь нарушение работы загрузчика компьютера.
Также стоит отметить, что не все прошивки материнских плат включают UEFI Shell, если у Вас отсутствует UEFI Shell, то Вы можете использовать любую загрузочную флешку, которая включает UEFI Shell. Некоторые прошивки материнских плат позволяют управлять загрузкой в графическом интерфейсе, например, добавлять новые загрузочные записи.
Делаем загрузчик GRUB загрузчиком по умолчанию
Шаг 1 – Запускаем менеджер загрузки
Для того чтобы управлять загрузчиком компьютера, необходимо зайти в загрузочное меню, т.е. запустить менеджер загрузки.
Это можно сделать клавишей F9 или F12, но иногда используются и другие клавиши.
Итак, во время включения компьютера нажимаем клавишу, определённую для запуска менеджера загрузки.
Шаг 2 – Запускаем UEFI Shell
В итоге запустится загрузочное меню. Нам нужно открыть UEFI Shell. Для этого входим в «Boot Manager» (интерфейс у Вас может отличаться).
Затем выбираем пункт «EFI Internal Shell» (у Вас может называться и по другому, например, UEFI Shell).
После чего запустится командная оболочка для работы с UEFI. В командной строке отобразится приглашение для ввода команд «Shell>».
Шаг 3 – Входим в файловую систему загрузочного раздела
Вносить изменения мы будем путем определенных действий с файлами, поэтому нам необходимо открыть файловую систему загрузочного раздела UEFI.
Это делается достаточно просто, вводим команду FS0: (обычно именно такая метка у загрузочного раздела).
Шаг 4 – Переименовываем текущий загрузочный файл
Весь смысл наших действий заключается в том, чтобы заменить текущий загрузочный файл, который используется по умолчанию, на тот, который нужен нам, т.е. на загрузчик GRUB.
Но для начала нам нужно переименовать текущий загрузочный файл, так как файл загрузчика, который мы будет потом копировать, должен быть с таким же названием (можно, конечно, его и удалить, но лучше этого не делать, чтобы в случае необходимости можно было легко вернуть все назад, т.е. обратно переименовать загрузочный файл).
Переименовываем файл следующей командой.
Если у Вас отобразилось сообщение [ок], значит, все прошло успешно.
Таким образом, файл bootx64.efi мы переименовали в bootx64.efi_, этот файл расположен в каталоге EFI\Boot.
Шаг 5 – Копирование файла загрузчика GRUB
Теперь нам нужно в каталог EFI\Boot скопировать файл загрузчика GRUB, чтобы он запускался по умолчанию.
В этой статье речь идет об openSUSE, поэтому загрузчик лежит в одноименном каталоге EFI\opensuse, а файл его называется grubx64.efi (в случае архитектуры x64).
Для копирования можно использовать следующую команду.
Как видите, файл мы копируем с новым названием, для того чтобы EFI запускала его по умолчанию. Сообщение [ок] говорит о том, что файл мы успешно скопировали.
Шаг 6 – Выход из командной строки
На этом все, теперь мы можем выйти из командной строки и попробовать запустить компьютер.
Для выхода из «EFI Shell» вводим команду Exit.
Чтобы продолжить загрузку компьютера, выбираем пункт «Continue».
После вышеупомянутых операций с файлами по умолчанию у нас должен загружаться GRUB, в котором можно будет выбрать операционную систему для загрузки, openSUSE или Windows.
- openSUSE Leap 15.2 – это операционная система Linux openSUSE;
- Windows Boot Manager (on /dev/sda2) – это Windows 10.
Заметка! Начинающим пользователям Linux рекомендую почитать книгу «Linux для обычных пользователей» – в ней максимально простым языком рассказывается про основы Linux и как пользоваться этой операционной системой без командной строки.
Создаем новую загрузочную запись, которая будет запускать GRUB
В качестве альтернативы файловым операциям можно использовать специальную команду, которая добавит отдельную загрузочную запись. Она будет запускать загрузчик GRUB, это своего рода ссылка на исполняемый файл нужного нам загрузчика.
Заметка! В данном случае никакие операции с файлами выполнять не требуется, т.е. не нужно заменять текущий файл загрузчика, как это было описано чуть выше.
Чтобы добавить новую загрузочную запись, зайдите в UEFI Shell точно так же, как мы это делали чуть ранее в предыдущем разделе.
Затем выполните следующую команду, которая создаст новую загрузочную запись в загрузочном меню.
- 0 – это порядковый номер пункта загрузочного меню, т.е. первый, так как нумерация начинается именно с нуля. При этом необязательно добавлять запись в самый верх, главное, чтобы эта запись была приоритетнее жёсткого диска;
- FS0:\EFI\opensuse\grubxefi – путь к файлу загрузчика;
- GRUB openSUSE – название пункта в загрузочном меню (можете вписать свое название).
Чтобы посмотреть текущую загрузочную конфигурацию, можете выполнить следующую команду, она покажет порядок загрузки, в котором будет присутствовать наша новая запись.
Чтобы изменить порядковый номер загрузочной записи, можно использовать следующую команду, которая передвинет нашу загрузочную запись с первой позиции на вторую.
Тем самым в загрузочном меню наша запись будет стоять уже на втором месте.
В случае необходимости удалить данную загрузочную запись можно следующей командой, только не перепутайте порядковый номер загрузочной записи, в моем случае удаляется вторая загрузочная запись.
После добавления новой записи точно так же выходим из UEFI Shell, т.е. вводим команду Exit.
Теперь загрузчик GRUB имеет более высокий приоритет в порядке загрузки, чем загрузчик Windows, и он будет пытаться запуститься первым.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Источник
Как добавить параметры загрузки в ядро с помощью bcfg из оболочки EFI?
efibootmgr создает недопустимые записи в меню загрузки EFI. Например, efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L «rEFInd Boot Manager» добавляет не загружаемые японские символы в меню загрузки.
С другой стороны bcfg boot add 3 fs0:EFIrefindrefind_x64.efi «rEFInd» работает просто отлично.
теперь я хотел бы загрузиться непосредственно на vmlinuz-linux вместо того, чтобы проходить через refind . Кто-нибудь знает, как передать параметры ядру ? Без разгона это : bcfg boot add 3 fs0:vmlinuz-linux «linux» но какой вариант мне нужно использовать, чтобы добавить initrd=initramfs-linux.img root=/dev/sda2 ?
4 ответов
Я сталкиваюсь с той же ситуацией. Я считаю, что решение будет включать использование параметра-opt либо в строке с add, либо в качестве дополнительной команды. До сих пор, хотя у меня не было успеха выставив все параметры в кавычках. Моя следующая попытка будет создать файл с помощью edit и передать имя файла с помощью-opt.
Если вам это удастся, пожалуйста, обновите эту ветку.
Итак, в оболочке uefi я использовал edit для создания файла opt на носителе в то же место, что и ядро. В нем я поместил параметры ядра в одну строку. Затем я использовал команду bcfg boot-opt 0 FS0:\filename вам может понадобиться использовать другой номер FS, -opt номер и имя файла, чтобы соответствовать вашей конфигурации.
у меня были похожие проблемы на одной конкретной материнской плате (Supermicro), и, хотя предложение Стива использовать текстовый файл работает, есть немного больше нюансов. Я попытался документировать процесс ниже:
если у вас нет bcfg доступно, сначала вам нужно получить копию EFI 2.X оболочка. Прошивка материнской платы, вероятно, имеет 1.x. The Arch wiki имеет больше деталей, но для большинство 64-разрядные современные системы Shell.efi С здесь и переименовать его shellx64.efi и поместите его непосредственно в корень системного раздела EFI. Если ваша материнская плата обеспечивает Launch EFI Shell from filesystem device , использовать его. В противном случае можно использовать встроенную оболочку для запуска обновленной оболочки. Смотрите wiki для получения дополнительной информации.
после того, как вы в 2.X shell, вы хотите, чтобы убедиться, что ваш вариант загрузки существует. Вы можете перечислить варианты с bcfg boot dump -b (том -b включает пейджер, например more ). Если он не существует, вам нужно добавить его, предпочтительно в начало списка. Вы можете просматривать список файловых систем с помощью map -b , искать записи, начиная с fs как fs0: , а затем использовать ls как ls fs0:\ , ls fs0:\EFI\ и т. д. изучить каталоги.
как только вы найдете путь загрузчика (и правильный fs устройство), добавьте его (как в исходном вопросе):
это добавляет его в качестве 4-й загрузочной записи (считая от 0, 1, 2, 3)
после добавления опции загрузки (проверьте с помощью bcfg boot dump -b ) необходимо добавить необязательные данные (параметры загрузки). Как кратко упомянул Стив, самый надежный способ сделать это-сохранить эти параметры в файл, а затем импортировать их с помощью bcfg -opt . Однако, насколько я могу судить, это добавляет варианты, так что вам лучше всего bcfg boot rm ing вариант загрузки первого и считывания его в соответствии с шагом 2. Если у вас есть чистая запись, вы можете добавить дополнительные данные. Например:
откроется редактор файла. Введите параметры (в одной строке) и нажмите клавишу F2 для сохранения. Нажмите F3 для выхода. Вы также можете редактировать этот файл из ОС, но вы должны сохранить как UTF-16 (Le, little-endian). Редактор оболочки EFI делает это автоматически.
следующий шаг, чтобы импортировать параметры:
опять 3 указывает загрузочную запись. Это должно соответствовать добавил его как. Не запускайте эту команду несколько раз-вы должны rm и re — add запись, прежде чем вы можете изменить параметры.
проверьте параметры загрузки и дополнительные данные с помощью bcfg boot dump -v -b .
Источник
Bcfg boot dump не работает
В чем преимущества UEFI перед BIOS?
- Более быстрая загрузка за счет отсутствия необходимости поиска загрузчика на всех дисках
- Поддержка носителей объемом >2Тб
- Более простая подготовка загрузочных носителей, отсутствие необходимости в записи разных загрузочных секторов
- Наличие собственного менеджера загрузки. Теперь необязательно заводить многоуровневую чехарду загрузчиков, чтобы организовать мультизагрузочную среду, в EFI NVRAM штатно хранятся все записи о имеющихся загрузчиках, и переключение между загружаемыми ОС осуществляется так же, как и между загрузочными носителями.
- Более защищенная среда загрузки
- Графический режим конфигурации UEFI, с поддержкой графики и мыши
Сообщение отредактировал saintonotole — 01.06.13, 17:59
Можно ли обновить мой BIOS на UEFI?
Не совсем. UEFI нельзя прошить вместо BIOS, поскольку он занимает гораздо больше памяти. Но существует такая штука, как DUET. Это загружаемая из BIOS посредством отдельного загрузочного раздела среда UEFI, которая может быть полезна, если вы собираетесь использовать диски объемом >2Тб на своем старом железе с BIOS. Подробнее можно ознакомиться здесь: http://www.rodsbooks.com/bios2uefi/
Сообщение отредактировал saintonotole — 01.06.13, 16:37
Здесь за гибкую настройку приоритета загрузки отвечает целый модуль CSM
|
Выбор, что грузить, если на носителе есть и бутсектор, и efi-загрузчик
Сообщение отредактировал saintonotole — 16.06.13, 18:52 Что такое GPT? Сообщение отредактировал saintonotole — 01.06.13, 16:38 В чем преимущества GPT перед MBR?
Сообщение отредактировал saintonotole — 08.06.13, 18:32 Где в GPT хранятся аналоги загрузочных секторов? Сообщение отредактировал saintonotole — 01.06.13, 16:38 Возможно ли сконвертировать диск из MBR в GPT и обратно без потери данных? Сообщение отредактировал Shoore — 21.05.14, 22:22 Что такое UEFI Shell? Сообщение отредактировал AndrewP_1 — 17.12.18, 10:03 Как редактировать/удалить/добавить пункты загрузки в загрузочное меню UEFI? Найдя таким образом необходимый диск, нужно перейти в него Сообщение отредактировал Shoore — 31.10.14, 16:34 Источник |