Ремонт завантаження створив занадто багато записів у меню для Windows


11

Нещодавно я встановив Ubuntu в подвійному завантаженні разом з Windows 10 на ноутбуці HP. Спочатку я не зміг завантажувати Windows за допомогою grub, оскільки вибір параметрів Windows просто повернеться до grub.

Тоді я здійснив ремонт завантаження, і всі ці додаткові параметри з’явились у меню grub.

Я можу відкрити Windows за допомогою параметра "Windows UEFI bootmgfw.efi", але не використовуючи стандартну опцію "Диспетчер завантаження Windows" (on / dev / sda1).

Як зменшити ці записи та чому я не можу завантажувати Windows за допомогою останньої опції?

Ось зображення грязи. Перший варіант - Ubuntu:

grub - 1-й варіант - Ubuntu



3
Це насправді не дублікат цього. Шахта не показує записи ядра Linux. Плюс в тому, що я не в змозі завантажувати Windows за допомогою параметра диспетчера завантажень.
Абхай

1
Нічого, ти швидкий! Ви повинні прийняти лише після того, як ви спробували відповідь, але ця, безумовно, допоможе !!! ;-) Крім того, я згадав, що ви дійсно повинні зробити резервну копію перед початком роботи або бути дуже уважним щодо того, що ви видаляєте ?!
Fabby

1
Використання GRUB Customizer, як пропонує Фаббі, ймовірно, допоможе. Що стосується того, чому одна опція працює, а інша - ні, нам знадобиться переглянути /boot/grub/grub.cfgфайл із вашої системи. Я підозрюю, що неробочий запис розроблений для систем на базі BIOS, але ваш явно базується на EFI, тому параметр режиму BIOS є (буквальним) нестартером.
Род Сміт

Відповіді:


5

Тут Windows поза темою, але відповідь полягає в тому, що це дуже стара технологія, і завантажувальний сектор складає всього 512 байт, тому він не є достатньо великим, щоб вмістити все, що ми хотіли б мати.

Щоб легко додавати та вилучати записи з grub самостійно, будь ласка:

  1. Створіть повне резервне копіювання системи всього комп'ютера, включаючи інші ОС, які використовують CloneZilla Live
  2. Ні, я не жартував! Спершу візьміть повне резервне копіювання системи ! :-)
  3. Кожен раз, коли хтось скаже вам встановити PPA, будьте дуже обережні, робіть свої власні дослідження, якщо це саме те, що ви дійсно хочете, і лише потім продовжуйте
  4. Встановіть grub-customizer , виконавши такі команди:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Почніть grub-customizerі налаштуйте чорт із цього: введіть тут опис зображення

  6. Якщо у вас виникли серйозні проблеми, відновіть резервну копію системи.


1
У вас тонкий стиль у відповідях і навіть у ваших коментарях. Чесно кажучи, мені дуже цікаво, чому не всі позначають правильну та корисну відповідь як відповідь, мене засмучує, але я ніколи її не просив. Я можу скопіювати ваші коментарі та вставити їх після моїх відповідей 😂
A. El-Ghareeb

Я щойно дав вам плюс до іншого grubпитання щодо приховування меню завантаження. Однак у цьому випадку "я відносно впевнений" відповідь, яку я тільки що розмістив у цій темі, є правильною. Зі мною це траплялося вже двічі, і метод ремонту кожного разу є бездоганним.
WinEunuuchs2Unix

FTR Я також підтримав цю відповідь. Торішній коментар, можливо, був неправильно пояснений.
WinEunuuchs2Unix

12

Кожен раз, коли я запускаю, boot-repairдодає до мого головного меню 5 додаткових параметрів завантаження Windows grub, які не працюють. У вашому випадку він додав 11 додаткових записів!

grub.cfg показує проблему

Секрет можна знайти у /etc/grub/grub.cfgфайлі:

### BEGIN /etc/grub.d/25_custom ###
    menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi
### END /etc/grub.d/25_custom ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-D656-F2A8' {
    savedefault
    insmod part_gpt
    insmod fat
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  D656-F2A8
    else
      search --no-floppy --fs-uuid --set=root D656-F2A8
    fi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-9478-B6E2' {
    savedefault
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  9478-B6E2
    else
      search --no-floppy --fs-uuid --set=root 9478-B6E2
    fi
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

Розділ 30_os-proberмістить "хороші" grubзаписи меню Windows, які ви хочете зберегти. Розділ 25_customмістить хибні записи, створені користувачем boot-repair. Ви не можете редагувати файл конфігурації grub, оскільки він буде просто перезаписаний при наступному update-grubзапуску.


Розділ 25_customстворено програмою Boot Repair

У моїй системі:

$ locate 25_custom
/boot/efi/boot-repair/log/20171111_224241/nvme0n1p5/25_custom
/boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
/etc/grub.d/25_custom

Погляньте на додаткові параметри Windows, які були налаштовані (і не працюють):

$ cat /boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
#!/bin/sh
exec tail -n +3 $0

menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi

Це помилкові записи, boot-repairстворені в результаті, /etc/grub.d/25_customякі згодом були складені в \boot\grub\grub.cfg.


Зміна ремонту завантажувача зміни на 25_custom

Використовуйте sudo -H gedit /etc/grub.d/25_customта видаляйте все, крім перших трьох рядків:

#!/bin/sh
exec tail -n +3 $0
  • Тепер файл містить два рядки з текстом та один порожній рядок.
  • Збережіть файл.
  • Біжи sudo update-grub.
  • Перезавантажте.

Тепер ваше меню більше не переповнюється п’ятьма помилковими записами меню Windows, які не працюють.

Перевірте, чи є три рядки 25_custom

Запустіть цю команду та перевірте, чи 25_customє три рядки:

$ wc /etc/grub.d/25_custom
      3       6      30
#     ^       ^       ^
#     |       |       +--- Number of characters
#     |       +----------- Number of words
#     +------------------- Number of lines

Я додав #коментарі до розшифровки wc(кількість слів) виводу.


1
Я не можу оскаржувати власну відповідь і не видаляти її, але я можу висловити вас ... :) Остерігайтеся, щоб рішення GUI завжди отримувало більше голосів, ніж текстове рішення, хоча текстове рішення, як правило, більш точне (= технічно краще)
Fabby

1
Оскільки я щойно отримав відгук на свою відповідь, я здивований, побачивши, що ваш не-GUI набрав більше голосів, ніж мій! Хороша робота!
Fabby

1
@Fabby Дякую Я просто дав тобі ще й голосування :)
WinEunuuchs2Unix

Я можу запізнитися у запитанні, але ... навіщо взагалі потрібна 25-ти звичайна? Для чого потрібні ці 3 рядки?
померанг

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