Boot linux from windows boot menu

Как я могу добавить Linux в новый менеджер загрузки Windows 8?

Какие операционные системы можно установить в новый загрузчик Windows 8?

Кажется, что это довольно красиво и согласуется с остальным новым дизайном Windows 8, поэтому было бы здорово установить Linux (Ubuntu) вместо него вместо GRUB или BURG . Кроме того, в моей личной системе Linux будет установлен на жесткий диск, а не на SSD , так что это будет немного быстрее.

Вы можете сделать то же самое, что и в Windows 7, хотя я не уверен, что рекомендовал бы это, используя графическое меню загрузки (причина в конце).

Сначала кое-что:

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

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

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

Как добавить запись Linux в загрузчик Windows:

Это действительно зависит от того, что вы устанавливаете вначале, а что позже, я уверен, что в Интернете есть несколько руководств, объясняющих подробную процедуру настройки среды с двумя загрузками. Так что я просто пройду 2 разные установки:

При первой установке Windows: В этом случае, когда вы устанавливаете дистрибутив Linux, если он позволяет вам установить загрузчик в разделе напрямую, а не в MBR жесткого диска, сделайте это. После перезагрузки вы обнаружите, что вы загружаете Windows так же, как Linux вообще не был установлен, после этого следуйте сценарию, в котором Linux был установлен, сначала описанному ниже.

Если вы можете установить загрузчик только в MBR жесткого диска после перезагрузки, вы увидите загрузчик Linux (Syslinux, GRUB, назовите его), выберите там запись Windows и загрузитесь в Windows.

Теперь я хотел бы использовать EasyBCD (бесплатно для личного пользования) , чтобы иметь дело с загрузчиком Windows, но все , что я с ним также может быть выполнена с надлежащим bcdboot , bcdedit и т.д. команды.

  1. Откройте EasyBCD и перейдите в раздел «Добавить новую запись» и вкладку «Linux / BSD».
  2. Выберите загрузчик, который у вас есть для вашего дистрибутива Linux. В случае GRUB2 есть режим автоматического выбора, который выберет соответствующий раздел для вас, например, для Syslinux вы должны обязательно выбрать раздел, в котором он установлен.
  3. Назовите запись, имя, которое вы там указали, будет отображаться в загрузчике Windows.

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

Нажмите «Добавить запись», и вы получите результат в левой нижней части программы:

Теперь вам нужно восстановить загрузчик Windows по умолчанию, для этого перейдите в раздел «Развертывание BCD», там выберите запись загрузчика Vista / 7 в MBR (который, кстати, такой же, как для Windows 8):

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

Когда вы сначала устанавливаете Linux: в этом случае вам не нужно восстанавливать MBR (Master Boot Record, сообщает, что нужно выполнить на брутто-режиме), так как установка Windows перезапишет любое предыдущее значение.

ПРИМЕЧАНИЕ: с дисками UEFI и GPT это может отличаться, но у меня нет возможности попробовать это.

Почему я не уверен, что рекомендую делать это, используя новое графическое меню загрузки в Windows 8:

По сути, потому что способ работы отличается от текстового меню (по умолчанию для Windows 7). В Windows 7 (или Vista) вы сначала получаете меню загрузки, а затем он начинает загружать все, что вы выберете, в новом графическом меню сначала загружает некоторые вещи (= требует времени), а затем представляет вам меню загрузки , Если вы не выберете загрузку Windows 8, она перезагрузит компьютер и начнет загружать все, что вы выбрали, в данном случае это загрузчик Linux.

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

В любом случае, есть и другие способы использовать текстовое меню загрузки вместо Windows 8, если вам интересно проверить этот ответ .

Источник

Alien Pastures

My thoughts on Slackware, life and everything

Adding Linux to the Windows7 boot menu

When I create a Windows / Linux dual-boot computer I usually add Windows as an option to my LILO boot menu. That is the easiest way, and works always.

However, I ran into a situation where I could not use LILO as the primary boot loader and I had to look into the Windows7 “boot configuration data” or BCD. Actually it was Windows Vista, not Windows7, which was the first to abandon good old C:\boot.ini and start writing its bootloader configuration into a binary block of data. I wrote this post just to have this procedure available as a reference.

Windows7 contains the command-line program BCDedit which you are supposed to use for editing your Windows boot menu. A total load of crock it is. It will not support any OS that does not boot from the same hard disk that Windows7 is installed to… so I had some issues getting my Slackware added to the Windows boot menu because I had installed it on a second hard disk.

In the end I decided to shrink the Windows partition a little bit and add a small Linux partition where I could install LILO.

Microsoft has added a basic partition manager to Windows7 – something they do more often. If a 3rd party creates an invaluable add-on to provide functionality Microsoft did not include into Windows, then Microsoft will eventually copy its basic functionality into a half-hearted clone. Anyway, the freed-up hard disk space was allocated to a small partition which became Slackware’s “/boot” and I installed LILO to that /boot partition.

Then, just like in the days of Windows NT and “c:\boot.ini”, I extracted the first 512 bytes from the root sector of that /boot partition (in my case, that partition was “/dev/sda3“) and wrote it to a USB stick which I had mounted on “/mnt/hd“:

dd if=/dev/sda3 of=/mnt/hd/linux.bin bs=512 count=1

Rebooted to Windows7 and transfered that 512 byte file called “linux.bin” from the USB stick to the root of the Windows C: drive.

Next, I used BCDedit to add an entry to Windows7’s BCD store. Note that administrative privileges are required to use BCDedit!. What you do is navigate to “Start->All Programs->Accessories“, Right-click on “Command Prompt” and select “Run as administrator“.

