Как добавить windows в grub

Обновлено: 03.07.2024

Я недавно получил компьютер из школы. Он пришел с установленной Windows 8.1. Затем я установил еще одну копию Windows 8.1 (чтобы она использовала встроенную лицензию Windows Pro) и обновил ее до Windows 10. Затем я установил Ubuntu вместе с Windows 8 и 10.

Обратите внимание, что я сделал отдельный раздел ext2 размером 255 МБ для / boot.

Теперь, когда я загружаю компьютер, я сначала вижу приглашение GRUB (я уже разархивировал приглашение grub, потому что оно мне так нравится) с параметрами Windows 8 и Ubuntu. Тем не менее, нет варианта Windows 10. Если я выберу Ubuntu, компьютер загрузится в Ubuntu. Тем не менее, если я выберу опцию Windows 8, меня затем отправят в загрузчик Windows, где он затем дает мне возможность загрузить либо Windows 8, либо Windows 10. (Однако к этому моменту компьютер уже загрузил ядро ​​и все . Видимо , Microsoft поняли концепцию загрузки загрузчика и решил , что это означало «загрузки практически вся система , прежде чем на самом деле показывает загрузчик». Типичная Microsoft.)

Как отключить загрузчик Windows и добавить опцию Windows 10 в GRUB? РЕДАКТИРОВАТЬ: Кто-то ответил, сказав мне, чтобы отключить загрузчик Windows. Однако я до сих пор не знаю, как добавить Windows в список ОС GRUB. Может кто-нибудь помочь с этим?

РЕДАКТИРОВАТЬ 2: После удаления Windows 10 из загрузчика Windows с EasyBCD, казалось, что после нескольких перезагрузок он будет постоянно показывать себя, и Windows 10 появится снова. Однако позже я удалил Windows 10 из списка операционных систем в msconfig, и он, похоже, остался удаленным.

Тем не менее, я все еще не смог заставить Windows 10 появиться в GRUB. Как будто GRUB просто не обнаруживает это.

Кроме того, я поставлю это в вопросе, чтобы люди видели это - я пытался использовать boot-repair , однако, это не помогло никому.

@ daltonfury42 Прекратите верить, если вы не слушаете или не понимаете, каковы требования ОП! Рекомендация инструмента, который в основном решает типичные проблемы в типичных устаревших загрузочных установках, для нетипичных установок UEFI с особыми требованиями вводит в заблуждение и приводит к обратным результатам. @LiveWireBT Мне очень жаль. Я видел твой ответ. Я удалил свой комментарий (и перестал верить: P). Благодарность! Я думаю, что я собираюсь просто удалить весь раздел Windows 10 и перенести его на виртуальную машину, в любом случае. Честно говоря, не уверен, почему люди до сих пор голосуют против этого, поскольку для ИМО это не очень хороший вопрос. Однако в этом году я решил эту проблему по-другому - путем конвертации из MBR в GPT и загрузки UEFI. По сути, я преобразовал схему разбиения в GPT, изменил размер раздела Windows, добавил системный раздел EFI и поместил в него rEFInd, а также создал BCD-файл Windows, используя установочный диск Windows. Теперь система загружается с использованием загрузки UEFI, что облегчает игру с операционными системами. Вопреки тому, что говорит интернет, преобразовать установку Windows из BIOS в UEFI было несложно, но это было нелегко. Для любого в будущем, кто хочет сделать что-то подобное и хочет придерживаться BIOS - я думаю, что ответ лежит в BCD Windows. Я считаю, что установка Windows 10 не имеет надлежащего загрузчика или BCD или чего-то еще, и на самом деле не способна загружаться независимо. Если все сделано правильно, у меня есть догадка, что GRUB должен начать автоматически находить раздел Windows 10.

Команды в терминале Ubuntu, возможно, это решит вашу проблему.

По этой команде система автоматически обнаружит ваши установки Windows и добавит их в список GRUB.

