Добавить windows в grub debian

Windows 10 was installed first on a non-formated disk using a non-UEFI BIOS.

A partition table (type msdos) and a partition for Windows were created manually during the installation of Windows. Windows automatically created a «System Reserved» partition (/dev/sda1) used for booting. Windows was installed into the second partition (/dev/sda2). Debian was installed into the third partition (/dev/sda3).

Problem: After running package upgrades, a GRUB entry for Windows was not added by the os-prober.
Solution: Re-enable os-prober to create a custom GRUB menu entry for Windows.

To re-enable os-prober uncomment the following line in /etc/default/grub:

#GRUB_DISABLE_OS_PROBER=false

NOTE: You will likely have to retrieve and enter your Windows volume Bitlocker key to get Win10 to continue booting after each time GRUB updates take place.

Problem: The GRUB entry created for Windows by the os-prober is wrong (e.g., has the wrong name).
Solution: Disable os-prober create a custom GRUB menu entry for Windows.

To disable os-prober add the following line to /etc/default/grub:

GRUB_DISABLE_OS_PROBER=true

Discover the UUID of the partition containing the Windows boot loader by executing the following command in terminal as root:

blkid /dev/sda1

The output will be something like this:

/dev/sda1: LABEL="System Reserved" UUID="1D584C40586B2873" TYPE="ntfs" PARTUUID="adc19fb9-33"

Use the UUID value to create a custom menu entry at the end of the /etc/grub.d/40_custom file:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid 1D584C40586B2873
   ntldr /bootmgr
}

Update grub by executing the following command in terminal as root:

update-grub

Info on menuentry syntax:

  • —class is used to group menu entries into classes. Menu themes may display different classes using different styles.

  • —no-floppy option prevents searching floppy devices, which can be slow.

  • ntldr is a new method to chainload Windows boot loader (the old one is chainload +1).

  • —hint. You may have seen other menu entries using —hint* options with the search command. In case when two or more partitions have identical IDs, this hints help to find the right one. In our case, we use UUID and it is very unlikely that several partitions on one system get identical UUIDs.

  • drivemap and parttool commands. You may have seen other menu entries using these commands. They are needed if you have more than one Windows/DOS installation on one disk.

References:

http://www.gnu.org/software/grub/manual/grub.html
http://unix.stackexchange.com/questions/115555/what-does-the-hint-option-in-grub2s-search-command-do
http://www.linuxcommand.org/man_pages/blkid8.html
https://wiki.gentoo.org/wiki/GRUB2/Chainloading#Probing

Установил Debian 6.0.5 поверх Windows XP. Не появилось меню выбора Windows в grub. Я понимаю, что здесь не форум экстрасенсов, но другой информации нет… Спрашивайте, я постараюсь ответить в краткие сроки.

Всем спасибо,после небольших танцев с бубном я сделал:
добавил Windows в /etc/grub.d/40_custom и на выходе получил:

### BEGIN /etc/grub.d/40_custom ***###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows" {
    set root=(hd0,2)
    chainloader +1
}

Еще крупная ошибка, это забывал прописать update-grub и ставить символ «}«

задан 9 июл 2012 в 18:55

Женя Коцарев's user avatar

Женя КоцаревЖеня Коцарев

331 золотой знак1 серебряный знак8 бронзовых знаков

2

Хотя править в ручную конфиги grub не рекомендуется, все же советую это сделать, ибо меня спасло только это.

 # nano /boot/grub/grub.cfg

Далее после записей дебиан прописать что-то вроде следующего:

### BEGIN /etc/grub.d/30_os-prober ###
 menuentry "Microsoft Windows XP Professional RU (on /dev/sda1)" {
        insmod part_msdos
        insmod ntfs
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set f6209cff209cc84f
        drivemap -s (hd0) ${root}
        chainloader +1
}

 ### END /etc/grub.d/30_os-prober ###

Значение «/dev/sda1» — раздел с Windows, «f6209cff209cc84f» — это UUID этого раздела.

ответ дан 10 июл 2012 в 7:49

ave6990's user avatar

1

А вообще попробуй перегенерировать список, командой

update-grub

или

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

cheops's user avatar

cheops

19.4k29 золотых знаков47 серебряных знаков139 бронзовых знаков

ответ дан 9 июл 2012 в 20:20

X-NicON's user avatar

X-NicONX-NicON

8475 серебряных знаков13 бронзовых знаков

1

  1. I have installed Windows 10
  2. I have installed Linux Mint Silvia and I have chosen a device for boot loader installation — sda.
  3. There is not Windows 10 in grub menu when the system starts
  4. I have booted via Linux Mint live USB.
  5. I Do step by step https://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd
  6. But it still no Windows 10 in grub menu
  7. I have booted via live windows 10 USB.
  8. With restoration tools, I have chosen the command line
  9. I have fixed Mbr by console command bootrec /FixMbr
  10. Ok, windows 10 is loading by there is no Grub.
  11. I have repeated steps 4 and 5
  12. There is no result

