Проверка ОС не видит Windows 10

Обновлено: 02.07.2024

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

  • Ubuntu 20.04 на одном SSD
  • Windows 10 в RAID-массиве Intel RST на двух твердотельных накопителях

ОС установлены в режиме UEFI

Проблема:

Проверка ОС не находит установку Windows в Intel RST Raid, несмотря на возможность монтирования раздела с файлами EFI. Он отлично находит файлы Ubuntu EFI. После дальнейшего изучения того, почему я наткнулся на строки 31-35 /usr/lib/os-probes/mounted/05efi и строку отладки, появившуюся в журналах. При запуске команды udevadm в условном режиме она выплевывается.

Это означает, что он не будет искать файлы EFI в этом разделе, поскольку это виртуальный диск.

Временное решение

Откройте /usr/lib/os-probes/mounted/05efi в vim и закомментируйте строку 34. Это позволит os-prober правильно находить файлы Windows EFI и правильно заполнять меню в grub, теперь машина может загружать Windows и ubuntu из grub успешно.

Вопрос

Я знаю, что весь код написан по какой-то причине, и в какой-то момент он был здесь размещен. Мне интересно:

  1. Есть ли причина, по которой я не должен просто закомментировать это (или сделать это умнее, проверив путь с помощью grep на наличие «md»)?
  2. Возможно ли, что я что-то неправильно настроил в mdadm, и поэтому он отображается как виртуальное устройство? Моя конфигурация mdadm выглядит следующим образом:

Intel RST RAID не поддерживается в операционных системах Linux. Это проприетарный «RAID», который на самом деле не работает в среде Linux. Запуск в Intel RST «RAID» не поддерживается в Linux.

Я это понимаю, и поэтому моя установка Linux не на рейде, а на собственном SSD (который теперь, когда я посмотрел, даже на другом контроллере SATA). Однако Windows это делает, поэтому я чувствовал себя комфортно, помещая его на диски рейда.

Возможно, я неясно выразился - все компоненты Linux, включая GRUB, который заполняет os-prober, - не работают с Intel RST. Другой контроллер SATA или нет, формат Intel RAID просто не поддерживается в Linux, и поэтому ваши разделы Windows и установка на RAID не найдены - Linux и osprober не поддерживают формат RST для RAID.

1 Ответ 1

Я тоже столкнулся с этой проблемой на своем ноутбуке. У меня есть MSI GT60, и он поставляется с 1 SSD и 1 HDD с завода, однако он имеет 3 порта MSATA и предназначен для приема до 3 устройств MSATA в RAID1/0 (рекламируется как дисковая производительность до 1500 МБ/с).

При этом используется обычный программный/чипсетный RAID-массив Intel с чипсетом C220 (кажется, он называется RST).

Intel RST поддерживается драйвером mdraid в Linux. Это единственное найденное мной решение, при котором Windows и Linux могут договориться о RAID.

Я взломал скрипт os-prober, как советовали выше, когда устанавливал F32 на эту машину, однако после обновления F34 я нашел лучшее решение.

Поскольку у меня есть 1 жесткий диск для Linux, я просто скопировал каталоги Microsoft и MSI из файловой системы RAID EFI в файловую систему EFI на жестком диске, os-prober прекрасно находит эти загрузчики EFI, и Windows загружается без каких-либо проблема.

Если у вас есть возможность хранить файлы загрузчика EFI на обычном устройстве, это предпочтительное решение, пока решение не будет добавлено в os-prober для Intel RST.

Я купил новый ноутбук для тестирования дистрибутива на распродаже в Черную пятницу в прошлом месяце (не увлекайтесь, это стоило мне 200 фунтов стерлингов и много головной боли), но я установил на него Ubuntu 22.04 только в эти выходные — и мгновенно попал в затруднительное положение.

Понимаете, обычно, когда я устанавливаю Ubuntu вместе с Windows в качестве системы с двойной загрузкой, Ubuntu добавляет загрузчик GRUB — замечательно — и заполняет этот загрузчик ссылками на любые другие операционные системы, такие как Windows (или технически загружается в менеджер загрузки Windows) — тоже круто.

За исключением того, что этого больше не происходит при установке Ubuntu 22.04.

