Adding windows to grub

Add Windows 10 to GRUB OS list

I recently got a computer from school. It came with Windows 8.1 installed. I then installed another copy of Windows 8.1 (so it would use the built-in Windows Pro license) and upgraded it to Windows 10. I then installed Ubuntu alongside both Windows 8 and 10.

Note that I made a separate 255MB ext2 partition for /boot.

Now, when I boot the computer, I first see a GRUB prompt (I already un-hid the grub prompt ‘cuz I like it that way) with Windows 8 and Ubuntu options. However, there is no Windows 10 option. If I select Ubuntu, the computer boots into Ubuntu. However, if I select the Windows 8 option, I then get sent to the Windows bootloader, where it then gives me options to boot either Windows 8 or Windows 10. (However, by this point, the computer has already loaded the kernel and all. Apparently Microsoft misunderstood the concept of a bootloader and decided that that meant «boot practically the entire system before actually showing the bootloader». Typical Microsoft.)

How can I disable the Windows bootloader and add a Windows 10 option to GRUB?

EDIT: Someone has answered telling me to disable the Windows bootloader. However, I still do not know how to add Windows to the GRUB OS list. Can anyone help with this?

EDIT 2: After removing Windows 10 from the Windows bootloader with EasyBCD, it seemed that, after a few reboots, it would continually unhide itself and Windows 10 would reappear. However, I then later deleted Windows 10 from the list of OSes in msconfig, and it seems to have stayed deleted.

However, I STILL have not managed to get Windows 10 to appear in GRUB. It’s as if GRUB simply doesn’t detect it.

9 Answers 9

Sometimes os-prober is wrong.

Look at the UUID of your Windows 10 partition, for exemple:

Don’t forget to change the UUID.

And finally update your grub config file:

commands in terminal of Ubuntu, probably it will solve your problem.

By this command the system will automatically detect your Windows installations and add them to the GRUB list.

This solution provides a proper entry in the grub2 menu and chainloads directly into Windows 10 without reference to the BIOS. It comes from this webpage so I claim no credit. It was such a relief to find a working solution.

Briefly, edit /etc/grub.d/40_custom and add:

use this app EasyBCD for windows download the free version and install it.

when you open it you will see an entry for windows 8 and one for windows 10.

delete the windows 8 entry and you’ll be good to go.

Update after doing the steps above go back to Ubuntu,

open the terminal by pressing ctrl + alt + T

then copy past this commands to it one after another,

and by this you will install a tool called boot-repair.

open boot repair from dash and you’ll get this window

choose the recommended repair and follow the steps.

Note you have to be connected to the Internet when using boot-repair.

As far as I understood your question you have two different Windows installations on one or more harddrives and you don’t want the Windows loader to get in the way or managing both Windows installations. I remember that it was possible on legacy setups to directly boot the Windows kernel from Grub (I may be wrong here) but I haven’t been able to do this on UEFI setups. Having two independent Windows bootloader configurations that can be called from Grub independently should be very close to what you are looking for.

It came with Windows 8.1 installed.

I’m going to assume that this is a UEFI capable computer.

N.B.: Your request was to be able to manage all OSes with Grub, however with UEFI, the traditional «dualboot» term becomes almost a misnomer. UEFI allows coexistence of several bootloaders on the ESP and you can choose which one to boot (if they have been registered in the UEFI firmware and the manufacturers firmware doesn’t do out of spec patronizing like only booting Windows). The sad thing here is that only very few people can think about installing more than one (independent) version of Windows, Linux or one release of Ubuntu onto one computer (or a harddrive that is used with several computers and boots a different installation of the same OS release on each computer). Most of this is already possible, but mechanisms in Windows and Ubuntu (Fedora,…) plainly choose to overwrite what is in their namespace under the false assumption that there can only be one.

(I do boot Windows8/10, Ubuntu, Ubuntu LTS and Fedora on one computer and have tinkered a few times with UEFI booting under different requirements.)

