- Вопрос или проблема
- Gummiboot
- Заключение
- Ответ или решение
- Модернизация настроек загрузки EFI: Решение проблем с временем ожидания и выбором операционной системы
- 1. Настройка времени ожидания в EFI Загрузчике
- 2. Установка и использование systemd-boot
- 3. Проблемы с GRUB и его замена
- 4. Устранение неполадок
- Заключение
Вопрос или проблема
Как я могу изменить настройку «тайм-аут» менеджера загрузки EFI? Я пытаюсь установить двойную загрузку Windows 8 и Ubuntu и хотел бы иметь возможность выбирать одну из этих ОС во время загрузки моего компьютера.
Я уже пытался использовать sudo efibootmgr -t 10
из Ubuntu, но это не сработало, потому что я не вижу списка для выбора, когда мой компьютер загружается, а сразу загружается grub
.
Вот дополнительные детали:
$ efibootmgr -v
BootCurrent: 0000
Timeout: 10 секунд
BootOrder: 0000,0002
Boot0000* debian HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\debian\grubx64.efi)
Boot0002* Менеджер загрузки Windows HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
$ bootctl status
systemd-boot не установлен в ESP.
Система:
Прошивка: нет (нет)
Secure Boot: отключен
Режим настройки: пользователь
Текущий загрузчик:
Продукт: нет
Особенности: - Подсчет загрузок
- Управление временем ожидания меню
- Управление временем ожидания одноразового меню
- Управление стандартной записью
- Управление одноразовой записью
- Поддержка раздела XBOOTLDR
- Поддержка передачи случайного семени в ОС
- Загрузчик устанавливает информацию о разделе ESP
ESP: нет
Файл: `-нет
Случайное семя:
Передано в ОС: нет
Системный токен: не установлен
Существует: нет
Доступные загрузчики на ESP:
ESP: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)
Файл: `-/EFI/BOOT/bootx64.efi
Загрузчики, перечисленные в переменных EFI:
Заголовок: debian
ID: 0x0000
Статус: активен, порядок загрузки
Раздел: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
Файл: `-/EFI/debian/grubx64.efi
Заголовок: Менеджер загрузки Windows
ID: 0x0002
Статус: активен, порядок загрузки
Раздел: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
Файл: `-/EFI/Microsoft/Boot/bootmgfw.efi
Записи загрузчиков:
$BOOT: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)
0 записей, не удалось определить стандартную запись.
Это из-за systemd-boot не установлен в ESP
?
ОБНОВЛЕНИЕ:
Вот мой статус после выполнения задач, описанных в ответе Питера.
$ efibootmgr -v
BootCurrent: 0000
Timeout: 6 секунд
BootOrder: 0001,0000,0002
Boot0000* debian HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\debian\grubx64.efi)
Boot0001* Менеджер загрузки Linux HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0002* Менеджер загрузки Windows HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
$ bootctl status
Система:
Прошивка: нет (нет)
Secure Boot: отключен
Режим настройки: пользователь
Текущий загрузчик:
Продукт: нет
Особенности: - Подсчет загрузок
- Управление временем ожидания меню
- Управление временем ожидания одноразового меню
- Управление стандартной записью
- Управление одноразовой записью
- Поддержка раздела XBOOTLDR
- Поддержка передачи случайного семени в ОС
- Загрузчик устанавливает информацию о разделе ESP
ESP: нет
Файл: `-нет
Случайное семя:
Передано в ОС: нет
Системный токен: установлен
Существует: да
Доступные загрузчики на ESP:
ESP: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)
Файл: `-/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.1)
Файл: `-/EFI/BOOT/bootx64.efi (systemd-boot 245.4-4ubuntu3.1)
Загрузчики, перечисленные в переменных EFI:
Заголовок: Менеджер загрузки Linux
ID: 0x0001
Статус: активен, порядок загрузки
Раздел: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
Файл: `-/EFI/systemd/systemd-bootx64.efi
Заголовок: debian
ID: 0x0000
Статус: активен, порядок загрузки
Раздел: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
Файл: `-/EFI/debian/grubx64.efi
Заголовок: Менеджер загрузки Windows
ID: 0x0002
Статус: активен, порядок загрузки
Раздел: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
Файл: `-/EFI/Microsoft/Boot/bootmgfw.efi
Записи загрузчиков:
$BOOT: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)
0 записей, не удалось определить стандартную запись.
$ cat "$(bootctl -x)/loader/loader.conf"
#timeout 3
#console-mode keep
default f1439fc415644fedb2360e6691283080-*
timeout 5
console-mode max
editor yes
auto-entries yes
auto-firmware yes
random-seed-mode always
$ bootctl status | grep f1439fc415644fe | wc
0 0 0
Итак, Питер,
- откуда в файле
/loader/loader.conf
беретсяdefault f1439fc415644fedb2360e6691283080-*
и что это означает? И что ты имел в виду, когда поставил тамdefault Windows
? - и самое главное, теперь я вижу меню/список загрузки EFI, просто в нем есть только
Менеджер загрузки Windows
иПерезагрузить в прошивку
, о которых ты упоминал, но в нем нет меню Linux/debian, которое я хочу. Что я упустил?
Что ж, к твоему вопросу о том, является ли поведение, которое ты испытываешь, результатом того, что systemd-boot не установлен в ESP, ответ будет… «Не совсем?» Ха-ха, это сложная тема для меня, потому что я знаю довольно много о процессе загрузки EFI и различных способах его управления, и на самом деле systemd-boot сейчас здесь не играет роли. GRUB является механизмом, к которому Ubuntu всегда обращалась для управления процессом загрузки, независимо от наличия других операционных систем, к которым ты хочешь иметь доступ. Я мог бы постепенно объяснить тебе несколько способов, чтобы, скорее всего, добиться того поведения, которое соответствует твоим ожиданиям, но это, вероятно, будет более профессиональный способ ответить на твой вопрос, чтобы быть честным.
Но я не собираюсь этого делать, потому что должен сказать тебе, что GRUB — это такая огромная головная боль, что я бы не пожелал этого даже Гитлеру, не говоря уже о таком незнакомом, как ты. Так что принимай мой совет с той степенью серьезности, которую ты считаешь уместной, я собираюсь представить пару вариантов, которые у тебя уже под рукой для управления процессом загрузки, и оба мне нравятся гораздо больше, чем GRUB, даже когда он ведет себя прилично. Поскольку ты упомянул systemd-boot (который я все еще думаю по его старому, предшествующему Red Hat имени, «Gummiboot», потому что это более весело), давай начнем с него.
Gummiboot
Предупреждение, хотя я действительно люблю его за невероятную скорость работы и за то, насколько удобно иногда иметь менеджер загрузки, который по сути является просто дополнительным модулем для процесса инициализации Linux… Боже мой, он так ужасен. Мне не нравится внешний вид GRUB, и он заставляет GRUB выглядеть полусексуально каким-то образом. Если тебя это не смущает, давай я покажу тебе, как быстро ты можешь решить эту проблему, используя его вместо этого. Запусти секундомер, я уверен, что смогу отправить тебя на успешную перезагрузку менее чем за четыре минуты.
-
Чтобы начать, давай установим его на твоем ESP (раздел системы EFI, где находятся все загрузчики/менеджеры) вместе с GRUB и Менеджером загрузки Windows, в худшем случае, ты просто проигнорируешь его в будущем, как это делаешь с WBM, когда будешь использовать свое предпочтительное решение. Открой терминал и выполни эту команду для установки Gummiboot на ESP и добавления его в порядок загрузки:
sudo bootctl install
. Ты увидишь множество действий в течение секунды и сообщение, сообщающее тебе, что systemd-boot установлен на ESP и находится на верхней позиции в порядке загрузки. Хотя заманчиво зафиксировать легкую победу на секундомере, поскольку чаще всего это работает просто отлично без настройки, давай сделаем еще несколько шагов, чтобы поднять шансы, пока мы на этом. Во-первых, если мы не успеем вернуться в терминал до попытки перезагрузки, выполниsudo bootctl random-seed
. Это супер-тривиально, но это добавляет небольшое улучшение к твоей безопасности в момент загрузки и стоит только времени, необходимого для ввода, так что давай сделаем это. -
В любом удобном для тебя формате запусти текстовый редактор, который позволит редактировать файлы, принадлежащие root (я всегда предпочитаю старый
sudo mcedit [filename]
, но действуй как считаешь нужным) и открой этот файл с его помощью:"$(bootctl -x)/loader/loader.conf"
Если ты собираешься использовать GUI-редактор и нужно знать точный путь для навигации к файлу, просто напечатайecho
перед ним в терминале и нажми Enter, и он выведет фактическое местоположение. Поскольку я не знаю, какую версию systemd/Gummiboot ты используешь, я просто скажу тебе, что должно быть в этом файле, а ты уже сам всё остальное. Вот:default Windows timeout 15 console-mode max editor yes auto-entries yes auto-firmware yes random-seed-mode always
Не стесняйся оставить любую случайную строку, которая уже есть в качестве стандартной, если ты хочешь загружать Ubuntu, если выбор не будет сделан до истечения времени ожидания меню, я просто хотел, чтобы ты увидел, как изменить его, если это необходимо. Аналогично, значение времени ожидания, которое ты хочешь установить, — это твое дело. Остальное должно быть добавлено, как показано, это всё хорошие вещи.
Как только это будет сделано, если ты хочешь успокоиться, ты можешь снова проверить вывод sudo bootctl status
в терминале или просто перезагрузить свой компьютер, и ты должен быть готов к работе. Вот несколько быстрых советов от старшего Gummiboot для тебя:
- В меню обычно злоупотребляют выбором с помощью клавиш ↑/↓ и используют → или Enter для подтверждения. Настоящий «пимп» просто нажимает номер на клавиатуре, соответствующий желаемому пункту из списка, как будто они пронумерованы сверху вниз, а 1 — это наиболее верхняя запись. Или если присутствует только одна запись для Windows, MacOS или дистрибутива Linux, нажатие букв w, a или l немедленно запустит загрузку этой записи с одного нажатия клавиши. Это заставляет девушек кусать нижнюю губу каждый раз.
- Строка
auto-firmware yes
в файле должна гарантировать, что один из вариантов в списке — это «Перезагрузить в прошивку»… и если всё пойдёт не так, выбери ее, и ты окажешься в настройках BIOS, где ты сможешь вручную изменить порядок загрузки и поставить Windows или «debian» на верхнюю позицию для спасения. Это крайне маловероятно, что тебе это понадобится, но на случай, если это произойдет, может быть, ты не будешь проклинать мое существование после этого. Жизнь коротка, и мне не нужно больше плохого настроения.
Заключение
На этом этапе ты должен быть готов к действиям, мой друг. Я знаю, что сказал, что дам тебе пару потенциальных решений, так что если это не помогает тебе выйти из нейтрала или ты находишь, что флиртуешь с нигилизмом как образом жизни из-за того, насколько это визуально непривлекательно, тогда без колебаний мой совет будет: используй rEFInd. Он есть в репозиториях Ubuntu и настраивается автоматически, так что его всегда легко установить с помощью sudo apt install refind
, и это «Shelby Cobra» менеджеров загрузки. Документация отличная, и он умен, так что если ты выберешь этот путь, я не сомневаюсь, что у тебя всё будет хорошо.
Моя работа здесь закончена; вперед, покоряй мир, парень.
Ответ или решение
Модернизация настроек загрузки EFI: Решение проблем с временем ожидания и выбором операционной системы
Проблема, с которой вы столкнулись, может быть связана с неправильной конфигурацией загрузочных записей в системе EFI, а также с тем, что GRUB не позволяет вам выбрать другую операционную систему при загрузке. Рассмотрим более детально, как можно изменить настройки загрузки и решить вашу проблему с двойной загрузкой Windows 8 и Ubuntu.
1. Настройка времени ожидания в EFI Загрузчике
Для начала вы правильно использовали команду sudo efibootmgr -t 10
. Эта команда задает время ожидания при отображении меню выбора загрузки. Однако, из-за того что у вас установлен GRUB в качестве загрузчика, вы не видите этот интерфейс, так как GRUB автоматически загружает операционную систему без предоставления пользователю возможности выбора.
Проверка статуса с помощью команды efibootmgr -v
показывает, что ваша текущая конфигурация настроена корректно, но не учитывает загрузчик GRUB. Его активная запись загружает операционную систему напрямую, и из-за этого вы не видите других записей.
2. Установка и использование systemd-boot
Вы заметили, что systemd-boot
не установлен в ESP (EFI System Partition). Это может быть одной из причин, по которой у вас не виден полноценный интерфейс выбора операционной системы. Вы можете установить systemd-boot
, выполнив команду:
sudo bootctl install
Эта команда установит systemd-boot
как загрузчик, и он будет добавлен в порядок загрузки. Не забудьте задать соответствующие параметры для loader.conf
, чтобы указать нужный вам таймаут и операционную систему по умолчанию:
default Windows # или debian, в зависимости от предпочтений
timeout 10
3. Проблемы с GRUB и его замена
Как уже упоминалось, GRUB может быть причиной вашей неудовлетворенности при загрузке. Он часто не отображает доступные операционные системы из-за его конфигурации. Если вы хотите избежать проблем с GRUB, опция использования альтернативного загрузчика, такого как rEFInd
, может быть выигрышной. rEFInd
имеет более интуитивно понятный интерфейс и автоматически обнаруживает доступные загрузочные записи:
sudo apt install refind
После установки, вам нужно будет настроить rEFInd
, что значительно облегчает процесс выбора операционной системы при загрузке.
4. Устранение неполадок
Если после всех произведенных действий у вас всё еще возникают проблемы, рекомендуется выполнить следующие шаги:
-
Перепроверка порядка загрузки: Убедитесь, что порядок загрузки правильный с помощью команды
efibootmgr
. Если не так, измените настройки с помощьюefibootmgr -o 0001,0000,0002
, если 0001 — этоsystemd-boot
, 0000 —GRUB
, а 0002 —Windows Boot Manager
. -
Заберите текущий загрузчик GRUB: Если вы не хотите его использовать, его можно удалить или просто не добавлять в порядок загрузки.
-
Проверьте файл конфигурации: Убедитесь, что настройки в
loader.conf
достаточно для корректной работыsystemd-boot
.
Заключение
Если вы последуете этим шагам, вам должно удастся настроить корректный выбор между Windows и Ubuntu с указанным временем ожидания. Предложенные альтернативы, такие как использование systemd-boot
или rEFInd
, могут значительно улучшить ваш опыт работы с загрузкой операционных систем и предоставить вам необходимые инструменты для эффективного управления загрузкой.