GRUB2 показує Windows 7 або середовище відновлення Windows замість Windows 10


8

Це питання, які я нещодавно зрозумів, тому відповідь я розмістив нижче.

Після установки Windows 10 щоразу, коли я отримую оновлення ядра або запускаю update-grub2його, завжди відображається Windows 7або Windows Recovery Environmentзамість нього Windows 10. Як це можна виправити назавжди?


Ці зміни вже існують у (мій Mint 19.2) / usr / lib / os-probes / mount / 20microsoft, але він все ще повертає "Windows Vista". Зауважте, що коли система з подвійним завантаженням була Windows 7, вона повертала правильне значення, тому, здається, це джерело інформації, якої немає.
cdg

@cdg Це потрібно запитати в Linux & Unix, оскільки цей сайт призначений лише для офіційних ароматів Ubuntu . Крім того, ви повинні подати звіт про помилку в Mint Development, якщо у вас вже є все це, оскільки вони можуть виявити його неправильно.
Терранс

Відповіді:


10

Оновлення: Я щойно здійснив чисту установку Xubuntu 14.04, і записи до файлу, переліченого нижче, вже були там. Схоже, команда GRUB тепер включила оновлення. Я залишу це для тих, хто може наткнутися на це без оновлення своєї системи ще.


Оновлення №2: Якщо ви створите Ubuntu 14.04 LiveUSB з принаймні стійким файлом на 1 ГБ, це розташування файлу однакове, і постійний файл дозволить залишитися за змінами. Цей файл слід змінювати лише після завантаження системи на USB-накопичувач під час Try Ubuntuзавантаження.


Причина, чому він все ще відображається Windows 7або Windows Recovery Environmentзамість цього, Windows 10полягає в тому, що файл /usr/lib/os-probes/mounted/20microsoftне містить мітки для Windows 10, тому під час os-proberвиявлення ОС він повертається до Windows 7або Windows Recovery Environment.

Щоб виправити це, вам потрібно внести такі зміни до наступного файлу (я збираюся поставити gedit як редактор, але використовувати те, що ви хочете):

sudo gedit /usr/lib/os-probes/mounted/20microsoft

ПРИМІТКА. Ви завжди повинні робити резервну копію файлу, перш ніж змінювати його!

if item_in_dir -q bootmgr "$2"; then
        # there might be different boot directories in different case as:
        # boot Boot BOOT
        for boot in $(item_in_dir boot "$2"); do
                bcd=$(item_in_dir bcd "$2/$boot")
                if [ -n "$bcd" ]; then
                        if grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; then
                                long="Windows 10 (loader)"
                        elif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then
                                long="Windows 8 (loader)"
                        elif grep -qs "W.i.n.d.o.w.s. .7" "$2/$boot/$bcd"; then
                                long="Windows 7 (loader)"

наведені вище зміни змінюють рядок if grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; thenна elif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then, додають if grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; thenі long="Windows 10 (loader)"над цим рядком і зберігають його.

Після збереження та запуску os-proberзараз виглядає приблизно так:

terrance@terrance-ubuntu:~$ sudo os-prober
[sudo] password for terrance: 
/dev/sdf1:Windows 10 (loader):Windows:chain

то запустивши update-grub2його, тепер буде здійснено оновлення до /boot/grub/grub.cfgпостійного оновлення кожного разу, коли ви отримаєте оновлення ядра, щоб воно відображало правильну версію Windows зараз (приклад нижче):

terrance@terrance-ubuntu:~$ sudo update-grub2
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.19.0-26-generic
Found initrd image: /boot/initrd.img-3.19.0-26-generic
Found linux image: /boot/vmlinuz-3.13.0-58-generic
Found initrd image: /boot/initrd.img-3.13.0-58-generic
Found linux image: /boot/vmlinuz-3.13.0-57-generic
Found initrd image: /boot/initrd.img-3.13.0-57-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 (loader) on /dev/sdf1
done

Сподіваюся, це допомагає!


4
Чи було це розміщено вгору за течією (як помилка / виправлення) для користувачів, які підтримують Grub2?
david6

@ david6 Я поняття не маю, чи так було. Я щойно зробив це відкриття минулої ночі, намагаючись дізнатися більше про GRUB2 та як він визначає, яку ОС він знаходить.
Терранс

Сценарії "20microsoft" виглядають безладним, і можуть знадобитися інші вдосконалення.
david6
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.