Читайте также:  Canon 4018 сканирование windows 10


How do I manually add windows 7 to grub list?

I am desperate to add Windows 7 to grub. I have tried sudo update-grub, I have run sudo os-prober, but I can’t seem to get windows to be added to grub.

Can someone please explain how to manually add windows 7 to my grub?

4 Answers 4

sudo nano /etc/grub.d/40_custom

by appropriately modifying the location of windows 7 in your computer.

Note If you are not careful these operations can mess up your computer.

grub-customizer helped me. It auto-detected Windows 7 for me and I was able to add it and change position and title in the menu.

Before you attempt anything further, I suggest you go to a terminal by pressing Ctrl + Alt + T and enter the following:

This should scan your system for all existing OS’s and add them to the Grub menu (See Note¹)

Next download and run boot-repair

The program should launch automatically or you can open it from the Apps list.

If none of the above works, see Note² to manually add a Windows entry to the GRUB menu.

If you have multiple Windows systems installed on the same hard drive, you will likely only see one Windows system in the resulting GRUB menu when it boots up. This is because that option is referring to the Windows boot loader which resides on the boot sector of the hard drive and/or at the beginning of each Windows partition. When that option is invoked it will run the Windows boot manager which will allow you to select your other Windows environments.

You should understand there’s a difference between a boot manager and a boot loader. For the most part both GRUB and the Windows Boot Manager (BOOTMGR) perform both duties. However Windows Boot Manager cannot load a Linux environment and vice versa, GRUB can’t actually load a Windows environment.

Hence if you’re using GRUB as your primary boot manager and you select a Windows environment at boot-up, it will load BOOTMGR as the boot loader for any Windows system you have installed and will be taken to a BOOTMGR screen which allows you to select either Windows 10 or Windows 7 from the list.

Similarly if you instead are using BOOTMGR as the primary (using bcdedit ), when you select the Linux distribution from the menu it will not boot directly into the system: it will just run GRUB (which should then reside at the beginning of the root partition instead of the boot sector of the HD) and allow you to select the desired system from there.

If none of the above works you can manually add windows entry. This solution provides a proper entry in the grub2 menu to boot into Windows 10.
A requisite word of caution, editing the GRUB menu is not recommended because it can break your system. But if you need to do it, here’s how.

First check on which disk and partition is the Windows EFI boot:

Now find the UUID of the partition. E.g:

Then you can edit the /etc/grub.d/40_custom grub file to add the lines which will help you to boot into your Windows system

Add the following modified according to your configuration:

note that entry is configured to boot from the 2nd partition gpt2 of the 1st hard drive hd0 or ahci0. If you are working on legacy, then replace all gpt with msdos


Grub 2 + VHD: установка и загрузка ОС Windows 7 Ultimate


Ни для кого уже не секрет, что начиная с версии Windows 7 Ultimate, операционные системы от Майкрософт умеют загружаться будучи установленными на образ жесткого диска формата VHD. Однако, данная возможность «из коробки» доступна только пользователям этой самой Windows 7 Ultimate.

У меня же, убежденного пользователя Arch Linux, потребность в применении этой технологии возникла из-за необходимости иметь винду под рукой в дуалбуте и именно в реальном окружении. 90% процентов задач, для которых нужен Windows, разумеется решаются путем виртуализации, и мощности современного железа, и возможности виртуальных машин, позволяют даже в игры играть в виртуальной среде. Однако, возникла необходимость в использовании пакета «Универсальный механизм», который под вайном работает криво (допускаю и что руки у меня кривые), а в виртуальной среде, понятное дело, безбожно теряет прыть. В общем понадобилась Windows, но таскать разделы на винте и менять его разметку страшно не хотелось ради установки одной программы под винду.

Решение нашлось в реализации загрузки из VHD-образа с использованием загрузчика Grub2, ставшего стандартом де-факто во многих популярных дистрибутивах Linux. Об этом собственно и пойдет речь.

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

Итак, перейдем к описанию метода.

1. Подготовка почвы

Для хранения образов нам таки потребуется NTFS-раздел, который может быть как первичным, так и логическим, и не обязательно активным. Его можно создать с помощью gparted, там же и отформатировав в NTFS. У меня на НDD была зарезервирована неразмеченная область для разного рода экспериментов с осями, её я и отдал под данный раздел

Далее делаем этот раздел доступным для виртуальных машин VirtualBox

то есть создаем виртуальный диск в виде файла-ссылки на раздел реального HDD. Этот диск подключаем к виртуальной машине с Windows 7 Ultimate — она пригодится нам для решения поставленной задачи

Читайте также:  Windows 10 каталог автозагрузки

2. Создаем VHD-образ с системой

Теперь надо создать VHD-образ HDD. Его придется создавать средствами, предоставляемыми Windows 7 Ultimate, ибо диски, создаваемые тем же VirtualBox вызывают последующий вывал загружаемой винды в BSOD.

после чего указываем путь к нему и задаем его параметры

Лучше всё же выбрать фиксированный размер образа — это будет работать быстрее.

Щелкаем ОК и пока идет процесс, выполним

3. Настройка загрузчика bootmgr

Сам загрузчик bootmgr и каталог с его конфигом boot банально копируем с установочного DVD Windows 7 в корень раздела NTFS, туда же, где размещается папка с VHD-дисками.

Удаляем файл \boot\bcd, ибо этот контейнер хранит конфигурацию с загрузочного DVD, и создаем новый контейнер. Для этого используем крохотную утилитку bootice. Запускаем её, выбираем вкладку “BCD edit”.

Далее жмем “Create new BCD”, выбираем путь по которому будет расположен файл конфигурации и создаем его с именем BCD. Далее выбираем этот файл и жмем “Easy mode” – запуск редактора в упрощенном режиме.

Файл конфигурации откроется в режиме редактирования, нажимаем кнопку “Add” и выбираем вариант “New VHD boot entry”. Редактор сосздаст шаблон загрузочной записи и нам остается лишь вписать путь к нашему образу.

Путь к VHD-файлу от корня раздела с образами прописываем в поле “File”. После этого жмем “Save current system” и выходим из программы.

Дожидаемся пока закончится процесс создания VHD-образа и покидаем виртуальную семерку.

4. Установка Windows 7 Ultimate на VHD-образ

Выполнена средствами VirtualBox. Для этого:

Однако, надо сказать вот о чем. Мы помним, что наша система инсталирована в ВМ, а поэтому некоторые устройства определены на этапе установки и система подсунула для них соотвествующие драйвера. При запуске на Вашем реальном компьютере с вероятностью в 99% получится BSOD. Это связано с тем, что VirtualBox эмулирует контролер IDE следующим образом

и этот драйвер, работая в загружаемой системе конфликтует с реально установленным на мат. плате контроллером, при попытке системы прочесть файл образа с диска. Решается просто – выбираем “Обновить драйвер”, говорим, что не надо искать а мы сами укажем нужный драйвер и выберем “Стандартный двухканальный контролер IDE”

После этого выключаем нашу виртуальную машину и делаем её «реальной»

5. Настройка загрузчика Grub2

В конфиг Grub2 необходимо добавить загрузочную запись такого вида

где (hd0,msdos4) — NTFS-раздел, где размещены VHD-образы.

После этого можно перезагружаться и пробовать…


После загрузки устанавливаем драйвера на наше реальное железо и радуемся жизни:

Изображенное на скринах – это полноценная ОС, работающая на реальном железе. Но она – всего лишь файл на Вашем жестком диске. Этот файл может быть скопирован, удален, перемещен, архивирован и прочее. К тому же, такой метод решает извечную проблему конфликта Windows vs Linux на одном HDD. Теперь они мирно уживаются друг с другом и не портят друг другу жизнь.


Как настроить grub для загрузки UEFI Windows 8?

В качестве основной системы использую Linux, но потребовалось установить Windows.
Linux стоит на диске 1 (/dev/sda), Windows поставил на диск 2 (/dev/sdb).
По умолчанию bios настроен на загрузку ОС с диска 1 (/dev/sda), т.е. загружается grub и в нем можно выбрать дополнительные параметры или загрузиться в линукс.
В момент загрузки bios-а, можно нажать F8 и выбрать с какого места будет грузиться ОС (диск, флешка и т.д.), если в этом меню выбрать «UEFI Winfows Boot Manager» то происходит загрузка в Windows.

Вопрос: Как настроить grub чтобы, можно было грузиться в Windows из него. Т.е. не через выбор загрузчика в bios-е, а из меню grub-а?

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

Windows сообщает о ошибке загрузки:

2) Если сделать конфигурацию вот такую

то тоже происходит ошибка, но уже вот такая

Разделы диска

UUID dev-sdb-4

выбираем пункт Recommended repair

Спасибо! Получилось, но не так просто как описано. Ниже опишу, для тех кто столкнется и нагуглит этот решение:

При запуске, выдало ошибку

The current session is in Legacy mode. Please reboot the computer, and use this software in an EFI session. This will enable this feature. For example, use a live-USB of Boot-Repair-Disk-64bit (, after making sure your BIOS is set up to boot USB in EFI mode.

Действительно ubuntu была установлена как Legacy+GPT. Скачал указанный образ, записал на флешку через Unetbootin. В Gparted флешке поставил флаги: boot + esp. Загрузился с флешки, появился диалог, с указанием открыть терминал и выполнить пару команд. Сделал. Перезагрузился. В grub-е появились новые пункты по загрузке ubuntu и windows. Выглядят они так

Тут «B420-3CF8» и «hd1,gpt2» это UUID efi раздела созданного Windows, на втором диске (/dev/sdb)

Загрузка ubuntu работает, загрузка windows работает.


Инструкция по настройке загрузчика GRUB

/Для загрузки Linux-систем (как впрочем и любой другой UNIX-подобной системы) существует универсальный загрузчик GRUB – GRand Unified Boot loader. Он обладает довольно широким функционалом. Позволяющим не только осуществлять корректную загрузку операционных систем (ОС), но и управлять непосредственно конфигурацией и самим процессом загрузки в интерактивном режиме. В деятельности, связанной с системным администрированием знание возможностей GRUB и умение их применять очень часто экономит в различных и нестандартных ситуациях огромное количество времени системным администраторам.

Как работает GRUB?

Загрузчик GRUB – это GNU-проект, разработанный специально для использования в качестве загрузчика по-умолчанию для систем UNIX и Linux. Для подавляющего числа дистрибутивов GRUB давно поставляется «из коробки». Его главной задачей является работа со списком (который подготавливается заранее вручную или автоматически) вариантов загрузки, из которого выбирается нужный для последующей загрузки системного ядра с определёнными для выбранного варианта параметрами.

Читайте также:  Dwa 520 драйвер windows 10

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

GRUB читает конфигурацию загрузки при каждом запуске компьютера. Сами файлы конфигурации (в зависимости от используемой версии и дистрибутива) следующие: /boot/grub/menu.lst, /boot/grub/grub.conf или /boot/grub/grub.cfg для версии 2. В системах Red Hat используются файлы grub.conf, а для Ubuntu, SUSE и Solaris – menu.lst. Эти файлы имеют незначительные различия в синтаксисе конфигурации. Для примера, содержимое grub.conf может быть таким:

В этом примере конфигурируется загрузка всего одной системы Red Hat, которая (согласно default=0) будет загружена автоматически по прошествии 10 секунд (timeout=10), если не будет нажата какая-либо клавиша на клавиатуре. При этом корневая файловая система должна искаться, согласно параметру (hd0,0) команды root, на первом разделе первого жесткого диска.

Для поиска файла ядра задаётся путь относительно загрузочного раздела, монтируемого в каталог /boot. Для приведённого примера ядро будет загружаться из файла /vmlinuz-2.6.18-92.1.10.el5. Затем загрузчик выведет на экран заставку из файла /boot/grub/splash.xpm.gz, находящегося, как указано в команде splashimage, на разделе (hd0,0).

Настраивать параметры загрузки можно и в интерактивном режиме, используя интерфейс командной строки. Для этого нужно на экране меню загрузки нажать клавишу «c».

После чего мы попадем в командную строку. В которой уже можно выполнять команды.

Таким образом с помощью командной строки возможны все те же действия, что выполняются по инструкциям из файлов конфигурации. Как можно видеть, для этого загрузчик предоставляет целый набор команд со своими параметрами. Это бывает очень полезным, когда необходимо загружать системы, не имеющие соответствующей конфигурации в конфигурационных файлах или когда нужно восстановить «сломанную» конфигурацию. Для ознакомления со списком самых главных команд используется клавиша в режиме работы командной строки загрузчика. В следующей таблице представлены наиболее часто используемые команды GRUB:

Команда Назначение
reboot Перезагружает систему
find Производит поиск файла во всех смонтированных логических разделах
root Задаёт корневое устройство (логический раздел)
kernel Загружает ядро системы с корневого устройства
help Выводит интерактивную справку по команде
boot Загружает систему с указанного образа ядра

Настройка параметров ядра

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

Важно заметить, что конфигурация, задаваемая при помощи интерфейса командной строки GRUB не сохраняется. Для задания постоянной конфигурации загрузки необходимо отредактировать файл grub.conf (grub.cfg для GRUB2) или menu.lst.

Мультисистемная конфигурация

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

Важно понимать, что каждый раздел может содержать отдельный вторичный загрузчик для своей системы, но должен быть также и основной — главный загрузчик, который будет, при необходимости, передавать управление вторичному. В качестве главного в большинстве случаев необходимо использовать загрузчик GRUB. Так, например и в случае мультисистемной конфигурации, в которой соседствуют системы Windows и Linux в качестве главного обязательно должен быть загрузчик GRUB, да ещё и на отдельном от Windows устройстве.

Конфигурация GRUB для загрузки Windows-систем несколько отличается от Linux. Так, например конфигурация запуска Windows XP может быть такой:

Здесь команда chainloader предназначена для передачи управления Windows-загрузчику, расположенному в первом секторе (+1) первого раздела первого жёсткого диска (hd0,0). А команда rootnoverify указывает GRUB, что монтировать раздел (hd0,0) не нужно, т. к. должна загружаться «неродная» система Windows. Пример мультисистемной конфигурации:

В этом примере ОС Windows должна будет загружаться по-умолчанию (default=0). Через 5 секунд (в течение которых не нажата какая-либо клавиша на клавиатуре) с первого раздела первого жёсткого диска. А ОС Red Hat – со второго раздела того же диска.

Также важно отметить, что в процессе обновлений (как правило автоматических) системного ядра, файлы старых версий ядер не удаляются. Но при этом скрипты из пакета обновлений могут автоматически отредактировать конфигурацию загрузки. Добавив новый вариант загрузки для нового ядра. Которое устанавливается в систему независимо от уже имеющихся в ней других ядер. Поэтому ничего удивительного в том, что пунктов меню, отражающих варианты загрузки. Cо временем (после каждого обновления ядра) становится всё больше и больше. Это довольно удобно, т. к. в случае, если с новым ядром система стала работать некорректно. Или вовсе «сломалась» – есть возможность использовать старое ядро. Воспользовавшись соответствующим пунктом меню загрузки GRUB.

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


Поделиться с друзьями
Советы экспертов и специалистов