Подвійне завантаження Win 8 / Ubuntu завантажує тільки Win


13

Мій комп'ютер - це ноутбук Sony Vaio. Я використовував Ubuntu та Win 8 з dualboot, але Windows якось вдалося видалити меню, щоб вибрати ОС під час запуску. Я думаю, що BIOS - це UEFI. Безпечне завантаження вже було відключено, і відновлення завантаження якось не вдалося.

Як я можу це виправити?


sda відсутній GRUB ... "Помістіть GRUB в sda", використовуючи: help.ubuntu.com/community/Boot-Repair
jmunsch

3
З UEFI у вас немає грі в MBR sda, просто в розділі efi, який він є.
Олдфред

Відповіді:


19

Sony, HP та багато виробників ноутбуків важко кодувати лише для завантаження Windows.

Є кілька раундів, які пропонують перенести grub grubx64.efiабо shimx64.efiфайл поверх Windows /EFI/windows/bootmgfw.efi. Однак це не рекомендується, оскільки оновлення Windows відновиться, bootmgfw.efiі ви повернетесь лише до завантажувальних вікон.

Натомість я пропоную перейменувати резервний /EFI/Boot/bootx64.efi і завантажувати запис на жорсткому диску або використовувати rEFInd.

Переконайтесь, що ви створили резервну копію всього розділу EFI перед внесенням змін.

У вас є кілька варіантів:

I. Перемістіть і перейменуйте файли grub grubx64.efiабо shim64.efi(для безпечного завантаження) у цю папку / файл/EFI/BOOT/BOOTX64.EFI

  1. Перейменуйте /efi/boot/bootx64.efi, скопіюйте shim або grub в / efi / boot та назви його bootx64.efi Потім завантажте запис на жорсткому диску. Нові версії Boot-Repair автоматично роблять це за допомогою "Використовувати стандартний файл EFI" у додаткових опціях. Він також створює резервну копію поточного bootx64.efi, який, ймовірно, є лише копією завантажувального файлу Windows .efi.

    З живого інсталятора змонтуйте розділ efi на жорсткому диску: Змонтуйте розділ efi. перевірте, який розділ FAT32 із прапором завантаження. Часто sda1 або sda2, але змінюється.

    sudo mount /dev/sda1 /mnt
    

    тільки якщо вона вже не існує,

    sudo mkdir /mnt/EFI/Boot
    sudo cp /mnt/EFI/ubuntu/* /mnt/EFI/Boot
    

    Якщо створена нова папка, bootx64.efi не буде існувати, пропустіть цю команду

    sudo mv /mnt/EFI/Boot/bootx64.efi /mnt/EFI/Boot/bootx64.efi.backup
    

    Зробіть grub записом для завантаження жорсткого диска в UEFI. Якщо його немає, можливо, доведеться оновити UEFI також за допомогою efibootmgr.

    sudo mv /mnt/EFI/Boot/grubx64.efi /mnt/EFI/Boot/bootx64.efi 
    

    Якщо потрібно, додайте новий запис завантажувача жорсткого диска UEFI: Дивіться також

    man efibootmgr
    

    Якщо ESP - sda або записи диска та розділу за замовчуванням:

    sudo efibootmgr -c -L "UEFI Hard drive" -l "\EFI\Boot\bootx64.efi"
    

    Якщо ESP не sda1, sdX - це диск, Y - розділ efi, також диски NVMe:

    sudo efibootmgr -c -g  -w -L "UEFI hard drive" -l '\EFI\Boot\bootx64.efi' -d /dev/sdX -p Y
    sudo efibootmgr -c -L "UEFI hard drive" -l "\EFI\Boot\bootx64.efi" -d /dev/nvme0n1 -p 2 
    
  2. (Це те саме, що виконував Boot-Repair у II. Зараз не рекомендується: Перейменуйте /efi/Microsoft/Boot/bootmgfw.efi і скопіюйте grub або shim в / efi / Microsoft / Boot та назви його bootmgfw.efi Потім завантажте запис Windows для завантаження в меню grub. Ви повинні вручну додати запис меню grub до завантаження перейменованого файлу efi Windows. Запис ос-prober Grub2 завантажується bootmgfw.efi запис, який зараз просто grub, тому він не працюватиме.

    Користувачі, які пересували файли efi вручну, бачать публікацію №6.

    http://ubuntuforums.org/showthread.php?t=2101840
    http://ubuntuforums.org/showthread.php?t=2219452
    http://ubuntuforums.org/showthread.php?t=2221498&p=13012109#post13012109

II. Якщо ви застосували виправлення Boot-Repair для "баггі UEFI" зі старішою копією, краще скасувати це. А потім зробіть зміну вище, щоб використовувати bootx64.efi Щоб скасувати та перейменувати файли на їх оригінальні імена, вам просто потрібно позначити опцію «Відновити резервні копії EFI» Boot-Repair.

Будь-яке перейменування або вручну, або з ремонтом завантаження потрібно буде переробити після оновлення Windows, оскільки воно відновить файли Windows.

ІІІ. Редагуйте Windows BCD, одну з альтернатив перейменування Boot-Repair, щоб зробити shim ім'ям Windows. Деякі системи працюють краще, щоб зареєструвати grub / shim зсередини Windows - для тих, хто триває скидання Windows за замовчуванням.

Grub не відображається при запуску для Windows 8.1 Ubuntu 13.10 Подвійне завантаження

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

https://coderwall.com/p/vfyqkg

IV. Якщо Опис повинен бути Windows, то змініть опис UEFI. Це дійсно працює лише для тих, хто має лише Ubuntu, і Windows взагалі не встановлюється.

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\ubuntu\shimx64.efi"

Відновлення або новий запис Windows UEFI - передбачає, що за умовчанням sda1 add -p 2, якщо sda2 (див. Параметри розділів man efibootmgr -d & -p розділ):

sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi"
sudo efibootmgr -c -L "Windows Boot Manager" -l "\EFI\Microsoft\Boot\bootmgfw.efi" -d /dev/nvme0n1 -p 1 

V. Деякі встановлюють rEFInd, який, здається, є іншим способом вирішення та має гарні піктограми завантаження.

http://www.rodsbooks.com/refind/index.html

http://www.rodsbooks.com/refind/secureboot.html

PPA доступний для полегшення установки в Ubuntu

http://www.rodsbooks.com/refind/getting.html

VI. Відновити запис Ubuntu UEFI sdX - це диск, Y - розділ efi, якщо, наприклад, sda2

sudo efibootmgr -c -L ubuntu -l "\EFI\ubuntu\shimx64.efi"  -d /dev/sda -p 1
sudo efibootmgr -c -L "Ubuntu" -l "\EFI\ubuntu\shimx64.efi" -d /dev/nvme0nX -p Y

VII. Зміна порядку завантаження за допомогою efibootmgr:

Змініть порядок завантаження за допомогою efibootmgr

VIII. Видаліть запис UEFI:

Видаліть Grub та використовуйте завантажувач Windows Змініть порядок завантаження за допомогою efibootmgr


Так! Перейменування працювало на мене! Я встановив розділ efi і скопіював файли ../EFI/ubuntu/grubx64.efi в ../EFI/Boot/ і в / EFI / Microsoft / Boot і змінив назву файлу наступним чином. У каталозі ../EFI/Boot я перезаписав файл bootx64.efi з файлом, а в ../EFI/Microsoft/Boot я перезаписав файл bootmgfw.efi з файлом. Це було все, що я думаю. Велике спасибі!
користувач296880

Для тих, хто застряг у Windows: мені вдалося виконати опис підходу до перейменування у варіанті a1, не виходячи з Windows. Я відкрив вікно команд як адміністратор, потім побіг mountvol S: /Sмонтувати розділ EFI як S :. У мене виникли незвичайні проблеми з тим, щоб збирати папки вгору і вниз, але переміщення копії grubx64.efi папки за раз в / EFI / Boot, а потім перейменування її на bootx64.efi працювало.
Пітер Бекер

Я здивований, що англійський майор, який перенумерував мою посаду, цього не зробив. У мене були старші коментарі, що стосуються A: & B: як основних розділів. :)
oldfred

2

Відповідь вище не працює для мого друга HP Pavilion, але я знайшов гідний обхідний шлях. Здається, що вбудована програма HP завжди перезаписує BootOrderкожне завантаження і спочатку встановлює Windows, але це все одно дотримується BootNext. Тому я написав сценарій запуску для встановлення BootNextкожного завантаження.

  1. Біжи

    efibootmgr
    

    щоб знайти числовий код BootCurrent. У моєму випадку це було так 0003.

  2. /etc/systemd/system/boot-linux-next.service:

    [Unit]
    Description=Boot Linux next
    
    [Service]
    Type=oneshot
    # Replace '3' in the next line with the appropriate code.
    ExecStart=efibootmgr --bootnext 3
    
    [Install]
    WantedBy=multi-user.target
    
  3. Біжи

    systemctl enable --now boot-linux-next.service
    

Це означає, що якщо ви коли-небудь завантажуєте щось інше, вам доведеться вручну вибрати Linux при завантаженні наступного разу.


0

У мене Acer з тією ж проблемою. Моє рішення - це "перезавантажити" вікна, а не відключення (що насправді є просто гибернатом.)

Перезавантаження (Що може викликати оновлення) система закривається, і ви можете вибрати завантаження з біографії. Ви повинні зловити його перед тим, як він перезавантажиться.

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

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