Это не сработало, к сожалению. Кажется, он не обнаруживает раздел Windows 10. На самом деле у меня была такая же проблема с моей системой (есть windows 10 и ubuntu 14.04), и она была решена с помощью этих команд. Какая команда решила это, update-grub или grub-install ? А у вас есть отдельный раздел / boot? Дело в том, что у меня есть отдельный загрузочный раздел, я думаю, что это на самом деле sda6. Выполнение этих двух команд (очевидно) не решило это.

Иногда os-prober не прав.

Посмотрите на UUID вашего раздела Windows 10, например:

Затем отредактируйте /etc/grub.d/40_custom и в конце файла добавьте:

Не забудьте изменить UUID.

И, наконец, обновите ваш конфигурационный файл grub:

Стоит отметить, что для Windows 10, как правило, первый раздел НЕ является системным Windows (т.е. sdb2 является правильным, а sdb1 НЕ является) Это происходит из-за того, как windows 10 хранится на диске во время установки, и системный зарезервированный раздел или ремонт системы всегда первый). Grub часто не может найти второй раздел, если первый на диске уже содержит что-то загрузочное. Самый простой способ найти правильный UUID - найти самый большой раздел с помощью sudo fdisk -l и сопоставить его с результатом blkid.

Вкратце, отредактируйте /etc/grub.d/40_custom и добавьте:

Чтобы найти UUID для корневой строки --set = (в примере CC66-4B02), вы используете sudo fdisk -l для идентификации раздела EFI, затем sudo blkid / dev / sda1 (или любой другой) для поиска UUID раздела EFI , Обратите внимание, что вам нужен не раздел Windows, а EFI. После сохранения изменений запустите sudo update-grub, чтобы сгенерировать файл /boot/grub/menu.cfg, а затем перезапустите для тестирования.

Я думаю, что команда sudo / dev / sda1 должна быть sudo blkid / dev / sda1

Когда вы откроете его, вы увидите запись для Windows 8 и один для Windows 10.

удалите запись Windows 8, и вы будете в порядке.

Обновите после выполнения вышеуказанных шагов, вернитесь в Ubuntu,

открыть терминал нажатием ctrl + alt + T

затем скопируйте эти команды одну за другой,

и тем самым вы установите инструмент под названием boot-repair.

откройте восстановление загрузчика из тире, и вы получите это окно

введите описание изображения здесь

выберите рекомендуемый ремонт и следуйте инструкциям.

Обратите внимание, что вы должны быть подключены к Интернету при использовании boot-repair.

@Hitechcomputergeek, если вам нужна дополнительная помощь, дайте мне знать, я загрузлю Windows и сделаю несколько снимков экрана. Это добавляет Windows 10 в GRUB? (Дайте угадаю: нет) Я хочу иметь доступ ко всем трем ОС из GRUB, и это решает только часть проблемы. Я обновил вопрос, чтобы спросить, как добавить Windows 10 в список ОС GRUB. Я проголосовал за ваш ответ, потому что он решил часть проблемы, но, поскольку мне все еще нужно добавить Windows 10 в GRUB, я пока не принимаю ответ. Кроме того, я заметил, что вы говорите, чтобы открыть Boot Repair с черты, но линия sudo apt-get install -y boot-repair && boot-repair уже открыла бы его. Вы также можете использовать этот инструмент в «тестовом режиме ubuntu (live cd mode)», где вы можете установить, запустить и использовать его после подключения к интернету или жене.

Насколько я понял ваш вопрос, у вас есть две разные установки Windows на одном или нескольких жестких дисках, и вы не хотите, чтобы загрузчик Windows мешал или управлял обеими установками Windows. Я помню, что на старых установках было возможно напрямую загружать ядро ​​Windows из Grub (я могу ошибаться здесь), но я не смог сделать это на установках UEFI. Наличие двух независимых конфигураций загрузчика Windows, которые можно вызывать из Grub независимо, должно быть очень близко к тому, что вы ищете.

