Использование Boot Repair, как предлагает MariusMatutiae, может работать; однако, эта программа иногда делает больше, чем разумно, поэтому я предпочитаю избегать этого. Есть как минимум три менее радикальных решения:
Решение 1. Используйте прошивку
Многие EFI предоставляют встроенный менеджер загрузки, который позволяет вам настроить порядок загрузки. Ваша запись Ubuntu/GRUB, вероятно, все еще существует, поэтому все, что вам нужно сделать, это настроить порядок загрузки с помощью прошивки. Проблема с этим подходом состоит в том, что утилиты настройки EFI настолько различны, что невозможно предоставить универсально применимые инструкции, как это сделать. Если ваша прошивка поддерживает эту функцию, вероятно, это будет самый простой способ сделать это - как только вы поймете, как добраться до опции!
Решение 2. Используйте bcdedit
в Windows
Средство bcdedit
для Windows может добавить не-Windows загрузчик в список загрузки. Хитрость в том, чтобы выяснить, что это за файл. Вы можете сделать это следующим образом:
- Загрузка в Windows
- Откройте окно командной строки администратора . (Также не используйте стороннюю оболочку для этого; я видел сообщения, что
bcdedit
не будет корректно работать с некоторыми из них.)
- Введите
mountvol S: /S
чтобы установить ESP как S:
(Вы можете изменить S:
на что-то другое, если хотите.)
- Используя командную строку, проверьте
S:
чтобы найти загрузчик Ubuntu. Вероятно, это либо S:\EFI\ubuntu\grubx64.efi
либо S:\ubuntu\shimx64.efi
. Если вы видите последнее, его можно использовать безопасно, и может потребоваться его использование - именно так Ubuntu работает с Secure Boot (SB), но на компьютере без SB это будет иметь небольшой эффект. Если Secure Boot неактивен, то shim может быть установлен или не установлен, поэтому вам может потребоваться обратиться непосредственно к grubx64.efi
.
- Введите
bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
, изменив shimx64.efi
на grubx64.efi
если shimx64.efi
отсутствует. Измените путь, если это что-то другое, что маловероятно.
- При желании введите
bcdedit /set {bootmgr} description "Ubuntu"
чтобы задать имя, которое будет отображаться в собственном списке менеджера загрузки EFI. Измените Ubuntu
на то, что вам нравится.
Если вы уже знаете имя файла для вашего загрузчика, вы можете пропустить шаги # 3 и # 4. (ESP не нужно монтировать, чтобы использовать bcdedit
таким образом.)
Преимущество этого метода заключается в том, что он не позволяет Windows портить порядок загрузки - иногда Windows пытается изменить порядок загрузки без разрешения. Я не знаю, предотвратит ли это повторение этой проблемы, если / когда вы обновитесь до того, что появилось после Windows 8.1, однако.
Решение 3. Загрузите Linux и используйте efibootmgr
Вероятно, вы можете загрузиться в Linux, используя собственный менеджер загрузки прошивки, к которому вы можете получить доступ на большинстве компьютеров, нажимая клавишу Esc или функциональную клавишу во время загрузки, хотя эта клавиша варьируется от одного компьютера к другому. Кроме того, вы можете использовать rEFInd на флэш-накопителе USB или CD-R в качестве менеджера загрузки, если у вас недостаточно данных. Вы также можете загрузиться с живого компакт-диска Linux или аварийного диска, но убедитесь, что вы загружаетесь в режиме EFI - загрузка в режиме BIOS будет недостаточной. В Linux вы можете использовать efibootmgr
для настройки порядка загрузки:
- Откройте окно терминала.
- Введите
sudo efibootmgr -v
чтобы получить список загрузочных программ. Один будет для Linux, и запустит либо shim, либо GRUB. Обратите внимание на список BootOrder
. Скорее всего, запись Windows теперь первая, а запись Ubuntu - позже в списке. Некоторые записи могут сбивать с толку. Просто игнорируйте их; сосредоточиться на поиске записи Ubuntu и определении ее номера (в записи Boot####
в начале строки).
- Введите
sudo efibootmgr -o {list}
, изменив {list}
на разделенный запятыми список номеров загрузки, как в sudo efibootmgr -o 5,0
если Boot0005
для Ubuntu и Boot0000
для Windows. Вы можете добавить больше записей, если хотите, но первая из них самая важная, поскольку именно она будет загружаться первой.
Если запись Ubuntu не существует, вы можете создать ее с помощью efibootmgr
, например:
efibootmgr -c -d /dev/sda -p 1 -l '\EFI\ubuntu\shimx64.efi' -L "Ubuntu"
Измените -d /dev/sda
чтобы указать ваше целое дисковое устройство, и -c 1
чтобы указать номер раздела. (На самом деле /dev/sda
и 1
являются значениями по умолчанию, поэтому они вам нужны, только если ваш ESP не /dev/sda1
.)