Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Ubuntu 20.04 - Windows 10 в grub menu.  (Прочитано 1798 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Ubuntu 20.04 - Windows 10 в grub menu.
« : 02 Июль 2021, 20:26:24 »
Приветствую. Знаю, тема избитая и больная. Здесь на форуме я много читал на эту тематику, но решения увы так и не нашёл. У всех причины разные, в основном тема это восстановление загрузчиков. Но у меня ситуация иная. Читал на эту тему статьи на разных ресурсах. Но описанные методы увы ныне не рабочие из-за деградации GRUB в современных версиях. Сколько перечитал обсуждений, а создаётся такое впечатление, что проблема есть, а решений нет.
У меня ситуация такая. На двух разных SSD стоят по отдельности две ОС: Ubuntu 20.04 и Windows 10, и каждая имеет свой UEFI раздел. Обе SSD под GPT разметкой. Через загрузочное меню BIOS обе системы грузятся нормально. Но мне надоело каждый раз давить F12, чтобы загрузиться в Windows 10. Часто не успеваю нажимать F12 да и вызов часто вовремя не срабатывает. Заставить grub загружать Windows 10, я так и не смог, update-grub тупо не видит Windows 10, игнорит. Вручную прописывал в /etc/grub.d/40_custom, не работает, пробывал по всякому, всё без толку.
Вывод команды sudo parted -l:
Модель: ATA Samsung SSD 850 (scsi)
Диск /dev/sda: 120GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Флаги диска:

Номер  Начало  Конец   Размер  Файловая система  Имя  Флаги
 1     1049kB  106MB   105MB   fat32                  загрузочный, esp
 2     106MB   17,3GB  17,2GB  ext4
 3     17,3GB  120GB   103GB   ext4


Ошибка: Резервная таблица GPT повреждена, но главная кажется корректной, поэтому
она и будет использоваться.
OK/Отменить/Cancel? ok                                                   
Модель: ATA SPCC Solid State (scsi)
Диск /dev/sdb: 60,0GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Флаги диска:

Номер  Начало  Конец   Размер  Файловая система  Имя                   Флаги
 1     1049kB  473MB   472MB   ntfs              Basic data partition  скрытый, diag
 2     473MB   578MB   105MB   fat32             EFI system partition  загрузочный, esp
 3     578MB   60,0GB  59,4GB  ntfs              Basic data partition  msftdata

По сведениям msinfo32: BIOS Mode UEFI. У Windows с UEFI всё нормально. А вот Ubuntu 20.04, как я заметил, из коробки не умеет работать с UEFI, а только делает вид, а на самом деле работает по старинке с MBR.

У меня два вопроса: Возможно ли технически заставить современную версию GRUB уметь загружать Windows? Если да, то как?

Оффлайн shamanhuev

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #1 : 02 Июль 2021, 20:51:17 »
Если да, то как?
Покажите вывод команды
sudo os-prober
« Последнее редактирование: 02 Июль 2021, 21:05:26 от shamanhuev »

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #2 : 02 Июль 2021, 21:04:12 »
Что то в выводе партед не видно даже второго диска.
Ещё раз посмотри вывод, увидишь и второй. Первый это Samsung, второй Solid State.

Команда: sudo os-prober абсолютно ничего не выводит.

Оффлайн shamanhuev

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #3 : 02 Июль 2021, 21:07:49 »
Вывод с диском прозевал , сорри. Но вывод команды всё таки покажи а не расскажи.  Что то я недавно видел про ос-пробер и Ubuntu 20.04

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1299
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #4 : 02 Июль 2021, 21:31:45 »
ljokmort, а что не пробуешь grub customizer ? Если он увидит и винду, то диск с Ubuntu в Биос первым, выйдет меню граба, где будет и строчка винды. На попробовать уйдёт минут пяток.

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #5 : 02 Июль 2021, 21:42:38 »
ljokmort, а что не пробуешь grub customizer ? Если он увидит и винду, то диск с Ubuntu в Биос первым, выйдет меню граба, где будет и строчка винды. На попробовать уйдёт минут пяток.

Диск с Ubuntu и так первый грузится, иначе никак. Grub-customizer есть, он больше для внешки. Винду он тоже не видит.

Пользователь добавил сообщение 02 Июль 2021, 21:46:50:
Вывод с диском прозевал , сорри. Но вывод команды всё таки покажи а не расскажи.  Что то я недавно видел про ос-пробер и Ubuntu 20.04

Не вопрос. Не нашёл тут, как тут файл с картинкой вставлять. Придётся так:
host@cinnamon:~$ sudo os-prober
host@cinnamon:~$
« Последнее редактирование: 02 Июль 2021, 21:46:50 от ljokmort »

Оффлайн andytux

  • Старожил
  • *
  • Сообщений: 4595
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #6 : 03 Июль 2021, 05:21:38 »
Цитировать
Ubuntu 20.04, как я заметил, из коробки не умеет работать с UEFI, а только делает вид, а на самом деле работает по старинке с MBR.
Заблуждение. А UEFI и MBR это совершенно разные, никак не связанные друг с другом вещи. Это как сладкое и зеленое.
Цитировать
методы увы ныне не рабочие из-за деградации GRUB в современных версиях
Второе заблуждение.
Цитировать
Не нашёл тут, как тут файл с картинкой вставлять
Руководство по добавлению изображений на форум
Цитировать
Придётся так
Так и надо. Вывод терминала это текст и незачем его портить переводом в картинку.
Цитировать
Возможно ли технически заставить современную версию GRUB уметь загружать Windows?
Возможно. Покажи grub.cfg.
« Последнее редактирование: 03 Июль 2021, 05:28:44 от andytux »

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #7 : 03 Июль 2021, 07:46:43 »
Возможно. Покажи grub.cfg.
Вот grub.cfg. Меню для Винды сформировано вручную через /etc/grub.d/40_custom.
(Нажмите, чтобы показать/скрыть)

Оффлайн shamanhuev

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #8 : 03 Июль 2021, 07:55:47 »
вручную через /etc/grub.d/40_custom.
У тебя здесь указан третий , отсутствующий диск  --  set root='(hd2,gpt2)'

Оффлайн andytux

  • Старожил
  • *
  • Сообщений: 4595
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #9 : 03 Июль 2021, 09:42:22 »
Н-да... Одну ошибку уже указали, хотя в данном случае она не повлияет. Но ошибок больше одной, много больше.
Начать с того, что с Минтом ты не по адресу пришел. Впрочем и с Виндовс тоже. Но вернемся к нашим баранам.
Цитировать
   set root='(hd2,gpt2)'
   search --no-floppy --fs=uuid --set 449B-0939
Если search найдет, то "set root" никак не скажется. Если saerch не найдет, то в переменной root неверное значение.
Надеюсь, в команде search указан правильный УУИД, именно ESP-раздела на диске с виндой.
Цитировать
   chainloader +1
Это для легаси-режима. В данном случае может мешать исполнению следующей, "более правильной команды".
Цитировать
   chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
Почти, но и в этой строке ошибки. root не мешает, но можно и не указывать.
Это все еще выполняет груб, а он чувствителен к регистру букв. Что-то мне кажется, что должно быть "/EFI/..."

Можешь код взять здесь.

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #10 : 03 Июль 2021, 10:58:07 »
Благодаря вашим подсказкам поправил файл 40_custom. Вот фрагмент обновлённого grub.cfg:
...
### BEGIN /etc/grub.d/40_custom ###
menuentry "Windows 10" {
insmod part_gpt
insmod search_fs_uuid
insmod chain
insmod fat
insmod part_msdos
set root='(hd1,gpt2)'
search --no-floppy --fs=uuid --set 449B-0939
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/40_custom ###
...
UUID EFI раздела от Винды верный:
host@cinnamon:~$ blkid /dev/sdb2
/dev/sdb2: UUID="449B-0939" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="ce73eb29-0d9e-49d8-8d45-9cd0feb9f909"
После исправления и обновления командой update-grub. GRUB всё равно отказывается грузить Винду:
Booting a command list
error: unspecified search type.
error: no such partion.
Press any key to continue...
Придётся искать другие варианты.

Оффлайн andytux

  • Старожил
  • *
  • Сообщений: 4595
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #11 : 03 Июль 2021, 11:21:26 »
Иправление ошибок порождает новые ошибки. Закон Мерфи.
Цитировать
search --no-floppy --fs=uuid --set 449B-0939
Должно быть:
search --no-floppy --fs-uuid --set 449B-0939Кстати, и еще одна нестыковка. Подключаешь модуль:
Цитировать
insmod search_fs_uuid
А используешь:
Цитировать
search --no-floppy --fs=uuid --set 449B-0939
Не знаю, что там в Минте, но в *бунту он загружается по-умолчанию.
« Последнее редактирование: 03 Июль 2021, 11:36:40 от andytux »

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #12 : 03 Июль 2021, 12:02:15 »
andytux
Я ж писал выше, что этот файл 40_custom набран моими руками, опечатки, нестыковки и прочие ошибки вполне естественны.

Короче я убрал эту строку:
search --no-floppy --fs=uuid --set 449B-0939
и заменил строку:
set root='(hd1,gpt2)'на
set root='(hd1,1)'
Теперь при попытке загрузки GRUB пишет:
Booting command list
error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found.
Но здесь уже GRUB нагло лжёт. Если смонтировать EFI раздел от Винды и посмотреть список файлов, то этот файл там присутствует:
host@cinnamon:~$ ls -1 /tmp/efi/EFI/Microsoft/Boot/*.efi
/tmp/efi/EFI/Microsoft/Boot/bootmgfw.efi
/tmp/efi/EFI/Microsoft/Boot/bootmgr.efi
/tmp/efi/EFI/Microsoft/Boot/memtest.efi
« Последнее редактирование: 03 Июль 2021, 12:11:37 от ljokmort »

Оффлайн shamanhuev

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #13 : 03 Июль 2021, 12:20:48 »
Короче я убрал эту строку:
Код: [Выделить]
search --no-floppy --fs=uuid --set 449B-0939
здесь всего лишь надо было заменить fs=uuid  на fs-uuid

Оффлайн ljokmort

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Ubuntu 20.04 - Windows 10 в grub menu.
« Ответ #14 : 03 Июль 2021, 12:52:33 »
здесь всего лишь надо было заменить fs=uuid  на fs-uuid
Да, я исправил эту опечатку. Ответ GRUB таков:
error: invalid signature
Press any key...
О какой подписи идёт речь ХЗ. Вот поэтому я эту строчку и удалил.

 

Страница сгенерирована за 0.074 секунд. Запросов: 25.