In this command window, enter the BCDedit commands. Start by creating an entry for Slackware Linux. I use “Linux” as the label for the boot menu. The actual label you choose is arbitrary of course:

bcdedit /create /d “Linux” /application BOOTSECTOR

BCDedit will return an alphanumeric identifier for this entry. Copy that string into a text file and do not lose it!

In the remainder of this article I will refer to this string as . You would replace with the actual identifier as returned by the command you ran. An example of what you can get for an is .

The next step will be to specify which partition holds the copy of the Linux boot loader sector (our “linux.bin” file):

bcdedit /set device partition=c:

Then specify the actual path to the “linux.bin” file on that C: drive:

bcdedit /set path \linux.bin

The Windows boot menu needs an entry for our Slackware Linux OS:

bcdedit /displayorder /addlast

Usually you won’t see the boot menu at all (after all, it does not contain any other entry than Windows7 itself). In order to allow the user of the computer some reflection time, we add a delay to the menu’s display timeout. Say, the boot menu should remain visible for 30 seconds before booting into the default selection:

That would be all. You can test the new Windows boot menu by rebooting the computer. You should be able to select either Windows7 (default) or Linux to boot into. When you choose “Linux”, you’ll be taken to Slackware’s familiar LILO menu.

If at any time you would have to remove the “Linux” menu option, you can run the following command … provided you wrote the string down somewhere:

Источник

Как я научился напрямую перезагружаться в нужную ОС через UEFI

Добрый вечер, Habrahabr!

Сегодня мы научимся перезагружаться из Linux прямиком в Windows и обратно всего за один (двойной) клик.

Дано:

  • Два диска с GPT с разными ОС
  • Материнская плата с UEFI и отключеным Legacy Mode
  • Windows, которую бережно поставили с полной поддержкой UEFI
  • Linux (у меня Manjaro), который бережно поставили, выпилив любое упоминание GRUB и прочих старомодных вещей
  • rEFInd — красивый менеджер загрузки (нет, не загрузчик)

Надо:

  • Написать два скрипта на *sh и cmd (bat), которые позволят перезагрузиться в нужную ОС

Примечания:

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

Linux:


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

Отлично, теперь запускаем:

Внимательные читатели уже наверняка заметили, что в выводе что-то не так, но тогда я был окрылён мыслью о том, что через 15 минут буду летать между операционками без проблем, и не обратил на это должного внимания.
Ок, 3 минуты на документацию, и мы находим нужный параметр «-n«, который выставляет кастомый порядок загрузки ровно на один раз. Пробуем выполнить эту команду:
Решение

И оказываемся в Windows, как того и желали. Теперь эту команду записываем в скрипт/alias/*.desktop-файл и радуемся тому, как всё здорово получилось.

Windows:


Началось всё с поиска аналога efibootmgr для Windows, которого в чистом виде, конечно же, нет. Для успокоения совести я даже попытался использовать Linux Subsystem, но это, конечно же, не сработало.
Беглый поиск по интернетам показал, что схожим функционалом по модификации NVRAM обладает утилита bcdedit. Отлично, думаю я, запускаю PowerShell из-под Администратора и пишу

Где Linux? Куда грузиться? Ненавижу винду
На самом деле оказалось, что виновата не Windows, а я (да-да, тот самый момент для внимательных пользователей), и вот почему: rEFInd — прекрасная утилита, которая обычно, для корректной работы, требует только установить себя. Она умеет подхватывать все .efi файлы, разные дистрибутивы с разными ядрами, сама подставляет иконки. Прелесть, а не инструмент. Но это сыграло со мной злую шутку, так как оказалось, что UEFI ничего не знает про Linux, так как отсутствует соответствующий ему .efi-файл.
Поэтому презагружаемся обратно в Linux, конфигурируем systemd-boot (bootctl). Теперь всё выглядит вот так:

Возвращаемся обратно и снова запускаем.

Тут стоит упомянуть, что проблему мне помогали решать пользователи reddit. Именно благодаря им мы имеем следующий шаг:

Где аргументом является identifier необходимого варианта — Linux Boot Manager.

Powershell не даёт нормально выполнить эту команду, ругаясь на

Всё из-за того, что Microsoft периодически любит что-нибудь сломать. Решение просто и элегантно — вызываем классический CMD и работаем в нём. Это можно сделать командой

Перезагружаемся и видим, что порядок загрузки не изменился, а мы оказались в первом элементе в BootOrder (у меня это был rEFInd), выбираем Windows и видим страшный привет из времен DOS, который говорит нам, что \EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI не найден. Да, мы изменили параметры загрузчика Windows, но не UEFI.
Борьба с этой ошибкой заняла у меня все праздники, но ничего путного не получалось. Я уже подумывал написать на C++ небольшую программку для этого (то, что это возможно, следует из существования такого софта, как EasyUEFI).
Но тут на очередном сайте я обнаружил вот такую конструкцию

И тут меня осенило, что можно прямо сказать bcdedit что и куда писать. Дальше стоило только проверить догадку:
Решение

Тут важно, что мы явно сказали писать не в (как он, видимо, делает по-умолчанию), а в , что и является нашими настройками UEFI.
Перезагружаемся, и всё работает так, как мы этого хотели. Сохраняем это дело в bat/lnk, дописываем

Выставляем запуск из-под администратора и готово!
Спасибо за внимание! Буду крайне рад замечаниям по технической части в комментариях, замечаниям по оформлению — в ЛС.

Источник

Читайте также:  Socrates personal для windows 10
Оцените статью