Вопрос или проблема
После установки двойной загрузки Windows 10 и Ubuntu 24.04 LTS на 9-летний ноутбук LENOVO экран выбора ОС не виден при загрузке – я вижу только черный экран – но меню активно, так как, перемещаясь вверх и вниз с помощью клавиш со стрелками, можно выбрать Windows или Ubuntu.
Просматривая различные посты, я уже пробовал разные настройки GRUB_CMDLINE_LINUX_DEFAULT, но без успеха. Ниже представлен последний вариант.
Не мог бы кто-нибудь помочь мне решить эту проблему?
Ниже я показываю детали /etc/default/grub, аппаратные компоненты и grub.cfg
С уважением,
ян
Ниже не закомментированные строки /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.modeset=1"
GRUB_CMDLINE_LINUX=""
Ниже характеристики аппаратного обеспечения
ЦП:
Информация: двухъядерный, модель: Intel Core i7-5500U, разрядность: 64, тип: MT MCP
smt: включено, архитектура: Broadwell, ревизия: 4, кэш: L1: 128 KiB, L2: 512 KiB, L3: 4 MiB
Скорость (МГц): в среднем: 1048, максимум: 2397, минимум/максимум: 500/3000, ядра: 1: 2397, 2: 798
3: 500, 4: 500 bogomips: 19155
Флаги: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
Графика:
Устройство-1: Intel HD Graphics 5500, производитель: Lenovo, драйвер: i915, версия: kernel
архитектура: Gen-8, порты: активные: HDMI-A-1,eDP-1 пустые: нет, bus-ID: 00:02.0
chip-ID: 8086:1616 class-ID: 0300
Устройство-2: Syntek Lenovo EasyCamera, драйвер: uvcvideo, тип: USB, ревизия: 2.0
скорость: 480 Мбит/с, линии: 1, bus-ID: 2-4:3, chip-ID: 174f:14e6, class-ID: 0e02
серийный номер: <filter>
Дисплей: wayland-сервер: X.org, версия: 1.21.1.11, с: Xwayland, версия: 23.2.6
композитный: gnome-shell, драйвер: X: загружен: modesetting, выгружен: fbdev, vesa
dri: iris, gpu: i915, display-ID: 0
Монитор-1: HDMI-A-1, модель: Philips 244E, серийный номер: <filter>, разрешение: 1920x1080
dpi: 92, размер: 531x299mm (20.91x11.77"), диагональ: 609mm (24"), режимы:
максимум: 1920x1080, минимум: 720x400
Монитор-2: eDP-1, модель: ChiMei InnoLux 0x1490, разрешение: 1366x768, dpi: 112
размер: 309x173mm (12.17x6.81"), диагональ: 354mm (13.9"), режимы: 1366x768
API: EGL, версия: 1.5, hw: drv: intel iris, платформы: устройство: 0 drv: iris
устройство: 1 drv: swrast, без поверхности: drv: iris, wayland: drv: iris, x11:
drv: iris, неактивен: gbm
API: OpenGL, версия: 4.6, совместимость-версия: 4.5, производитель: intel mesa, версия: 24.0.9-0ubuntu0.2
glx-версия: 1.4, прямой рендеринг: да, рендер: Mesa Intel HD Graphics 5500 (BDW
GT2), device-ID: 8086:1616, display-ID: :0.0
Ниже файл Grub.cfg
#
# НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ
#
# Он автоматически генерируется grub-mkconfig с использованием шаблонов
# из /etc/grub.d и настроек из /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${initrdfail}" = 2 ]; then
set initrdfail=
elif [ "${initrdfail}" = 1 ]; then
set next_entry="${prev_entry}"
set prev_entry=
save_env prev_entry
if [ "${next_entry}" ]; then
set initrdfail=2
fi
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function initrdfail {
if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
if [ -z "${initrdfail}" ]; then
set initrdfail=1
if [ -n "${boot_once}" ]; then
set prev_entry="${default}"
save_env prev_entry
fi
fi
save_env initrdfail
fi; fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=es_ES
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=0
# Резервный код скрытого времени ожидания на случай, если функция timeout_style недоступна.
elif sleep --interruptible 0 ; then
set timeout=0
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if [ ${grub_platform} != pc ]; then
set linux_gfx_mode=keep
elif hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-08d2dae6-1362-4061-b76b-2703197238c5' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
linux /boot/vmlinuz-6.8.0-49-generic root=UUID=08d2dae6-1362-4061-b76b-2703197238c5 ro quiet splash i915.modeset=1 $vt_handoff
initrd /boot/initrd.img-6.8.0-49-generic
}
submenu 'Расширенные параметры для Ubuntu' $menuentry_id_option 'gnulinux-advanced-08d2dae6-1362-4061-b76b-2703197238c5' {
menuentry 'Ubuntu, с Linux 6.8.0-49-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-49-generic-advanced-08d2dae6-1362-4061-b76b-2703197238c5' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
echo 'Загрузка Linux 6.8.0-49-generic ...'
linux /boot/vmlinuz-6.8.0-49-generic root=UUID=08d2dae6-1362-4061-b76b-2703197238c5 ro quiet splash i915.modeset=1 $vt_handoff
echo 'Загрузка начального ramdisk ...'
initrd /boot/initrd.img-6.8.0-49-generic
}
menuentry 'Ubuntu, с Linux 6.8.0-49-generic (режим восстановления)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-49-generic-recovery-08d2dae6-1362-4061-b76b-2703197238c5' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
echo 'Загрузка Linux 6.8.0-49-generic ...'
linux /boot/vmlinuz-6.8.0-49-generic root=UUID=08d2dae6-1362-4061-b76b-2703197238c5 ro recovery nomodeset dis_ucode_ldr
echo 'Загрузка начального ramdisk ...'
initrd /boot/initrd.img-6.8.0-49-generic
}
menuentry 'Ubuntu, с Linux 6.8.0-48-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-48-generic-advanced-08d2dae6-1362-4061-b76b-2703197238c5' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
echo 'Загрузка Linux 6.8.0-48-generic ...'
linux /boot/vmlinuz-6.8.0-48-generic root=UUID=08d2dae6-1362-4061-b76b-2703197238c5 ro quiet splash i915.modeset=1 $vt_handoff
echo 'Загрузка начального ramdisk ...'
initrd /boot/initrd.img-6.8.0-48-generic
}
menuentry 'Ubuntu, с Linux 6.8.0-48-generic (режим восстановления)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-48-generic-recovery-08d2dae6-1362-4061-b76b-2703197238c5' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
echo 'Загрузка Linux 6.8.0-48-generic ...'
linux /boot/vmlinuz-6.8.0-48-generic root=UUID=08d2dae6-1362-4061-b76b-2703197238c5 ro recovery nomodeset dis_ucode_ldr
echo 'Загрузка начального ramdisk ...'
initrd /boot/initrd.img-6.8.0-48-generic
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/10_linux_zfs ###
### END /etc/grub.d/10_linux_zfs ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Тест памяти (memtest86+x64.efi)" --class memtest $menuentry_id_option 'memtest86+' {
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
linux /boot/memtest86+x64.efi
}
menuentry 'Тест памяти (memtest86+x64.efi, последовательный консоль)' --class memtest $menuentry_id_option 'memtest86+-serial' {
insmod part_gpt
insmod ext2
set root="hd0,gpt5"
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 08d2dae6-1362-4061-b76b-2703197238c5
else
search --no-floppy --fs-uuid --set=root 08d2dae6-1362-4061-b76b-2703197238c5
fi
linux /boot/memtest86+x64.efi console=ttyS0,115200
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
insmod bli
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Диспетчер загрузки Windows (на /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-0695-10CF' {
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 0695-10CF
else
search --no-floppy --fs-uuid --set=root 0695-10CF
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
fwsetup --is-supported
if [ "$?" = 0 ]; then
menuentry 'Настройки микропрограммы UEFI' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
fi
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### BEGIN /etc/grub.d/40_custom ###
# Этот файл предоставляет простой способ добавить пользовательские записи в меню. Просто введите
# записи меню, которые вы хотите добавить, после этого комментария. Будьте осторожны, чтобы не изменить
# строку 'exec tail' выше.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###
.
Ответ или решение
Исчезновение меню выбора ОС при загрузке (черный экран)
Проблема, с которой вы столкнулись, является достаточно распространенной при установке системы двойной загрузки Windows и Ubuntu, особенно на старых машинах. В вашем случае, несмотря на то, что меню загрузки GRUB активно (можно перемещаться по пунктам с помощью стрелок), экраны не отображаются. Это может быть связано с неправильными настройками графической среды или конфигурации GRUB.
Анализ текущих настроек GRUB
Давайте рассмотрим ключевые параметры вашего конфигурационного файла /etc/default/grub
:
-
GRUB_TIMEOUT_STYLE=hidden: Это означает, что таймер загрузки не будет отображаться. При установке на 0, меню не будет видно, если не будет сгенерировано событие, например, нажатие клавиши.
-
GRUB_TIMEOUT=0: Отсутствие времени для выбора ОС может привести к тому, что система сразу загрузит по умолчанию Ubuntu без отображения меню.
-
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.modeset=1": Параметр
quiet splash
может скрывать информацию о загрузке, поэтому вместо логов, вы можете видеть лишь черный экран.
Рекомендации по исправлению проблемы
-
Изменение конфигурации GRUB:
Измените настройки вашего/etc/default/grub
для того, чтобы временно устранить параметры, вызывающие скрытие меню. Рекомендуется подправить его следующим образом:GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=10 GRUB_CMDLINE_LINUX_DEFAULT="i915.modeset=1"
- Установите
GRUB_TIMEOUT_STYLE=menu
, чтобы меню отображалось. - Установите
GRUB_TIMEOUT=10
, чтобы у вас было достаточно времени для выбора операционной системы.
- Установите
-
Обновление конфигурации GRUB: После внесения изменений в файл конфигурации, выполните команду:
sudo update-grub
-
Перезагрузка системы: После обновления конфигурации, перезагрузите ваш компьютер для проверки изменений.
Дополнительные шаги
Если проблема не исчезла, можно рассмотреть следующие действия:
-
Проверка параметров графического драйвера: Вы можете попробовать изменить
i915.modeset=1
наnomodeset
, если у вас возникли проблемы с графикой. Это может помочь в случае несовместимости вашего графического процессора с загружаемой графикой. -
Проверка подключения монитора: Если вы используете внешний монитор, убедитесь, что он подключен и настроен правильно. Иногда проблема может быть связана с определением основного дисплея.
-
Использование Live CD/USB для восстановления GRUB: Если никаких изменений не будет видно, используйте Live CD/USB позицию Ubuntu для запустки и восстановления GRUB, следуя тем же шагам обновления GRUB, после монтирования нужного раздела.
Заключение
Устранение черного экрана на этапе выбора ОС — это решение, которое может потребовать тестирования нескольких подходов. Правильная настройка конфигурации GRUB и проверка параметров вашего оборудования могут привести к желаемому результату. Если ни один из предложенных методов не сработал, возможно, стоит обратиться за помощью к специалистам или на форумах сообщества.