Он пришел с установленной Windows 8.1.

Я собираюсь предположить, что это компьютер с поддержкой UEFI.

  1. Проверьте, действительно ли компьютер поддерживает UEFI (я удалю свой ответ, если это не так) и ознакомьтесь с различиями между BIOS и UEFI ( разные режимы загрузки , efibootmgr, разные таблицы разделов, системный раздел EFI (ESP), загрузчики EFI . ).
  2. Затем убедитесь, что все операционные системы установлены в режиме UEFI, и убедитесь, что у вас есть таблица разделов GPT. Вы можете использовать Windows ' dism для резервного копирования и восстановления разделов в новом макете таблицы разделов и использовать командную строку с последнего установочного носителя Windows для переустановки загрузчика, подробнее об этом в следующем пункте.
    • Поскольку вам было рекомендовано попробовать различные другие инструменты, которые не решают вашу проблему, вы должны вернуть эти изменения в первоначальное состояние, иначе это будет становиться все более и более запутанным. Прости за это. :(
  3. Вы можете использовать мой ответ из раздела Как загрузить Windows 8 с устаревшего раздела MBR в режиме UEFI через GRUB?
    • Этот ответ устанавливает независимую конфигурацию загрузчика Windows bcdboot в другом месте, где Grub будет вызывать его. Для удобства я выбрал корневой раздел Windows. Это необходимо сделать для каждой установки Windows, чтобы каждая установка Windows имела свою собственную и загружалась только сама (очистите отдельные меню загрузки Windows от других записей).
    • Помните, что вам нужно создать отдельную запись для каждой установки Windows, в которую вы хотите загрузиться, /etc/grub.d/40_custom и следуйте инструкциям и объяснениям относительно UUID, разделов и таблиц разделов.
    • Вероятно, отключите все полу-умные функции, которые обнаруживают различные ОС, такие как OS-prober в Grub ( GRUB_DISABLE_OS_PROBER ) или устраняют проблемы с загрузкой с Windows или восстановлением загрузки (или очищают их вручную).

(Я загружаю Windows8 / 10, Ubuntu, Ubuntu LTS и Fedora на одном компьютере и несколько раз возился с загрузкой UEFI в соответствии с различными требованиями.)

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

Это не вызовет проблем у пользователей, которые пользуются Linux как основной системой, для них это даже более предпочтительный вариант. Но если вы еще новичок, и хотите использовать Linux второй системой, а Windows пока еще основной, до тех пор, пока не освоитесь, то наверное захотите чтобы первой была Windows. В этой статье мы рассмотрим как сделать загрузку Windows первой в Grub. Рассмотрим два способа: с помощью программы Grub Customizer и вручную, через файлы конфигурации загрузчика Grub.

Grub Customizer

Grub Customizer - это программа, позволяющая настраивать различные параметры загрузчика Grub. В том числе и положение и очередность пунктов загрузки. Установить программу можно из официальных репозиториев. Например, в Ubuntu нужно использовать ppa:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Для запуска программы откройте терминал (Ctrl + Alt + T) и наберите grub-customizer:

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

Также программу можно запустить из главного меню. Главное окно выглядит вот так:

grub

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

grub2

В меню выберите пункт Переместить вверх. Это действие нужно будет повторить несколько раз, пока Windows не будет первой в списке. Теперь будет выполняться загрузка windows по умолчанию grub.

Если потом вы захотите опустить Windows обратно вниз, есть обратное действие - Переместить вниз.

Для сохранения настроек просто нажмите кнопку Сохранить. Готово. Можете перезагружать компьютер и смотреть что получилось.

grub4

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

grub6

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

grub5

Кроме того, можно загружать по умолчанию последнюю загруженную ОС, для этого есть галочка:

grub7

Не забудьте снова нажать кнопку сохранить.

Изменение порядка загрузки Grub через терминал

Как я и обещал, теперь рассмотрим как сделать загрузку WIndows первой в Grub с помощью конфигурационных файлов. Конфигурация Grub находится в файле /boot/grub/grub.cfg.

sudo gedit /boot/grub/grub.cfg

Как правило, строки меню выглядят вот так:

menuentry имя_пункта --опции .
>

Например пункт Windows:

menuentry 'Windows 8 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprob
er-chain-FC324E26324DE66C' .
>

Теперь чтобы изменить порядок пунктов меню достаточно вырезать все до обратной закрывающей скобочки, вместе с этой строкой, и вставить перед всеми другими пунктами. Затем можно сохранить файл и готово. Перезагружайте и смотрите. Загрузка Windows выполняется по умолчанию. Только минусом данного способа является то, что при обновлении конфигурации Grub все настройки собьются.

Аналогично тому как мы настраивали пункт, загружаемый по умолчанию в Grub Customizer, это можно сделать и в терминале. Откройте файл /etc/default/grub.

gksu gedit /etc/default/grub

Здесь нас интересует строчка:

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

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

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

sudo grep menuentry /boot/grub/grub.cfg

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

А в GRUB_DEFAULT укажите saved:

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

Не во всех системах работает такой вариант, поэтому можно использовать другую команду:

grub2-mkconfig -o /boot/grub/grub.cfg

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



Оцените статью:

(17 оценок, среднее: 4,76 из 5)

Об авторе

11 комментариев

Значит так заходим в терминал и вводим:
/boot/grub/
Дальше sudo nicoedit grub.cfg (где nicoedit название вашего текстового редактора) (в некоторых случаях menu.lst)
Вводим пароль
Открывается окно текстового редактора.
Выбор ОС по умолчанию

В нем сначала просматриваем список загрузки в нижней части файла. Пример:

title Ubuntu, kernel 2.6.20-16-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=f005531f-451c-440a-8206-eee73f6ae32c ro quiet splash
initrd /boot/initrd.img-2.6.20-16-generic
quiet
savedefault

title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=f005531f-451c-440a-8206-eee73f6ae32c ro single
initrd /boot/initrd.img-2.6.20-16-generic

title Ubuntu, memtest86+
root (hd1,0)
kernel /boot/memtest86+.bin
quiet

По числу названий, задаваемых ключевым словом title, определяем, начиная с 0, пункты меню. Операционная система Linux в этом списке имеет порядковый номер 0, а Windows - 4.

Теперь в верхней части файла ищем запись:

Если по умолчанию (т.е. без вмешательства пользователя) должна загружаться ОС Linux, оставляем запись default 0 без изменения. Если же это должна быть ОС Windows, изменяем запись: default 4.

EFI предназначен для замены BIOS. /boot/efi - это системный загрузочный раздел создаваемый, когда мат. плата ноутбука использует UEFI вместо BIOS (подробнее).

Также я воспользовался скриптом Boot Info Script. Вот его результаты:


Из этого становится ясно, что Windows установлена в MBR на /dev/sda. А /grub/grub.cfg расположен на sdb2.

Путем экспериментов я выяснил, что в скрипте /etc/grub.d/40_custom срабатывает следующее условие:

И не срабатывает следующее условие:

Также в ходе одного из экспериментов я получил ошибку:
"/boot/grub/x86_64-efi/ntldr.mod not found"

Я не уверен, что Windows 10 у меня установлена в UEFI режиме. Возможно GRUB может загружать только системы установленные в том же режиме, в котором он сам запущен.

Да, действительно Windows работает в устаревшем режиме.


MSINFO32

UEFI - это интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования. Получается Ubuntu у меня работает с новым UEFI, а Windows с legacy BIOS.

Установим новую загрузочную конфигурацию на диск C: из под Windows:

C:\WINDOWS\system32>bcdboot C:\Windows /s C: /f uefi
Файлы загрузки успешно созданы.

Я пробовал добавить в файл /etc/grub.d/40_custom следующую настройку (подробнее), но дальше логотипа Windows 10 загрузка не идет:


Вот здесь пишут, что нельзя мешать режимы Windows in BIOS/CSM/legacy mode и Ubuntu in EFI/UEFI mode. И нужно переустанавливать одну из ОС. Или как-то по другому переключаться.

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

при открытии вы увидите запись для Windows 8 и одну для Windows 10.

удалите запись Windows 8, и все будет в порядке.

Обновите после выполнения шагов выше Чтобы вернуться в Ubuntu,

откройте терминал, нажав ctrl + alt + T

, затем скопируйте эти команды в него одну за другой,

и тем самым вы установите инструмент под названием boot-repair.

откройте boot-repair из тире, и вы получите это окно

enter image description here

выберите рекомендуемый ремонт и выполните шаги.

Note у вас есть для подключения к Интернету при использовании восстановления загрузки.

в терминале Ubuntu, возможно, это решит вашу проблему.

С помощью этой команды система автоматически обнаружит ваши установки Windows и добавит их в список GRUB.

который является общим местом для создания - > что делает средства здания в человечности. – obo 9 November 2016 в 15:23

Насколько я понял ваш вопрос, у вас две разные установки Windows на одном или нескольких жестких дисках, и вы не хотите, чтобы загрузчик Windows встал у вас на пути или управлял обеими установками Windows. Я помню, что в старых установках было возможно напрямую загрузить ядро Windows из Grub (возможно, я ошибаюсь), но в установках UEFI я не смог этого сделать. Наличие двух независимых конфигураций системного загрузчика Windows, которые можно независимо вызывать из Grub, должно быть очень близко к тому, что вы ищете.

Он поставляется с установленной Windows 8.1.

Я собираюсь предположить, что это компьютер с поддержкой UEFI.

  1. Пожалуйста, проверьте, что компьютер действительно поддерживает UEFI (я удалю свой ответ, если это не так) и ознакомьтесь с различиями между BIOS и UEFI (различными режимами загрузки, efibootmgr, различными таблицами разделов, EFI системным разделом (ESP), EFI загрузчиками. ).
  2. Затем проверьте, что все операционные системы установлены в режиме UEFI и проверьте, что у вас есть таблица разделов GPT. Вы можете использовать dism Windows для резервного копирования и восстановления разделов в новую таблицу разделов и использовать командную строку с последнего установочного носителя Windows для переустановки системного загрузчика, подробнее об этом в следующем пункте.
    • Поскольку вам было рекомендовано попробовать различные другие инструменты, которые не решают вашу проблему, вы должны вернуть эти изменения в первозданное состояние, в противном случае это будет становиться все более и более запутанным. Извините за это. :(
  3. Вы можете использовать мой ответ из Как загрузить Windows 8 с унаследованного MBR раздела в режиме UEFI через GRUB?
    • Этот ответ устанавливает независимую конфигурацию загрузчика Windows через bcdboot в другом месте, где его будет называть Grub. Для удобства я выбрал корневой раздел Windows. Это нужно будет делать при каждой установке Windows, чтобы каждая установка Windows имела свою собственную и загружалась только сама (очистите отдельные загрузочные меню Windows от других записей).
    • Помните, что вам нужно создать отдельную запись для каждой установки Windows, которую вы хотите загрузить в /etc/grub.d/40_custom , и следуйте инструкциям и пояснениям о UUID, разделах и таблицах разделов.
    • Вероятно, отключите все полуумные функции, которые обнаруживают различные ОС, такие как OS-prober в Grub ( GRUB_DISABLE_OS_PROBER ) или устраняют проблемы при загрузке с Windows или при восстановлении загрузки (или ручной чистке после них).

(Я загружаю Windows8/10, Ubuntu, Ubuntu LTS и Fedora на один компьютер и несколько раз загружался с UEFI при разных требованиях. )

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