Also, I have tried to change grub config with this answer
https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list#answer-977251 — But in this case, There is Windows 10 — but when I chose — I will recursively going to grub

And with this answer
https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list#answer-890562
I have an error message when chose Windows 10 — There is no bootmgr directory

Thanks @Kinnectus for help

Also, I have tried

sudo os-prober

And getting

/dev/sda1:FreeDOS:FreeDOS:chain
/dev/sda2:FreeDOS:FreeDOS1:chain

And then I have tried

sudo update-grub

And getting

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.10.0-38-generic
Found initrd image: /boot/initrd.img-4.10.0-38-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found FreeDOS on /dev/sda1
Found FreeDOS on /dev/sda2
done

Unfortunately — there is not Windows 10 in grub menu

Also, I have fdisk output.

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048  16779263  16777216     8G  c W95 FAT32 (LBA)
/dev/sda2  *     16779264  33556479  16777216     8G  c W95 FAT32 (LBA)
/dev/sda3        33556480 770219115 736662636 351,3G  7 HPFS/NTFS/exFAT
/dev/sda4       770220030 976771071 206551042  98,5G  5 Extended
/dev/sda5       770220032 976771071 206551040  98,5G 83 Linux

Partition 4 does not start on physical sector boundary.

There is an issue.
Maybe the problem is with this issue?

Please, help me, I am stucking with this a whole day.
I completely have no idea, what am I doing wrong.

Многие новички и опытные пользователи Linux держат также установленной на своем компьютере операционную систему Windows, например, последней, десятой версии. Новичкам это нужно чтобы иметь запасную операционную систему, к которой они смогут вернуться, если их Linux сломается. А для опытных пользователей важно программное обеспечение, которое не поддерживается ни в Linux, ни даже с помощью эмулятора Wine, а таких программ достаточно много.

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

Причин такой ошибки может быть несколько, начиная от того, что система установлена на другом жестком диске, и заканчивая неизвестными глюками пакета os-prober, который и занимается определением операционных систем в Linux. Также, если у вас есть несколько версий Windows на компьютере, то программа может видеть только одну из них.

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

sudo mount -t ntfs-3g -o ro /dev/sda1

Я предполагаю, что система Windows установлена на разделе, который определяется в Linux, как /dev/sda1. Дальше запустите утилиту os-prober:

sudo os-prober

Если программа обнаружит Windows, то вам останется обновить конфигурацию загрузчика Grub:

sudo update-grub

Или:

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

Если же этот способ не сработает, а он, скорее всего, не сработает, то вам останется только вручную добавить пункт меню для Windows. Это не самое простое, но зато эффективное решение. Сначала нам нужно узнать UUID раздела диска, на который установлена Windows, например, /dev/sda1:

blkid /dev/sda1

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

menuentry "Windows 10" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set B4A6AEB7A6AE7A0E
chainloader +1
}

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

sudo update-grub

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

Когда конфигурация обновлена вы можете перезагрузить компьютер и загружать Windows с помощью нового пункта. Таким образом, можно добавить несколько пунктов, только для разных разделов нужно указывать их UUID.

Выводы

В этой небольшой статье мы разобрали что делать когда у вас возникнет ошибка grub не видит windows 10 и какими способами ее можно исправить. На самом деле решение очень простое, если вы не используете систему с UEFI. В варианте с EFI загрузка Windows управляется не Grub, а загрузчиком UEFI, но при использовании Linux рекомендуется отключить эту технологию.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

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

Чтобы добавить Windows в grub2, нужно выполнить несколько простых шагов. Первым делом нужно открыть файл конфигурации grub2. Он обычно расположен в директории /etc/grub.d/ и называется 40_custom. Для редактирования файла конфигурации понадобится права суперпользователя, поэтому его открывают и редактируют командой sudo gedit /etc/grub.d/40_custom.

После открытия файла конфигурации необходимо добавить блок следующего вида:

menuentry «Windows» {

set root=(hd1,1)

chainloader +1

}

Вам может потребоваться изменить параметр set root=(hd1,1) в зависимости от того, на каком разделе находится ваша ОС Windows. По умолчанию, hd1 означает второй физический диск, а 1 — первый раздел на этом диске. Если ваша ОС находится на другом диске или разделе, нужно изменить соответствующие значения.

После того, как вы добавили блок для Windows в файл конфигурации, нужно сохранить и закрыть его. Далее выполните команду sudo update-grub. Она обновит меню grub2 и добавит Windows в список доступных ОС при загрузке компьютера. Теперь вы можете выбрать Windows при старте и запустить его без проблем.

