LINUX.ORG.RU

Установил GRUB UEFI, вижу 2 ошибки: error: no server specified и error: no suitable video mode found

 , , ,


0

1

Всем привет.

Обновил матринскую плату и решил всё таки перейти на UEFI загрузку Убунты.
Конвертнул диск в GPT. Создал EFI раздел. установил на него груб командой:

grub-install --target=x86_64-efi /dev/sdb --efi-directory=/boot/efi --boot-directory=/boot

и получил ответ

Выполняется установка для платформы x86_64-efi.
Установка завершена. Ошибок нет.

далее сделал update-grub2 и на всякий случай делал уже grub-mkconfig -o /boot/grub/grub.conf

В итоге загрузка через UEFI происходит и Linux загружается, но в самом начален сразу перед grub меню на экране 2 строки:

error: no server specified
error: no suitable video mode found

которые сами пропадаюи и идёт нормальная загрузка.
Не могу от них избавиться.

/etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX="biosdevname=0 acpi=force"
GRUB_DISABLE_OS_PROBER=true

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=1024x768
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"



Последнее исправление: Spider55 (всего исправлений: 1)

бгг. я как купил первую материнку с уефи, сидел ещё под легаси-загрузкой лет пять. ещё не самый тормоз, оказывается.

anonymous
()
Ответ на: комментарий от anonymous

в новых материнках с ним, например, resize BAR не включается.

Людям, которые молятся на технологии восьмидесятых, это не нужно. Я вообще не очень понимаю, что они делают на форуме про Linux — ОС, в которой традиционно кладётся болт на обратную совместимость и всякое legacy. Про MBR и разметку DOS вообще смешно, поскольку они просто технически ущербны.

anonymous
()
Ответ на: комментарий от V1KT0P
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /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='hd1,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt4 --hint-efi=hd1,gpt4 --hint-baremetal=ahci1,gpt4  1b824c1c-67c5-4c80-8a6f-cc8082580039
else
  search --no-floppy --fs-uuid --set=root 1b824c1c-67c5-4c80-8a6f-cc8082580039
fi
    font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
  set gfxmode=1024x768
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=ru_RU
  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
  # Fallback hidden-timeout code in case the timeout_style feature is
  # unavailable.
  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
}
set linux_gfx_mode=keep
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1b824c1c-67c5-4c80-8a6f-cc8082580039' {
        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='hd1,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  96973bfd-c81f-40a2-bbe9-3a39ded2a7ac
        else
          search --no-floppy --fs-uuid --set=root 96973bfd-c81f-40a2-bbe9-3a39ded2a7ac
        fi
        linux   /vmlinuz-5.15.0-130-generic root=UUID=1b824c1c-67c5-4c80-8a6f-cc8082580039 ro biosdevname=0 acpi=force
        initrd  /initrd.img-5.15.0-130-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-1b824c1c-67c5-4c80-8a6f-cc8082580039' {
        menuentry 'Ubuntu, with Linux 5.15.0-130-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-130-generic-advanced-1b824c1c-67c5-4c80-8a6f-cc8082580039' {
                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='hd1,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  96973bfd-c81f-40a2-bbe9-3a39ded2a7ac
                else
                  search --no-floppy --fs-uuid --set=root 96973bfd-c81f-40a2-bbe9-3a39ded2a7ac
                fi
                echo    'Loading Linux 5.15.0-130-generic ...'
                linux   /vmlinuz-5.15.0-130-generic root=UUID=1b824c1c-67c5-4c80-8a6f-cc8082580039 ro biosdevname=0 acpi=force
                echo    'Loading initial ramdisk ...'
                initrd  /initrd.img-5.15.0-130-generic
        }
        menuentry 'Ubuntu, with Linux 5.15.0-130-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-130-generic-recovery-1b824c1c-67c5-4c80-8a6f-cc8082580039' {
                recordfail
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio;
fi
                insmod part_gpt
                insmod ext2
                set root='hd1,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  96973bfd-c81f-40a2-bbe9-3a39ded2a7ac
                else
                  search --no-floppy --fs-uuid --set=root 96973bfd-c81f-40a2-bbe9-3a39ded2a7ac
                fi
                echo    'Loading Linux 5.15.0-130-generic ...'
                linux   /vmlinuz-5.15.0-130-generic root=UUID=1b824c1c-67c5-4c80-8a6f-cc8082580039 ro recovery nomodeset dis_ucode_ldr biosdevname=0 acpi=force
                echo    'Loading initial ramdisk ...'
                initrd  /initrd.img-5.15.0-130-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+ ###
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
        fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "FreeDOS" {
  linux16 /boot/memdisk
  initrd16 /boot/balder10.img
}
### 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 ###
Spider55
() автор топика
Ответ на: комментарий от Spider55

Что-то не пойму где переключается вот эта часть, возможно не та ветка у тебя выполняется:

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
}

