- Печать
Страницы: [1] Вниз
Тема: После установки Ubuntu 20.04 пропал Windows 10 из grub2 [Решено] (Прочитано 7745 раз)
0 Пользователей и 1 Гость просматривают эту тему.
mrchals
Здравствуйте. Установил Ubuntu 20.04 рядом в Windows 10, однако grub2 не видит Windows 10.
Изначально пытался решить проблему с помощью boot-repair — он находит Windows 10 (на sda2), однако не может восстановить и пишет
«LegacyWindows detected. Please enable BIOS-compatibility/CSM/Legacy mode in your UEFI firmware, and use this software from a live-CD (or live-USB).».
Я отключил «fast boot» и установил «UEFI and LEGACY» в настройках BIOS, однако это не помогло.
Я подозреваю, что это может возникнуть вследствие того, что Windows 10 находится в состоянии «Hibernation». Отключить этого состояние возможно в настройках Windows, только теперь у меня нет возможности запустить Windows, т.к. его не предлагает grub2. Получается что я застрял?
Я пытался убрать состояние «Hibernation» с помощью:
sudo ntfsfix /dev/sda2
Но это не помогло.
Подскажите, можно ли что либо сделать в такой ситуации?
ТС не появлялся на Форуме более трех месяцев по состоянию на 19/03/2021 (последняя явка: 07/11/2020). Модератором раздела принято решение закрыть тему.
—zg_nico
« Последнее редактирование: 19 Марта 2021, 14:30:14 от zg_nico »
andytux
это может возникнуть вследствие того, что Windows 10 находится в состоянии «Hibernation
Эта беда скажется в другом месте. В данном случае она пока не мешает. Ты нарушил другое правило.
LegacyWindows detected
Вроде как говорит, что Виндовс в режиме легаси.
Все должно быть в одном режиме. Поищи по форуму.
На скорую руку, вот и вот..
zg_nico
только теперь у меня нет возможности запустить Windows
Документацию к материнской плате посмотрите. Есть такая штука, называется bootmenu. Если у Вас UEFI поддерживает запуск одновременно с EFI-систем и Legacy-систем, не требуя при этом переключений режима загрузки, то при загрузке вызвав это bootmenu (типовые варианты, которые попадались мне: Esc, F5, F8, F12, — одна из этих клавиш при загрузке; свою клавишу смотрите в документации к материнской плате или документации к ноутбуку, если у Вас таковой) Вы можете выбрать с какого источника пойдет загрузка. И windows (если Вы ее разметкой не убили) должна в том перечне присутствовать.
Подскажите, можно ли что либо сделать в такой ситуации?
Как совершенно верно заметил ранее andytux, привести обе системы к одному режиму. Для этого либо переустановить Ubuntu/Windows, либо должным образом настроить Ubuntu/Windows. Смотря что выберете. Переустановка мне видится уж больно радикальным вариантом. Я бы ее отложил на крайний случай, а рассмотрел один из алгоритмов на Вашем месте:
1) Если настраивать Ubuntu. Предполагая, что Windows в режиме legacy, и не желая этого менять, можно установить иной загрузчик на ubuntu и заморочиться с миграцией Ubuntu на legacy. Успех предприятия не гарантирован, т.к. чёткого мануала от и до по сети мне для данного алгоритма не попадалось. Тем не менее, теоретически допускаю что этот вариант возможен, хоть я бы и не рекомендовал по нему идти.
2) Если настраивать windows10. Выходит за рамки данного форума. Можете обратиться на форум, посвященный windows, или создать отдельный топик в разделе «Разговоры обо всем» нашего форума, ибо сказано
Тем не менее, установленные в Legacy режиме системы линейки windows 7 [x64], windows 10 [x32/x64] можно перевести из режима legacy в режим uefi практически не заморачиваясь. Вот пример подобной миграции для win7. Действия, в сущности, аналогичные должны предприниматься для всех ОС из перечня выше. Следует понимать, что при экспериментах можно похоронить имеющуюся систему, так что до экспериментов следует обзавестись резервной копией разделов с windows, дабы экспериментировать можно было, не опасаясь.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb. Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.
Дюшик
mrchals,
Загрузитесь в Ubuntu и покажите вывод
sudo parted -l
Вывод можно просто скопировать и вставить в сообщение.
mrchals
Дюшик,
Вывод после выполнения команды sudo parted -l следующий:
Model: ATA WDC WD10EZEX-00W (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ntfs boot
2 525MB 370GB 370GB primary ntfs
3 370GB 371GB 907MB primary ntfs msftres
4 371GB 1000GB 629GB primary ntfs
Model: ATA WDC WD30EFRX-68E (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17,4kB 134MB 134MB Microsoft reserved partition msftres
2 135MB 1515GB 1515GB ntfs Basic data partition msftdata
3 1515GB 1515GB 1049kB
4 1515GB 1515GB 538MB fat32 EFI System Partition boot, esp
6 1515GB 2992GB 1477GB ext4
5 2992GB 3001GB 8543MB linux-swap(v1) swap
« Последнее редактирование: 13 Июля 2020, 22:52:57 от Aleksandru »
vladimirzhuravlev
На диске /dev/sdb: 3001GB всё нормально для двух систем в параллели, что на /dev/sda: 1000GB делает загрузочный раздел ? Отключи временно этот диск. Или у тебя винда есть на sda установленная в легаси, а linux на sdb установлен в режиме UEFI плюс и на этом диске винда установленная в UEFI и ? Но выше ведь написано, что так не правильно. Зайти в винду отключить гибернацию можно попробовать загрузившись с ремонтной виндовой флешки, обычно там в опциях присутствует поиск винды и её загрузка.
И на будущее, имхо, две системы заиметь на одном диске проще для новичка, чем разбрасывать их по разным. И не делай установку linux в автомате, применяй свою разметку.
mrchals
vladimirzhuravlev,
Или у тебя винда есть на sda установленная в легаси, а linux на sdb установлен в режиме UEFI плюс и на этом диске винда установленная в UEFI и ?
Да, я думаю у меня все таким образом и установленно, как вы выше и описали. Вообще изначально у меня рядом с windows 10 стояла ubuntu 16.04, но затем я решил поставить ubuntu 20.04, только установил ее не рядом с другими ОС, а вместо ubuntu 16.04 (при установке предлагался такой пункт с удалением ubuntu 16.04)
Я проделывал подобную операцию на другом компьютере (ноутбуке) — там в grub2 выбор windows 10 сохранился. Однако, когда попробовал на основном ПК — возникли вышеописанные проблемы.
Постараюсь решить проблему — отключением гибернации с помощью ремонтной флешки (hiren’s bootcd) и отпишусь о результах, хотя маловероятно, что проблема в гибернации, как уже писали выше.
vladimirzhuravlev
Лично для меня не всё понятно… рядом это на одном компе или на одном диске ? На каких дисках что ранее установлено было и на каких дисках что установлено сейчас, в каких режимах ?
« Последнее редактирование: 14 Июля 2020, 01:09:22 от vladimirzhuravlev »
Дюшик
Если Винды нет в GRUB, то она должна быть в BIOS (строка Windows Boot Manager). Можно в BIOS назначить загрузку с Windows Boot Manager, а лучше через Boot Menu (F12 или другая клавиша) выбрать Windows Boot Manager, должна будет загрузиться Винда.
На /dev/sda есть установленная Винда? Если есть, то крайний случай можно в её, добавить загрузку Винды с /dev/sdb.
Во время установки Ubuntu, Вы раздел EFI случайно не отформатировали? Возможно Виндового загрузчика вообще нет, поэтому его не видят GRUB и boot-repair.
« Последнее редактирование: 14 Июля 2020, 14:31:18 от Дюшик »
mrchals
Дюшик,
К сожалению при выборе boot device нет windows boot manager предложены варианты:
Please select boot device:
- ubuntu
- WDC WD10EZEX-00WN4A0
- WDC WD30EFRX-68EUZN0
- UEFI: Built-in EFI Shell
- Enter Setup
При выборе из этого меню дисков WDC… переходит на консоль:
error: no such device: 545ddbd-baea-...-...4745.
Entering rescue mode...
grub rescure> _
Дюшик
mrchals,
Если Windows Boot Manager нет, то вариантов только два.
Не понятно так же, почему при выборе в Boot menu диска WDC WD10EZEX-00WN4A0 появляется консоль GRUB. Откуда там взяться GRUB’у.
Я бы предложил такой вариант.
Перезагрузиться, в Boot menu выбрать диск WDC WD10EZEX-00WN4A0 должна будет загрузиться Windows c /dev/sda2. В BIOS должен быть выбран режим загрузки UEFI and LEGACY.
Подключить второй жесткий диск и временно загружать системы через Boot menu. Отписаться о результатах.
mrchals
Всем спасибо за помощь. Я все таки смог восстановить Windows 10. Теперь я могу загрузить и ubuntu и Windows 10
Изначально я пытался из установленной ubuntu запустить boot-repair
Однако получал сообщение:
«LegacyWindows detected. Please enable BIOS-compatibility/CSM/Legacy mode in your UEFI firmware, and use this software from a live-CD (or live-USB).».
Вчитавшись в сообщение, я понял, что от меня требуется запустить boot-repair из под live-CD (or live-USB).
Я вставил установочную флешку с образом ubuntu и выбрал «Try ubuntu». И уже там я смог запустить boot-repair, который восстановил мне MBR для Windows 10 на жестком диске. Конечно, теперь мне приходится при загрузке выбирать жесткий диск, а не использовать grub, но думаю, если заморочиться, то можно более грамотно настроить grub.
Мне немного помогла эта статья https://askubuntu.com/questions/1088681/how-to-help-grub-find-windows-10-boot-manager
andytux
я понял, что от меня требуется запустить boot-repair из под live-CD
Неправильно понял. В сообщении говорится, что обнвружена Виндовс в режиме легаси и тебе предлагают включить в УЕФИ этот режим.
думаю, если заморочиться, то можно более грамотно настроить grub.
Нет. Никакие заморочки тебе не помогут.
Повторяю еще раз, все должно быть в одном режиме: УЕФИ, загрузчики, системы.
Только в этом случае ты сможеть без ковыряния в УЕФИ загружать загрузчиком обе системы.
Если уж ориентироваться на Виндовс, она у тебя в режиме легаси.
Нужно загрузить boot-reair в режиме легаси и установить грубПС. Перед этим хорошенько подумать, куда его устанавливать.
Второй вариант может оказаться проще. Переустановить *бунту в режиме легаси. Но обязательно обратить внимание, что она запущена в режиме легаси. При этом уже на этапе разметки она должна увидеть Виндовс. Если не видит, то не в том режиме.
Дюшик
но думаю, если заморочиться, то можно более грамотно настроить grub.
В зависимости от разрядности Windows есть варианты:
Общий вариант (не зависящий от разрядности Винды), это в GRUB прописать «обманку». Вот эдесь нажать второй способ.
Если Винда х64, то есть нщё вариант, но о нём говорить пока рано (нужно узнать разрядность Винды).
« Последнее редактирование: 25 Июля 2020, 10:27:36 от Дюшик »
- Печать
Страницы: [1] Вверх
Многие новички и опытные пользователи 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 рекомендуется отключить эту технологию.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Здравствуйте.
Переустановил Windows 10, на втором SSD (до этого стояла 10ка по учебной лицензии). После переустановки форточек, они пропали из меню GRUB2 (попасть во вторую ОС стало возможно только из Popup меню BIOS).
Обновление конфига GRUB2 и запуск os-prober’a не дали никаких результатов.
Пробовал внести диск со второй ОС, в ручном режиме, отредактировав /etc/grub.d/40_custom. К сожалению, это так-же не дало результатов. В чем может быть проблема?
Windows 10 установлен на /dev/sdd. В системе присутствует ещё два HDD-файлопомойки (/dev/sda; /dev/sdb). Manjaro установлен на /dev/sdc. Гибернация у 10ки отключена.
# blkid
/dev/sda1: LABEL="Storage-I" UUID="9a139ccf-d118-4c99-9650-10b055112eaf" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="af7f328c-13b4-ae4f-aaf4-0e900d732e13"
/dev/sdb1: LABEL="Storage-II" UUID="040dc10d-1755-4b94-8e65-3756f2d88075" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00061c5f-01"
/dev/sdc1: UUID="82e6924b-ba33-4d3a-82ce-f4d280aa2486" BLOCK_SIZE="1024" TYPE="ext2" PTTYPE="dos" PARTUUID="2d732526-01"
/dev/sdc2: UUID="782f8374-b391-4b7b-a2fe-ab21ed86ac25" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="2d732526-02"
/dev/sdc3: UUID="45ebffb3-48ab-4dd8-a410-932569e4b68d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="2d732526-03"
/dev/sdc4: UUID="d358f8cb-d63b-4526-87e0-79426d8a6d0a" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="2d732526-04"
/dev/sdd1: LABEL="M-PM-^RM-PM->M-QM-^AM-QM-^AM-QM-^BM-PM-0M-PM-=M-PM->M-PM-2M-PM-8M-QM-^BM-QM-^L" BLOCK_SIZE="512" UUID="54C29167C2914DDC" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="0127ac5f-c7c8-40c5-a0a9-fc172fec30a8"
/dev/sdd2: UUID="4C91-930C" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="3f6d7b1c-1ef3-490c-abb8-d84cd343e4a4"
/dev/sdd3: PARTLABEL="Microsoft reserved partition" PARTUUID="b96ef863-033a-4595-9d0b-2032fdbd4b96"
/dev/sdd4: BLOCK_SIZE="512" UUID="D8C09861C09847A0" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="bd84118f-2c15-4d80-a16a-b17120be59ba"
# fdisk -l
Диск /dev/sda: 3,65 TiB, 4000787030016 байт, 7814037168 секторов
Disk model: ST4000NE001-2MA1
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: 23D3E1CA-2035-974A-B120-89961A47C2E4
Устр-во начало Конец Секторы Размер Тип
/dev/sda1 4096 7793059839 7793055744 3,6T Файловая система Linux
Диск /dev/sdb: 698,65 GiB, 750156374016 байт, 1465149168 секторов
Disk model: SAMSUNG HD753LJ
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x00061c5f
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdb1 2048 1454082047 1454080000 693,4G 83 Linux
Диск /dev/sdc: 119,25 GiB, 128035676160 байт, 250069680 секторов
Disk model: Samsung SSD 850
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x2d732526
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdc1 * 2048 630783 628736 307M 83 Linux
/dev/sdc2 630784 63545343 62914560 30G 83 Linux
/dev/sdc3 63545344 84516863 20971520 10G 83 Linux
/dev/sdc4 84516864 241803263 157286400 75G 83 Linux
Диск /dev/sdd: 119,25 GiB, 128035676160 байт, 250069680 секторов
Disk model: Samsung SSD 850
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 896AA7C4-9CDC-425E-992C-791D9F0B9FAF
Устр-во начало Конец Секторы Размер Тип
/dev/sdd1 2048 1085439 1083392 529M Среда для восстановления Microsoft
/dev/sdd2 1085440 1290239 204800 100M EFI
/dev/sdd3 1290240 1323007 32768 16M Зарезервированный раздел Microsoft
/dev/sdd4 1323008 225062911 223739904 106,7G Microsoft basic data
/etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# 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 "W10-TEST1" {
regexp -s root '((.+))' "$cmdpath"
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "W10-TEST2" {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set 4C91-930C
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "W10-TEST3" {
set root='{hd3,2}'
chainloader + 1
}
menuentry "W10-TEST4" {
insmod ntfs
set root='(hd3,2)'
search --no-floppy --fs-uuid --set 4C91-930C
chainloader +1
}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Использование Windows 10 и Linux на одном компьютере болезненно. Иногда безопасная загрузка UEFI нарушает работу GRUB, а иногда GRUB не может просто загрузить Windows 10. Недавно я обновил Ubuntu до 19.10 Beta с Ubuntu 19.04. Теперь Ubuntu 19.10 поставляется с новой версией GRUB 2.04, в котором, как сообщается, много ошибок. В моем случае GRUB каким-то образом испортил расположение Windows MBR, и теперь я не могу загрузиться в Windows 10. Чтобы исправить ситуацию, я выполнил пару шагов, и вот подробное руководство о том, как исправить Windows 10, не загружающуюся в Linux.
Если вы используете Ubuntu 19.10 Beta, в GRUB 2.04 много ошибок. Было бы лучше перейти на Ubuntu 19.04 или полностью перейти на Windows. Перейдите к этому шагу, чтобы проверить способы изменения загрузчика по умолчанию на Windows NT.
1. Восстановите GRUB.
Иногда GRUB не может найти MBR-файл Windows на ваших дисках. Первым шагом будет проверка того, может ли Windows 10 обнаруживаться Linux. Для этого выполните следующую команду.
sudo os-prober
Вышеупомянутая команда будет искать другие операционные системы, установленные на ваших дисках. Если Windows обнаружена, вы получите результат, как показано ниже.
Если указанная выше команда может найти операционную систему Windows 10, мы можем перестроить файл конфигурации GRUB. Для этого используйте следующую команду.
sudo update-grub
Приведенная выше команда запускает сканирование всех разделов на вашем локальном диске и ищет различные установленные операционные системы. Если он обнаружит Windows 10, вы должны получить результат, аналогичный приведенному ниже. Команда также автоматически создаст запись Windows в файле конфигурации.
2. Восстановление загрузки
Если командная строка вам не по душе, вы также можете попробовать графический инструмент восстановления загрузки. Иногда файл GRUB не работает. Инструмент восстановления загрузки автоматически ищет другие операционные системы на вашем диске. Он также восстанавливает и перестраивает файл конфигурации GRUB. Это похоже на запуск os-prober вручную и перестройку файла конфигурации GRUB.
Для начала используйте следующие команды, чтобы добавить требуемый репозиторий и установить Boot Repair.
sudo apt-add-repository ppa: yannubuntu / boot-repair && sudo apt-get update sudo apt-get install -y boot-repair
Затем запустите средство восстановления загрузки. Сканирование всех дисков и разделов займет минуту или две. После этого нажмите «Рекомендуемый ремонт». Эта опция удалит предыдущий файл GRUB и восстановит его с нуля.
На следующем экране вам будет представлен набор команд, которые вы должны скопировать и вставить в терминал. Просто следуйте инструкциям на экране, предоставляемым инструментом восстановления загрузки, и он восстановит файл GRUB за вас.
Восстановление загрузки выдаст неожиданную ошибку, если вы используете бета-версию дистрибутива Linux.
Если этот метод не работает для вас, скорее всего, файл диспетчера загрузки Windows не может быть обнаружен GRUB. Следовательно, нам нужно будет создать запись для него в файле конфигурации GRUB.
3. Используйте инструмент настройки GRUB.
В общем, я бы не рекомендовал вручную обновлять что-либо в файле конфигурации GRUB. Мы будем использовать инструмент с открытым исходным кодом под названием Grub Customizer. Выполните следующие команды, чтобы загрузить и установить инструмент.
sudo add-apt-repository ppa: danielrichter2007 / grub-customizer && sudo apt-get update sudo apt install grub-customizer
Далее нам нужно расположение загрузчика Windows 10. Чтобы найти его, выполните следующую команду в терминале.
lsblk
Найдите раздел с точкой монтирования «/ boot / efi». Это раздел, в котором установлен диспетчер загрузки Windows. Нам нужно имя устройства конкретного раздела. В моем случае это sda1, следовательно, расположение загрузочного файла — «/ dev / sda1».
Кроме того, вы также можете установить gnome-disk-utility, которая представляет собой графический инструмент для отображения дисков и разделов. В меню вы можете найти системный раздел EFI. Описание раздела должно выглядеть примерно так.
Затем перейдите к инструменту настройки GRUB и щелкните значок страницы вверху, чтобы сделать запись.
Во всплывающем окне редактора записей выберите тип «Chainloader» и раздел как «/ dev / sda1». Вы также можете указать подходящее имя для записи. Опубликуйте это, нажмите Enter.
Теперь вы сможете увидеть запись, которую вы создали, в меню настройщика Grub. Однако вам нужно нажать кнопку «Сохранить», чтобы синхронизировать изменения с исходным файлом конфигурации GRUB.
Наконец, выполните перезагрузку, и теперь вы сможете загрузиться в Windows 10. Если вы не можете этого сделать, скорее всего, Windows MBR является посредником или загрузочные файлы повреждены.
4. Восстановление при запуске
Если GRUB не может загрузить Windows MBR, скорее всего, файл поврежден. Мы можем восстановить его, используя ISO-файл Windows и флешку. Вы можете использовать любое загрузочное программное обеспечение USB для Linux. Я бы посоветовал ГореUSB поскольку он прост и быстро выполняет свою работу. Когда USB-накопитель будет готов, загрузитесь с него. Нажмите «Далее» на первом экране, а затем нажмите «Восстановить компьютер» на следующем экране.
На следующей странице нажмите «Параметры устранения неполадок» и, наконец, нажмите «Восстановление при загрузке». На исправление загрузочных файлов и MBR потребуется время.
В большинстве случаев восстановление при запуске исправляет загрузочный файл Windows. В случае успеха перезагрузите компьютер, и GRUB сможет загрузить Windows. Если проблема не исчезнет, нам нужно будет снова переключить загрузчик на Windows NT.
5. Сменить загрузчик по умолчанию
Если вы уверены, что загрузочный файл Windows не поврежден, и вы не стерли данные с диска C по ошибке, мы можем снова изменить загрузчик на Windows NT. Для этого загрузитесь с USB-накопителя Windows, нажмите «Далее» на первом экране. Затем нажмите «Восстановить компьютер», а затем «Устранение неполадок».
На странице «Дополнительные параметры» нажмите «Командная строка».
В командной строке выполните следующую команду.
bcdedit / set {bootmgr} путь WINDOWS system32 winload.efi
Вышеупомянутая команда изменит загрузчик с GRUB на Windows NT. Теперь, когда вы перезагружаете свою систему, она должна загружаться прямо в Windows. Если вы переходите с Ubuntu 19.10, вам нужно будет вернуться к стабильной версии Ubuntu 19.04, поскольку в GRUB 2.04 есть много ошибок.
6. Свежая установка Windows 10
Если ни один из вышеперечисленных способов вам не подходит, скорее всего, вы случайно стерли данные с Windows. Последнее средство — выполнить новую установку Windows 10. Хорошо, что вам нужно будет только отформатировать диск C, и данные на других дисках не будут потеряны. Но, тем не менее, вы потеряете файлы на рабочем столе, в папке «Загрузки» и «Документы».
Заключительные слова
Это некоторые из способов решить, что Windows 10 не загружается в Linux. Если у вас возникнут дополнительные вопросы или вопросы, касающиеся Linux или GRUB, дайте мне знать в комментариях ниже.
Также читайте: Как заставить Windows и Mac использовать мультитач-жесты в Ubuntu
Всего физических имеется два диска — SSD и винт на 500GB.
На ssd установлена винда, на винт установлен Debian Buster + общий раздел 250ГБ для винды и для дебиана. Самое интересное, что grud наглухо отказывается видеть винду, причем загрузчик винды в порядке — если в uefi выставить загрузку с бутлоадера виндовс, который лежит на ssd, то винда спокойно грузится, если выставить загрузку с винта — загружается grub, в котором нету винды. Всеми способами пытался добавить в меню grub загрузчик винды, тщетно. В fstab все разделы есть(sda — винт, sdb — твердотельник). os-prober даёт пустой вывод.
==================================================================================
Вывод fdisk -l:
root@debian:~# fdisk -l
Disk /dev/sdb: 111,8 GiB, 120034123776 bytes, 234441648 sectors
Disk model: SPCC Solid State
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: DD22852F-3DBC-4119-B7B2-0AD6D6493D2A
Device Start End Sectors Size Type
/dev/sdb1 2048 1085439 1083392 529M Windows recovery environment
/dev/sdb2 1085440 1290239 204800 100M EFI System
/dev/sdb3 1290240 1323007 32768 16M Microsoft reserved
/dev/sdb4 1323008 234440703 233117696 111,2G Microsoft basic data
Disk /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: TOSHIBA DT01ACA0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D83176BD-F4DA-42E9-AAD8-BD7F15AB0807
Device Start End Sectors Size Type
/dev/sda1 976510991 976773134 262144 128M Microsoft reserved
/dev/sda2 2048 488282111 488280064 232,9G Linux filesystem
/dev/sda3 488282112 488284159 2048 1M BIOS boot
/dev/sda4 488284160 959838207 471554048 224,9G Linux filesystem
/dev/sda5 959838208 976510975 16672768 8G Linux swap
Partition 1 does not start on physical sector boundary.
Partition table entries are not in disk order.
root@debian:~#
lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
├─sda1 8:1 0 128M 0 part
├─sda2 8:2 0 232,9G 0 part
├─sda3 8:3 0 1M 0 part
├─sda4 8:4 0 224,9G 0 part /
└─sda5 8:5 0 8G 0 part [SWAP]
sdb 8:16 0 111,8G 0 disk
├─sdb1 8:17 0 529M 0 part
├─sdb2 8:18 0 100M 0 part
├─sdb3 8:19 0 16M 0 part
└─sdb4 8:20 0 111,2G 0 part
root@debian:~#
blkid:
root@debian:~# blkid
/dev/sdb1: LABEL="M-PM-^RM-PM->M-QM-^AM-QM-^AM-QM-^BM-PM-0M-PM-=M-PM->M-PM-2M-PM-8M-QM-^BM-QM-^L" UUID="AA7E297E7E294483" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8b215eea-9cdc-49e4-b5c0-8956325f807a"
/dev/sdb2: UUID="D830-F92B" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="fcd2bda0-256b-4eb1-ac53-144c29877db5"
/dev/sdb3: PARTLABEL="Microsoft reserved partition" PARTUUID="e75fb019-c989-4c6f-a330-1cf9731b82db"
/dev/sdb4: UUID="1C92496D92494D08" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="621365b3-1e4c-4dbe-8147-11b5f3271cc2"
/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="0d7b6c42-6122-11ea-a568-08606e6e194e"
/dev/sda2: PARTUUID="f93c1a83-940c-488f-8147-43d6c4cdf017"
/dev/sda3: PARTUUID="0dbecb52-df73-4f1f-895f-4e93bd857e6f"
/dev/sda4: UUID="fdeac083-9701-4404-aa2b-ecc1ba399250" TYPE="ext4" PARTUUID="555d2e51-22d2-4a53-819c-65376e0e60c5"
/dev/sda5: UUID="053c3b24-c0ca-41e3-aad1-4c4ccb536cd8" TYPE="swap" PARTUUID="aa7bdb7c-f190-4127-8c41-078a85db59af"
root@debian:~#
etc/grub.d/40_custom:
#!/bin/sh
exec tail -n +3 $0
menuentry "Windows 10" {
set root=(hd1,2)
chainloader (hd1,2)+1
}
# 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.
P.S Новичок в линуксе, прошу объяснить простым языком, что у меня не так..
First, you need to backup your data , to boot windows you can use Super Grub2 Disk, witch allow you to boot a different OS , legacy or UEFI .
Because GRUB does not understand GPT partition tables, you need to create a bios_grub
partition then reinstalling Grub , also the os-prober
need to be installed to get the others OS detected.
Note: For GRUB to boot from a GPT-partitioned disk on a BIOS-based system, a BIOS boot partition is required. Please note that this partition is unrelated to the /boot mountpoint, and will be used by GRUB directly. Do not create a filesystem on it, and do not mount it.
What is the bios_grub
partition?
The BIOS boot partition is a partition on a data storage device that GNU GRUB uses on legacy BIOS-based personal computers in order to boot an operating system, when the actual boot device contains a GUID Partition Table (GPT). Such a layout is sometimes referred to as BIOS/GPT boot.
Why?
A BIOS boot partition is needed because GPT uses the disk sectors immediately following the Master Boot Record (MBR) to hold the actual partition table, whereas the traditional MBR-based partitioning scheme does not designate them for any special purpose. As a result, there is not enough unused space available for storing second stages of boot loaders on GPT disks; boot loaders are usually implemented so their code stored within the MBR, which cannot hold more than 512 bytes, operates as a first stage that serves primarily to load a more sophisticated second stage, which is, for example, capable of reading and loading an operating system kernel from a file system.
First, you need to backup your data , to boot windows you can use Super Grub2 Disk, witch allow you to boot a different OS , legacy or UEFI .
Because GRUB does not understand GPT partition tables, you need to create a bios_grub
partition then reinstalling Grub , also the os-prober
need to be installed to get the others OS detected.
Note: For GRUB to boot from a GPT-partitioned disk on a BIOS-based system, a BIOS boot partition is required. Please note that this partition is unrelated to the /boot mountpoint, and will be used by GRUB directly. Do not create a filesystem on it, and do not mount it.
What is the bios_grub
partition?
The BIOS boot partition is a partition on a data storage device that GNU GRUB uses on legacy BIOS-based personal computers in order to boot an operating system, when the actual boot device contains a GUID Partition Table (GPT). Such a layout is sometimes referred to as BIOS/GPT boot.
Why?
A BIOS boot partition is needed because GPT uses the disk sectors immediately following the Master Boot Record (MBR) to hold the actual partition table, whereas the traditional MBR-based partitioning scheme does not designate them for any special purpose. As a result, there is not enough unused space available for storing second stages of boot loaders on GPT disks; boot loaders are usually implemented so their code stored within the MBR, which cannot hold more than 512 bytes, operates as a first stage that serves primarily to load a more sophisticated second stage, which is, for example, capable of reading and loading an operating system kernel from a file system.
I have finally installed Ubuntu on my second drive. When I start my computer GRUB only offers me to boot Ubuntu, not Windows 7. What needs to be done so that I can choose between Ubuntu and Windows in GRUB?
When I press F12 for boot menu at startup and I choose Windows Boot Manager
it boots into Windows 7.
I ran command sudo fdisk -l
and here is log (http://pastebin.com/Cgv1igHc):
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xc3ffc3ff
Device Boot Start End Blocks Id System
/dev/sda1 1 1953525167 976762583+ ee GPT
Partition 1 does not start on physical sector boundary.
LiveWireBT
28.2k25 gold badges107 silver badges217 bronze badges
asked Oct 8, 2012 at 16:20
2
-
Boot Ubuntu and mount your Windows partition (simply open the disk on Nautilus)
-
Run the following on the command line (Ctrl+Alt+t):
sudo os-prober
-
If your Windows installation was found, you can run:
sudo update-grub
Note that step 2 is just for your convenience. You could just mount the Windows 7 partition and then run update-grub
.
Related question
- Unable to mount Windows (NTFS) filesystem due to hibernation
answered Oct 11, 2012 at 10:36
HermesHermes
1,2871 gold badge7 silver badges2 bronze badges
3
If the os-prober
method above doesn’t work try adding a custom grub menu entry. Documented here.
First two steps are for finding your <UUID>
.
- Run
lsblk
and find the name of the row with/boot/efi
Example output (here the answer is sda2):
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 477G 0 disk
├─sda1 8:1 0 450M 0 part
├─sda2 8:2 0 100M 0 part /boot/efi
├─sda3 8:3 0 16M 0 part
├─sda4 8:4 0 47G 0 part /windows
├─sda5 8:5 0 425,6G 0 part /
└─sda6 8:6 0 3,7G 0 part [SWAP]
mmcblk0 179:0 0 14,9G 0 disk
└─mmcblk0p1 179:1 0 14,9G 0 part
- Run
sudo blkid /dev/sdaX
wheresdaX
is the answer from previous step (sda2
in my case).
Example output (here the answer is 58E4-427D):
/dev/sda2: UUID="58E4-427D" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b81727be-ba90-5f8c-ab98-d3ec67778b7d"
- Add the following at the end of the file
/etc/grub.d/40_custom
:
menuentry "Windows 7" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set <UUID>
chainloader +1
}
- Run
sudo update-grub
and reboot.
Carolus
5533 silver badges18 bronze badges
answered May 29, 2015 at 9:27
Philippe GachoudPhilippe Gachoud
5,6503 gold badges41 silver badges49 bronze badges
2
I had Windows 10 running and then tried dual boot. Once Ubuntu was installed, Win 10 wasn’t showing up in my GRUB loader. I tried the following —
First of all, I disabled Secure Boot in Win10. Then ran the below
commands in Ubuntu :
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Worked out pretty well. Was able to find both Windows and Ubuntu in GRUB after that.
αғsнιη
34.6k39 gold badges126 silver badges188 bronze badges
answered Oct 23, 2016 at 17:13
3
I solved a similar problem following steps of Boot-Repair
Install boot-repair
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Push «Recommended repair»
And put in a terminal some commands as it suggested.
I think my Grub doesn’t recognize windows due to a bad shutdown, and it solved the problem.
answered Apr 25, 2016 at 14:30
RutrusRutrus
1,5011 gold badge9 silver badges10 bronze badges
Slightly different method as I copied from a working example on another computer, posting for my own records.
Append the following to /etc/grub.d/40_custom
:
menuentry "Windows 10" {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set <boot_efi_uuid>
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
where <boot_efi_uuid>
is the UUID of your /boot/efi
partition. To find this:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
└─md126 9:126 0 357.7G 0 raid0
├─md126p1 259:0 0 499M 0 md
├─md126p2 259:1 0 100M 0 md /boot/efi
$ sudo blkid | grep md126p2 # Replace with your device
/dev/md126p2: UUID=<boot_efi_uuid>
Then of course, once you’re saved the file, run:
sudo update-grub
Reboot, you should now be able to successfully start up Windows.
answered Feb 16, 2019 at 23:45
2
If you have previously had a RAID installed that may be causing issues. In my case, I built my desktop in 2010, and I installed two 1.5 TB with a striped RAID. User gracemercy54 mentions here that this is left over metadata from the former RAID configuration.
When I originally tried the steps by Hermes I got an error specifying «wrong number of devices in a RAID set.» So, if this happens to you open a terminal and run:
sudo dmraid -rE
sudo os-prober
sudo update-grub
That fixed this for me.
answered Mar 18, 2017 at 18:56
2
I had issues like here above and the solution was just to add manual entry as below:
menuentry "WINDOWS10 (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root 688EB92384B85968
drivemap -s (hd0) ${root}
chainloader +1
}
where UUID above (688E…) was taken from boot windows disk via blkid /dev/sdb1
.
ATTENTION: the additional line
set root='(/dev/sda,msdos1)'
refers to sda
which is visible under Ubuntu as /dev/sdb
even actually it is the first disk in sata bus while /dev/sda
is in fact second drive mounted as root /
.
Maybe that is why grub scripts could not work properly. I had no time to change the physical order of disks but it is quite possible it would help to resolve the issue, too.
Eliah Kagan
115k53 gold badges310 silver badges482 bronze badges
answered Dec 4, 2017 at 22:50
I had the same problem with Windows 10. I installed Linux Mint 18.1 Cinnamon 64-bit on my laptop for dual boot with WIN10. After the installation GRUB only offered to boot Linux but not Windows.
I found the video solution for windows 10 missing from grub menu and the forum thread Grub not recognizing Win10 after Update/Repair, but unfortunately neither worked for me so I used a combination of these two to resolve my problem.
Open your terminal and follow these commands and open the file named 40_custom:
sudo gedit /etc/grub.d/40_custom
Add these lines to the end of the file and then save and exit:
menuentry "Windows 10" {
set root='{hd0,1}'
chainloader + 1
}
After you save the file update your GRUB with this command:
sudo update-grub
Then restart your machine to see if it works.
Hope this will work for others too!
Eliah Kagan
115k53 gold badges310 silver badges482 bronze badges
answered May 30, 2017 at 13:16
1
Follow these steps if os-prober
shows Windows, but GRUB does not.
- Edit
grub-mkconfig
sudo nano /usr/bin/grub-mkconfig
- Find these lines near the middle
# Disable os-prober by default due to security reasons. GRUB_DISABLE_OS_PROBER="true"
- Change
true
tofalse
- Exit nano (CTRL+X, Y, Enter)
- Update GRUB
sudo update-grub
answered Mar 11, 2021 at 13:16
nathanfrankenathanfranke
1561 gold badge1 silver badge7 bronze badges
1
I had the same problem and had spent 2 days figuring it out. But today I had this sudden idea in the morning and it worked out.
You should review your bios/uefi settings. In my case I had to let Uefi boot first. Otherwise I wasn’t able to detect windows from ubuntu. What I had to set was ubuntu > Windows Boot Manager > DISK1 > DISK2 > DISK3. Insted DISK1 > ubuntu > Windows Boot Manager > DISK3.
I had 2 ubuntu installations one on hdd and one on ssd. Apparently ssd installation wasn’t showing as UEFI for some reasone but I wanted boot faster disk first.
I wasn’t expecting that order of boot can influence grub in detecting systems. So it is worth to review that.
answered Apr 29, 2017 at 7:08
I had the same issue after I installed the updates from ubuntu. The following commands worked for me perfectly:
sudo apt-get install os-prober
First install os-prober to detect windows and then update grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
answered Oct 29, 2019 at 21:02
1
In addition to the answer of Bartosz Dabrowski, which lead me to solving my problem:
Be sure that if your Linux uses UEFI Boot/GPT that your other OS (eg. Windows in my case) also uses UEFI Boot/GPT. Coming from an old Win7 to Win10 installation the hard drive still had old school boot and MBR. Somehow os-prober and boot-repair had their problems to fix this.
Ensure that in BIOS / Boot order there is your HDD with ubuntu (eg. uefi: ubuntu) and your HDD with Windows Boot Manager (eg. uefi: Windows Boot Manager) to be found.
If WBM is missing ensure that windows boot disk has GPT. You can check this in Windows using Disk Management (Win + X, then Disk Management).
There is a Windows tool: mbr2gpt which can convert your MBR to GPT. After doing so (and booting via UEFI) os-prober and finally update-grub was able to find my Windows installation and added it to the boot options of grub.
answered Oct 15, 2020 at 6:35
Okay, so I had the same problem and couldn’t find a solution for me out there for a long time, finally got it, so here is my little grain of sand to the world. Before you try, remember to check you are booting using UEFI everytime you can:
Apparently, in the process of installing Debian the Windows data inside the EFI partition was lost, so what I did is a System restore using a Windows 10 USB (I tried fixing the boot but somehow it didn’t work, I even tried it on console, anyways I lost no data). After this, now I coulnd’t boot Debian, so I run a Debian live CD, mounted everything and chrooted like this (and don’t forget to boot the USB as UEFI):
mount /dev/your_linux_partition /mnt
cd /mnt
mount -t proc /proc proc/
mount -t sysfs /sys sys/
mount --rbind /dev dev/
mount --rbind /sys/firmware/efi/efivars sys/firmware/efi/efivars/
mount /dev/your_efi_partition /boot/efi/
chroot /mnt /bin/bash
Now, here os-prober
didn’t detect Windows 10, but I decided to grub-install /dev/sda
and grub-update
anyways and restart.
Here is the funny thing, now I couldn’t boot Windows 10 and only Debian, BUT!, I tried once again to grub-update
and finally found the Windows 10 boot. This doesn’t make any sense honestly, but I don’t care. Hope it helps anyone as desperate as me .
answered Oct 16, 2021 at 18:56