Вместо этого после завершения установки Jammy и перезагрузки я смог загрузить только Ubuntu. Для загрузки Windows мне нужно использовать меню менеджера загрузки. Хотя вялое нажатие клавиши F10 не совсем сложно, это менее чем желательно.

Так что же происходит?

Проверка ОС отключена в GRUB

При установке Ubuntu 22.04 у меня появилось меню GRUB без опции диспетчера загрузки Windows.

Это меня поразило. Я ожидал одного. И я хотел один.

Было ли это особенность Windows 11? Я должен был использовать расширенный менеджер разделов для установки Ubuntu 22.04? Или это был знак, что вселенная на меня настроилась?!

Э, ничего подобного.

Обычно омг! Комментатор OstroLK упомянул проблему (и решение) в разделе комментариев к нашему сообщению о капитальном ремонте Ubuntu Orange. Теперь, если бы я не увидел этот комментарий, скорее всего, я бы нажимал клавишу F10 вместо того, чтобы писать это.

Остро пишет: «Если вы выполняете мультизагрузку с другими системами Linux и Windows, вы можете столкнуться с проблемой, когда вы когда-нибудь обновите/обновите Ubuntu (возможно, и с другими системами Linux), она перестанет «видеть «другие дистрибутивы и Windows».

Именно моя проблема.

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

Итак, на данный момент Ubuntu 22.04 (или, точнее, GRUB в Ubuntu 22.04) не обнаруживает никакую другую операционную систему ни во время, ни после установки. Джулиан Андрес Клоде из Ubuntu признает, что это «…немного спорно, и результат не обязательно отвечает интересам наших пользователей».

Одним из обходных путей (на данный момент) является добавление GRUB_DISABLE_OS_PROBER=false в /etc/default/grub следующим образом:

fix grub os prober

OS Prober включен

Нажмите "Сохранить", затем запустите sudo update-grub, чтобы он сделал свое дело.

Наконец, перезагрузите компьютер и вуаля: меню GRUB с вещами в нем:

 фото GRUB на ноутбуке

Как и должно быть

Дело в том, что отключение проверки ОС не является идеальным решением, учитывая вышеупомянутые проблемы безопасности.

И наоборот, отсутствие загрузочного меню GRUB со ссылками на загрузку других установленных ОС является серьезным недостатком по сравнению с прошлым поведением

Сложная ситуация. Разработчики Ubuntu рассматривают возможность повторного включения os-prober («тьфу»); запускать os-prober только один раз во время установки (как это делают другие дистрибутивы Linux); или даже создать новый модуль GRUB, «который просматривает параметры загрузки UEFI и создает подменю, затем устанавливает BootNext и перезагружает компьютер при выборе элемента».

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

Тем временем, если вы установите Ubuntu и обнаружите, что в вашем меню GRUB меньше нескольких операционных систем, я надеюсь, что этот небольшой совет поможет вам так же, как и мне!

На моем ПК установлена ​​двойная загрузка Windows 10 и Arch Linux Manjaro. Недавно случилось так, что после обновления grub терминал grub не отображается при загрузке, и вскоре после этого всегда запускался Manjaro, что означало, что Windows стала для меня недоступной. Очевидно, обновление grub помешало настройкам моей машины и сделало ее неработоспособной. Вот как я решил проблему.

