Вопрос или проблема
Итак, у меня была двойная загрузка, и я только что удалил разделы Windows, затем избавился от загрузочных файлов Windows и обновил GRUB, и теперь мой ПК загружается напрямую в Ubuntu. Однако я хотел бы все же иметь возможность выбора GRUB, чтобы переключаться между ядрами, и я хочу сделать это постоянно.
Я читал об этом, и что я нашел, так это совет закомментировать следующую строку в файле GRUB:
GRUB_HIDDEN_TIMEOUT=0
Однако в файле такой строки нет, и его единственное содержимое:
# Если вы измените этот файл, запустите 'update-grub' после этого, чтобы обновить
# /boot/grub/grub.cfg.
# Для полной документации по опциям в этом файле смотрите:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Раскомментируйте, чтобы включить фильтрацию BadRAM, измените в зависимости от ваших нужд
# Это работает с Linux (патч не требуется) и с любым ядром, которое получает
# информацию о карте памяти от GRUB (GNU Mach, ядро FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Раскомментируйте, чтобы отключить графический терминал (только grub-pc)
#GRUB_TERMINAL=console
# Разрешение, используемое на графическом терминале
# обратите внимание, что можно использовать только те режимы, которые поддерживает ваша видеокарта через VBE
# вы можете увидеть их в реальном GRUB с командой `vbeinfo'
#GRUB_GFXMODE=640x480
# Раскомментируйте, если не хотите, чтобы GRUB передавал параметр "root=UUID=xxx" Linux
#GRUB_DISABLE_LINUX_UUID=true
# Раскомментируйте, чтобы отключить генерацию пунктов меню режима восстановления
#GRUB_DISABLE_RECOVERY="true"
# Раскомментируйте, чтобы получить звуковой сигнал при запуске GRUB
#GRUB_INIT_TUNE="480 440 1"
Что это значит? Должен ли я вместо этого закомментировать строку GRUB_TIMEOUT_STYLE=hidden
или что?
Отредактируйте файл /etc/default/grub
и найдите эту строку:
GRUB_TIMEOUT_STYLE=hidden
Измените эту строку на:
GRUB_TIMEOUT_STYLE=menu
и самое главное, после внесения этого изменения, сохраните файл и выполните:
sudo update-grub
иногда, если grub установлен неправильно, может потребоваться
если загрузка в стиле legacy
sudo grub-install /dev/sdx
или
sudo grub-install --force /dev/sdx
sdx — это загрузочный диск sda, sdb или sdc Если загрузка EFI, вам нужно указать, где смонтирован ваш EFI System раздел:
sudo grub-install --efi-directory=<адрес efi-directory (например, /mnt/efi)>
Да, хотя это не было большим до обновления до 24.04, теперь это так, но быстро обучаемся, и это с версией драйверов nvidia470, да, моя карта настолько старая, где-то примерно 2013-15 года, когда она впервые была выпущена. По крайней мере, это gddr5. Но да, черный экран, и он просто остается там, так что пришлось использовать комбинацию клавиш sysreq, если нет изменений в grub, особенно предпочитаю splash вместо quiet splash и даже с драйверами от Nvidia, мне все же нужно добавить nomodeset. Когда вы устанавливаете 24.04 и если вы столкнулись с черным экраном, мое предложение заключается в том, чтобы удерживать клавишу Shift еще до появления экрана BIOS/UEFI и попасть в grub предпросмотра и добавить хотя бы nomodeset, и мне нужен какой-то визуальный индикатор того, что что-то идет правильно или неправильно с просто splash, по крайней мере, тогда вы увидите, есть ли какие-либо ошибки или подвисания, это будет более очевидно, и редактировать, как только вы полностью загрузились, grub отсюда /etc/default/grub с menu и делаем его видимым и все такое. Я не знаю, аналогично ли это для карт AMD. Тем не менее, да, просто будьте готовы нажать и удерживать Alt+ctrl+Print screen, удерживать эти три, затем нажимать медленно, через 2-3 секунды после этих, в порядке с левой руки, r e i s u b .. Canonical необходимо предоставить лучший способ всего этого, чтобы быть уверенным, что это не запутывает людей. Это тоже смешно, как мой брат и я считаем его, чем я, намного больше экспертом по вопросам, связанным с OS, но он тоже не знал об этом, пока я не узнал об этом на сайте документации ядра и не поделился с ним. Конечно, вы могли бы с помощью sysreq просто нажать клавишу b, но это могло бы повредить HDD или SSD, так как другие клавиши помогают медленно размонтировать и просто подготовить его к еще одной перезагрузке.
Просто чтобы помочь дать представление, вот как выглядят мои настройки grub, и это может измениться, когда произойдет обновление ОС, например, 24.04-or.1 и так далее.
Так что да, на всякий случай просто будьте готовы к необходимости повторного редактирования –
GRUB_DEFAULT=1
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=25
GRUB_DISTRIBUTOR=`( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`
GRUB_CMDLINE_LINUX_DEFAULT="splash nomodeset"
GRUB_CMDLINE_LINUX=""
Помните:
Для того чтобы эти изменения вступили в силу, вам также необходимо выполнить sudo update-grub
.
Ответ или решение
Для отображения меню GRUB при загрузке системы, необходимо внести некоторые изменения в файлы конфигурации GRUB и выполнить обновление конфигурации. Учтите, что изменения, вносимые в конфигурацию GRUB, нужно проводить крайне внимательно, так как они определяют, как будет загружаться ваш компьютер. Давайте детально разберем этот процесс с учетом предоставленной информации и тэгов.
Теория
GRUB (Grand Unified Bootloader) — это загрузчик, который нужен для загрузки операционных систем на вашем компьютере. Он играет ключевую роль в управлении загрузкой и позволяет пользователям выбирать из нескольких ядрышек или операционных систем на этапе загрузки. Обычно, GRUB скрыт, если в системе установлена только одна операционная система, или если конфигурация была ранее настроена на «скрытый» режим, как в вашем случае.
Основные параметры, управляющие начальным экраном GRUB, содержатся в файле /etc/default/grub
. Замеченные вами параметры GRUB_TIMEOUT_STYLE=hidden
и GRUB_TIMEOUT
определяют стиль отображения (скрытый или меню) и продолжительность отображения экрана меню соответственно.
Пример
Рассмотрим текущую содержимую конфигурацию в вашем файле /etc/default/grub
:
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2>/dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Как уже упомянуто в вашем вопросе, отсутствие строки GRUB_HIDDEN_TIMEOUT=0
предполагает, что вас интересует параметр GRUB_TIMEOUT_STYLE
. Давайте посмотрим, как можно изменить эту конфигурацию, чтобы отображать меню GRUB.
Применение
-
Редактирование файла конфигурации:
Откройте файл/etc/default/grub
в текстовом редакторе с повышенными привилегиями, например:sudo nano /etc/default/grub
Найдите строку
GRUB_TIMEOUT_STYLE
и измените её значение сhidden
наmenu
. Ваш файл должен выглядеть примерно так:GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2>/dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
Параметр
GRUB_TIMEOUT=10
определяет, сколько секунд будет отображаться меню до автозагрузки. Вы можете изменить его на большее значение, если считаете это нужным. -
Обновление конфигурации GRUB:
После изменений обязательно обновите конфигурацию GRUB, чтобы изменения вступили в силу.sudo update-grub
-
Перепроверьте установку GRUB:
Если у вас возникают проблемы с установкой GRUB, перепроверьте её. Для систем с устаревшей BIOS используйте:sudo grub-install /dev/sdX
Для систем с EFI, необходимо указать каталог, где смонтирован EFI System Partition:
sudo grub-install --efi-directory=/mnt/efi
В случае, если это потребуется, замените
/dev/sdX
на фактический диск, на котором установлен ваш загрузчик (например,/dev/sda
). -
Дополнительные параметры загрузки:
ПараметрыGRUB_CMDLINE_LINUX_DEFAULT
иGRUB_CMDLINE_LINUX
могут быть изменены для улучшения совместимости с аппаратными средствами, такими как графические карты (например, NVIDIA). В вашем случае параметрnomodeset
помогает избежать проблем с черным экраном при загрузке. Вы можете настроить эти параметры следующим образом:GRUB_CMDLINE_LINUX_DEFAULT="splash nomodeset" GRUB_CMDLINE_LINUX=""
-
Использование SysRq для восстановления системы:
Если у вас возникают проблемы с загрузкой системы, комбинации клавиш SysRq (напримерAlt+SysRq+r,e,i,s,u,b
) могут помочь безопасно перезагрузить систему, минуя жесткий сбой.
В результате, после выполнения всех шагов, вы должны увидеть меню GRUB при каждом запуске вашего компьютера, которое позволит вам выбрать версию ядра или другую операционную систему, если такая есть. Это делает процесс управления загрузкой более гибким и наглядным.