Также попробуй включить текстовой режим:

# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console
V1KT0P ★★
()
Ответ на: комментарий от usermod

По мотивам https://wiki.debian.org/EFIStub
отказался от grub и загрузился без него. а т.к. у меня нет необходимости в меню загрузки, этого мне хватает. Но даже тут как я понял можно организовать меню через кастомный stub.

в итоге решение сейчас такое:
/etc/kernel/postinst.d/zz-update-efistub

#!/bin/bash
set -e

CMD_LINE="biosdevname=0 acpi=force"

version="$1"
bootdir=/boot

ROOT_DEV=$(blkid -L root)
ROOT=$(blkid $ROOT_DEV -o export -s UUID -o value)

dracut -q --force --uefi --kernel-image $bootdir/vmlinuz-$version --uefi-stub=/usr/lib/systemd/boot/efi/linuxx64.efi.stub --kernel-cmdline="root=UUID=$ROOT ro $CMD_LINE" /boot/efi/EFI/ubuntu/linux-$version.efi "$version"


ЗЫ. С blkid мне кажется не очень изящным решение, но оно работает. dracut и сам по себе не плохой cmdline генерит, но если надо добавить к нему свои параметры, то они его затирают. Как сделать append я не допёр...

Spider55
() автор топика
Ответ на: комментарий от Spider55

С blkid мне кажется не очень изящным решение,

Это чем оно не изящно?

Разве что упаковать все в одну строчку типа:

ROOT=$(blkid `blkid -L root`  -o export -s UUID -o value);

Но и это на самом деле переоптимизация, просто для прокачки себя, любимого.

usermod
()
Ответ на: комментарий от usermod

В плане что dracut и сам изначально правильный рут подсовывал а я его перетераю

Ещё я видал что есть некий /dev/gpt-auto-root но он почему то не работает. И где описано как его готовить я не нашел

Spider55
() автор топика
Последнее исправление: Spider55 (всего исправлений: 1)
Ответ на: комментарий от Spider55
~
> ll /dev/gpt-auto-root
lrwxrwxrwx 1 root root 9 2025-01-16 20:02:50 /dev/gpt-auto-root -> nvme0n1p2
~
> systemctl status dev-gpt\\x2dauto\\x2droot.device 
● dev-gpt\x2dauto\x2droot.device - Samsung SSD 970 EVO Plus 2TB root
    Follows: unit currently follows state of sys-devices-pci0000:00-0000:00:01.1-0000:01:00.0-nvme-nvme0-nvme0n1-nvme0n1p2.device
     Loaded: loaded
     Active: active (plugged) since Thu 2025-01-16 20:02:50 +05; 2h 25min ago
 Invocation: 9f78ec0859ad4387b7ea608d11cb3e16
     Device: /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/nvme/nvme0/nvme0n1/nvme0n1p2

Возможно, связано с https://uapi-group.org/specifications/specs/discoverable_partitions_specification/

anonymous
()