Файлы конфигурации Grub генерируются командами sudo update-grub или sudo grub-mkconfig (фактически первая команда выполняет вторую, поэтому в использовании они ничем не отличаются). Сгенерированный файл конфигурации находится в /boot/grub/grub.cfg, и этот файл НЕ должен редактироваться людьми напрямую. Однако вы можете взглянуть на его содержимое и проверить, отсутствует ли в этом файле запись диспетчера загрузки Windows. Обратите внимание на раздел /etc/grub.d/30_os-prober в файле, потому что обычно диспетчер загрузки Windows обнаруживается os-prober и затем добавляется. Если вы найдете такой текст, как

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

  1. Убедитесь, что os-prober установлен на вашем компьютере и может обнаружить диспетчер загрузки Windows, выполнив команду sudo os-prober .
    1. Если он не установлен, установите его с помощью диспетчера пакетов.
    2. Если не удалось обнаружить диспетчер загрузки Windows, подключите загрузочный раздел Windows и повторите попытку.

    Пока ваш диспетчер загрузки Windows не был поврежден, это может гарантировать, что grub сможет использовать os-prober для обнаружения вашей системы Windows и добавления их в конфигурацию загрузки grub. Затем снова выполните sudo update-grub и проверьте, была ли добавлена ​​запись диспетчера загрузки Windows.

    Однако, если grub по-прежнему не отображается при загрузке, могут быть проблемы с его графическим терминалом, и практическим запасным вариантом является использование его консольного интерфейса. В файле /etc/default/grub раскомментируйте строку GRUB_TERMINAL_OUTPUT=console и повторите попытку перезагрузки.

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

    Размер начальных и конечных секторов устройства
    /dev/nvme1n1p1 2048 34815 32768 16M зарезервировано Microsoft
    /dev/nvme1n1p2 34816 1953523711 1953488896 931,5G Основные данные Microsoft

    Размер начальных и конечных секторов устройства Тип
    /dev/nvme0n1p1 2048 264191 262144 128M Система EFI
    /dev/nvme0n1p2 264192 976773134 976508943 465.6G Файловая система Linux


    Диск /dev/sda: 953,87 ГиБ, 1024209543168 байт, 2000409264 сектора
    Модель диска: KINGSTON SKC6001
    Единицы: секторы 1 * 512 = 512 байт
    Размер сектора (логический/физический): 512 байт / 4096 байт
    Размер ввода-вывода (минимальный/оптимальный): 4096 байт / 4096 байт
    Тип метки диска: gpt
    Идентификатор диска: 53D73342-7D4B-4A07 -B4F1-D98D54182C07

    Размер начальных и конечных секторов устройства Тип
    /dev/sda1 2048 2000409230 2000407183 953.9G Файловая система Linux

    Что странно, у меня больше нет ни Fedora, ни Pop_Os! установлен в системе.

    Выполнение команды efibootmgr -n 99e275e7-75a0-4b37-a2e6-c5385e6c00cb приводит к ошибке:
    Invalid BootNext value99e275e7-75a0-4b37-a2e6-c5385e6c00cb
    ^

    Нет Microsoft, есть только Windows/boot/EFI/windowsbootloader

    Должен ли я копировать всю загрузочную папку в мой /boot/EFI/?

    Чтобы удалить старую Fedora и всплывающие ОС, сделайте следующее:

    < td>Код:

    efibootmgr -b 0004 -B
    efibootmgr -b 0007 -B

    ПРИМЕЧАНИЕ.
    Я допустил ошибку.
    Возможно, вам не следует ничего делать с вашим разделом efi.
    Grub должен уметь распознавать Windows и создавать для нее запись.
    Если это не так, значит, чего-то не хватает.
    У вас установлены ntfs-3g dosfstools?
    ИЗВИНИТЕ мой плохой.
    ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ
    В моей системе не установлены окна, но у меня ДЕЙСТВИТЕЛЬНО есть каталог Microsoft в моем ESP, и когда я обновляю grub, я получаю
    Код:

    Создание файла конфигурации grub .
    Найден образ linux: /boot/vmlinuz-5.12.13-gentoo
    Найден образ initrd: /boot/intel-uc.img /boot/initramfs-5.12.13-gentoo.img
    Найден образ linux: /boot/vmlinuz-5.12.9-gentoo
    Найден образ initrd: /boot/intel-uc.img /boot/initramfs-5.12.9-gentoo.img
    Предупреждение: os- prober будет выполняться для обнаружения других загрузочных разделов.
    Его выходные данные будут использоваться для обнаружения на них загрузочных двоичных файлов и создания новых загрузочных записей.
    Диспетчер загрузки Windows найден на /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi

    Так что да.
    Пожалуйста, создайте каталог Microsoft в вашем ESP и скопируйте "загрузку" Windows внутрь "Microsoft"
    _________________

    После повторного запуска grub-mkconfig -o /boot/grub/grub.cfg ничего нового не происходит, я пропустил последнюю строку о добавлении записи загрузчика Windows.

    < tr>
    Код:

    Диспетчер загрузки Windows найден на /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi

    Авторское право 2001-2022 Gentoo Foundation, Inc. Дизайн Кайл Манна © 2003; Стиль заимствован из оригинальной темы subSilver. | Хостинг от Gossamer Threads Inc. © | Работает на phpBB 2.0.23-gentoo-p11 © 2001, 2002 phpBB Group
    Политика конфиденциальности

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