Содержание

  1. Шаг 1: Подготовка к добавлению Windows в grub2
  2. Шаг 2: Установка os-prober для обнаружения Windows
  3. Шаг 3: Редактирование файла конфигурации grub2
  4. Шаг 4: Перезапуск grub2 для применения изменений
  5. Шаг 5: Проверка добавления Windows в grub2

Шаг 1: Подготовка к добавлению Windows в grub2

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

1. Вставьте установочный диск или USB-накопитель в компьютер и перезагрузите систему.

2. Загрузитесь с установочного носителя и выберите опцию «Установить Linux» или подобную.

3. Далее, следуйте инструкциям установщика Linux и укажите параметры разделов для установки. Убедитесь, что вы выбрали то же самое хранилище, где уже установлена ваша текущая версия Linux. Если на вашем компьютере уже установлен только Windows, вы можете создать новый раздел для Linux.

4. Укажите раздел для загрузчика. В большинстве случаев, выбор будет автоматическим и установщик выберет раздел с Linux, однако, убедитесь, что загрузчик будет установлен на тот же раздел, где уже находится ваша текущая версия Linux.

5. После завершения установки выберите опцию перезагрузки системы. Теперь ваш компьютер должен загрузиться с установленной версией Linux.

Шаг 2: Установка os-prober для обнаружения Windows

  1. Открой терминал. Это можно сделать нажатием `Ctrl + Alt + T`.
  2. Введи команду `sudo apt-get install os-prober` в терминале.
  3. Нажми Enter и введи пароль администратора системы.
  4. Дождись завершения установки os-prober.

После завершения установки os-prober, теперь grub2 будет автоматически обнаруживать Windows при создании меню загрузки. Переходи к следующему шагу, чтобы настроить grub2 для добавления Windows в меню загрузки.

Шаг 3: Редактирование файла конфигурации grub2

1. Откройте терминал и выполните следующую команду, чтобы отредактировать файл конфигурации grub2:

sudo nano /etc/default/grub

2. Найдите строку GRUB_DEFAULT=0 и измените значение на GRUB_DEFAULT=saved. Это позволит сохранить последний выбраный вариант загрузки.

3. Добавьте следующие строки после строки с опцией GRUB_DEFAULT=saved:

GRUB_SAVEDEFAULT=true

GRUB_TIMEOUT_STYLE=menu

4. Найдите строку GRUB_TIMEOUT=5 и измените значение на то, которое вам нужно. Это определяет количество секунд задержки перед автоматической загрузкой дефолтной операционной системы.

5. Добавьте следующую строку, чтобы настроить цвет фона главного меню grub2:

GRUB_BACKGROUND="/путь/к/изображению/background.jpg"

Замените /путь/к/изображению/background.jpg на путь к изображению, которое вы хотите использовать в качестве фона. Изображение должно быть в формате jpg.

6. Нажмите Ctrl + O, чтобы сохранить изменения, а затем нажмите Ctrl + X, чтобы выйти из редактора nano.

7. Обновите файл конфигурации grub2, выполнив следующую команду:

sudo update-grub

Теперь вы успешно отредактировали файл конфигурации grub2 для добавления Windows в меню загрузки. После перезагрузки вашей системы вы увидите новую опцию для загрузки Windows.

Шаг 4: Перезапуск grub2 для применения изменений

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

1. Откройте терминал или консоль суперпользователя.

2. Введите команду:

sudo update-grub

3. Нажмите Enter и дождитесь завершения обновления grub2.

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

Шаг 5: Проверка добавления Windows в grub2

После выполнения предыдущих шагов, добавление Windows в grub2 должно быть завершено. Теперь давайте проверим, правильно ли Windows была добавлена в меню grub2.

  1. Перезагрузите компьютер. При появлении экрана загрузки выберите операционную систему Linux.
  2. Дождитесь, пока Linux загрузится полностью.
  3. Откройте терминал и выполните команду sudo update-grub. Это обновит конфигурацию grub2.
  4. Перезагрузите компьютер и при появлении экрана загрузки выберите «Advanced options for Ubuntu».
  5. В списке доступных ядер Linux найдите «Windows Boot Manager».
  6. Выберите «Windows Boot Manager» и нажмите Enter, чтобы запустить Windows.

Если Windows успешно запускается после выбора «Windows Boot Manager» в меню grub2, это означает, что Windows была успешно добавлена в grub2. Вы можете перезапустить компьютер еще раз для дополнительной проверки.

  • Добавить vpn подключение windows 10 что это
  • Добавить vpn подключение windows 10 адрес сервера
  • Добавить ubuntu в загрузчик windows
  • Добавить debian в домен windows
  • Добавить iscsi диск в windows