[Quote]

    puhpol
  • 2
  • Longevity: 10 years
  • Posts: 892
  • REPUTATION:75

    [+] [-]
Доброго времени господа.
Часто бывало так : Делаем картинку для сборки допустим с разрешением 1024х768, загружаемся с флешки , а BIOS не поддерживает такое разрешение.Или на оборот, делаем картинку 640х480 , загружаемся с флешки , картинку растягивает до безобразия.
Проблема в том что BIOS разных компьютеров имеет разное максимально возможное разрешение .
Что бы этого избежать достаточно добавить в menu.lst такие строки:
graphicsmode -1 640 && set GM=640 && echo 640 xres supported
graphicsmode -1 800 && set GM=800 && echo 800 xres supported
graphicsmode -1 1024 && set GM=1024 && echo 1024 xres supported
pause --wait=1
if "%GM%"=="1024" splashimage /boot/fon1024.bmp
if "%GM%"=="800" splashimage /boot/fon800.bmp
if "%GM%"=="640" splashimage /boot/fon640.bmp
Где /boot/fon640.bmp - путь к картинке в разрешении 640х480.
Соответственно в папке boot должны лежать три картинки в трех разрешениях.
ГРУБ сам при загрузке выяснит максимально возможное разрешение BIOS, и загрузит нужную картинку.

[Quote]

    Eagle123
  • 205
  • Longevity: 9 years
  • Posts: 126
  • REPUTATION:7

    [+] [-]
Если я ничего не путаю, мне такой способ не понравился потому, что Груб начинает долго грузиться и перебирает (применяет) все подряд разрешения... Но да, зато выставит лучшее доступное разрешение.

[Quote]

    волчара
  • 253
  • Longevity: 9 years
  • Posts: 598
  • REPUTATION:45

    [+] [-]
  • Location: Омск
Наиболее оптимальное разрешение картинки 800х600, по крайней мере я так всегда делаю, пробовал 1024х768 так на некоторых компах(старых) были проблемы с буквами в меню

[Quote]

    Kupr_Soft
  • 26917
  • Longevity: 3 years 11 months
  • Posts: 30
  • REPUTATION:16

    [+] [-]
  • Location: Питер
Давеча когда ковырялся в теме https://usbtor.ru/viewtopic.php?t=26 и затем посмотрел эту тему...
нашёл весьма интересные решения...
и возникла мысль сделать универсальный вариант меню, для Текстового и Графического режима:
из отличий у них, разная кодировка самого файла меню
Графический UTF-8
Текстовой OEM-866

и использутся разные шрифты (для русского языка)
Графический rus.gz (unifont)
Текстовой 8x16_866.psf

Выглядит это так:
есть начальное (настроечное) Menu.lst
(у меня запуск груба идёт из под DOSa и поэтому этот файлик лежит прямо в корне что-бы Grub.exe его подхватывал автоматом)
это меню в текстовом режиме, потому что это самый работоспособный вариант!
в этом начальном меню, выбор из двух пунктов
Графика или Текст (с автовыбором графики по таймауту) Кодировка OEM-866

вот в принципе его код с комментариями:

#Надпись с версией флешки (поверх родной надписи Grub4Dos)
write (md)0x220+1 !BAT\necho -n -P:0000 $[0107] Kupr_Soft Flash 5.0 (30.01.2021)                               %disk% \0 && initscript (md)0x220+1
#Русский шрифт для текстового меню
/Boot/textfont /Boot/8x16_866.psf
#Автоматический выбор меню по умолчанию
timeout 15
default 0
# pause --wait=15
#-----------------------------------------------------------------------
title Запуск Графического режима меню \n * \n * \n *
#Установка графического режима перебором, с установкой переменной GM и сообщением об этом
graphicsmode -1 640 && set GM=640 && echo 640x480 Установлено
graphicsmode -1 800 && set GM=800 && echo 800x600 Установлено
graphicsmode -1 1024 && set GM=1024 && echo 1024x768 Установлено
#Проверка переменной для загрузка картинки под соответствующее разрешение
if "%GM%"=="1024" splashimage /boot/splash/menu1024.bmp
if "%GM%"=="800" splashimage /boot/splash/menu800.bmp
if "%GM%"=="640" splashimage /boot/splash/menu640.bmp
#Установка переменной для понимая какой режим меню выбран
set MOD=GRF
#Выбор шрифта с кирилицей
#Тонкий шрифт
#font (hd0,0)/boot/unifont.hex.gz
#Обычный шрифт
font (hd0,0)/boot/rus.gz
configfile (hd0,0)/boot/menus/MENU.LST
#-----------------------------------------------------------------------
title Запуск Текстового режима меню \n * \n * \n *
#Установка расцветки меню
color blue/green yellow/green yellow/green green/black
## цвет обрамления меню
color border=0xEE11EE
#Установка переменной для понимая какой режим меню выбран
set MOD=TXT
configfile (hd0,0)/boot/menus/MENU.LST
всё манипуляции с режимом, картинкой и шрифтом проходят уже при выборе меню.
и всего ОДИН раз за время работы Grub4Dos. Это позволяет избежать постоянных задержек при переходах по подменю Груба если графика выставляется внутри каждого меню.
(да, получается что на ВСЁ меню и его подменю у Вас только ОДНА одинаковая картинка, но лично меня это устраивает)
(если кому-то захочется иметь в каждом рабочем меню (или подменю) свою картинку то просто в самом начале этого меню (или подменю) вставьте
#Проверка переменной для загрузка картинки под соответствующее разрешение
if "%GM%"=="1024" splashimage /boot/splash/menu1024.bmp
if "%GM%"=="800" splashimage /boot/splash/menu800.bmp
if "%GM%"=="640" splashimage /boot/splash/menu640.bmp
только прописав туда нужную вам картинку.
Рабочее меню (и подменю) Кодировка UTF-8

а теперь уже кусок непосредственно рабочего меню:

#Надпись с версией флешки (поверх родной надписи Grub4Dos)
write (md)0x220+1 !BAT\necho -n -P:0000 $[0107] Kupr_Soft Flash 5.0 (30.01.2021)                               %disk% \0 && initscript (md)0x220+1
#Таймаут выбора меню по умолчанию
timeout 30
#Пункт меню которое выбирается по умолчанию
default 1
#-----------------------------------------------------------------------------------------------
#---------------------------------
#Установка переменных для отображения меню (UTF-8 для графического режима или OEM-866 для тестового)
if "%MOD%"=="GRF" && set title3 Acronis, Paragon, R-Drive ==> && set com3=Программы для работы с жёсткими дисками, разделами и т.п.
if "%MOD%"=="TXT" && set title3 Acronis, Paragon, R-Drive ==> && set com3=�ணࠬ�� ��� ࠡ��� � ���⪨�� ��᪠��, ࠧ������ � �.�.
if "%MOD%"=="GRF" && set title4 Hiren's BootCD DOS Русский (15.2) && set com4=Старенький загрузочный DOS диск с большим набором программ и утилит
if "%MOD%"=="TXT" && set title4 Hiren's BootCD DOS ���᪨� (15.2) && set com4=���७쪨� ����㧮���� DOS ���� � ����訬 ����஬ �ணࠬ� � �⨫��
if "%MOD%"=="GRF" && set title5 Memtest86 v4.3.7 [PassMark] (Тест Памяти) && set com5=Tecт памяти Memtest86 v4.3.7 (PassMark)
if "%MOD%"=="TXT" && set title5 Memtest86 v4.3.7 [PassMark] (���� ������) && set com5=Tec� ������ Memtest86 v4.3.7 (PassMark)
if "%MOD%"=="GRF" && set title13 Other Boot (XP, Vista, Console, ResetPasswords) ==> && set com13=Несколько вариантов загрузок... && set com131=Сброс паролей и т.п.
if "%MOD%"=="TXT" && set title13 Other Boot (XP, Vista, Console, ResetPasswords) ==> && set com13=��᪮�쪮 ��ਠ�⮢ ����㧮�... && set com131=����� ��஫�� � �.�.
#---------------------------------
title %title3%  \n %com3%
configfile (hd0,0)/boot/menus/ACRONIS_MENU.LST
#---------------------------------
title %title4%  \n %com4%
map --read-only /Boot/IMA/HBCD_152_Rus.ima (fd0)
map --floppies=1
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
#---------------------------------
title %title5%  \n %com5%
kernel (hd0,0)/Boot/IMA/Memtest86-4.3.7.bin
#---------------------------------
title %title13%  \n %com13% \n %com131%
configfile (hd0,0)/boot/menus/OTHER_BOOT.LST
#---------------------------------
Теперь объясняю:
сначала устанавливаются все переменные для отображения меню (это первый блок)
если графика то переменная титле1-2-3 будет в таком тексте (кодировке) и комментарии com1-2-3 вот в таком тексте (кодировке)
для простоты я сначала сделал всё меню на UTF-8, но только не заполняя строчку для OEM-866
if "%MOD%"=="GRF" && set title1 Установка Microsoft Windows 10 x86 x64 (20H2)19042.631 && set com1=Чистая официальная от Microsoft версия 10 x86 x64 (20H2)19042.631
if "%MOD%"=="TXT"
затем открыл два редактора рядом один в UTF-8 другой в OEM-866
и копировал верхнюю строчку из первого и вставлял во второй
(получалось что весь тест был крякозяблой кроме сопированной второй строки
if "%MOD%"=="GRF" && set title1 ╨г╤Б╤В╨░╨╜╨╛╨▓╨║╨░ Microsoft Windows 10 x86 x64 (20H2)19042.631 && set com1=╨з╨╕╤Б╤В╨░╤П ╨╛╤Д╨╕╤Ж╨╕╨░╨╗╤М╨╜╨░╤П ╨╛╤В Microsoft ╨▓╨╡╤А╤Б╨╕╤П 10 x86 x64 (20H2)19042.631
if "%MOD%"=="TXT" && set title1 Установка Microsoft Windows 10 x86 x64 (20H2)19042.631 && set com1=Чистая официальная от Microsoft версия 10 x86 x64 (20H2)19042.631
после всех копирований, файл сохраняем переведя обратно в кодировку UTF-8.
Gосле того как ВСЕ переменные title1-2-3 и т.д. и ВСЕ переменные для комментов com1-2-3 выставлены
уже следует блок меню, в котором эти переменные подставляются... и собственно говоря работают =)
Получается в итоге, грузится груб с текстовым меню (везде работает) затем можно выбрать как работать дальше
работает графический?
ок он автоопределит разрешение и ОДИН раз подождём прогрузки шрифтов и картинок.
Можно работать.
Графический режим работает некорректно? перезагрузаемся и выбираем текстовой режим.
Можно работать.
p.s. Возможно где-то тут есть подводные камни о которых я не знаю, либо это можно сделать как-то по другому...


Display posts:    

Current time is: 13-Jan 00:56

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum