[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Доброго времени, Дамы и Господа.
Нашел на днях интересную статью. В которой описана возможность создания автоматического меню в grub4dos.
Сайт на английском языке СТАТЬЯ
Автоматическое меню, что это значит:
В меню привязываем строку загрузки программы к файлу. При загрузке ГРУБ проверяет наличие файла и, если он есть, показывает строку загрузки программы. Если файла нет, то строку загрузки мы с вами не увидим.
На этом методе основана сборка PUH Edition v2 (конструктор USB v2)
Как сделать:
Все достаточно просто. С версии grub4dos 2012 года, автоматическое меню можно сделать командами самого загрузчика, не используя каких-нибудь дополнительных утилит. Надо в menu.lst прописать имя файла, при наличии которого ГРУБ покажет строку загрузки программы.
Для примера пропишем загрузку сборки HBCD15.1 Russian by lexapass.
Сама сборка при извлечении из образа в корень носителя ,находится в одной папке и имеет свой menu.lst.Загрузочную строку мы с вами привяжем к файлу menu.lst, лежащему в папке "HBCD" в корне носителя. Авто меню будет выглядеть так:
iftitle [if exist /HBCD/menu.lst] HBCD15.1 Russian by lexapass
configfile /HBCD/menu.lst

В место title пишем iftitle и в квадратных скобках после if exist указываем путь к файлу при наличии которого в меню появиться загрузочная строка программы. ВАЖНО! Что бы после открывающей скобки [ и перед закрывающей ] не должно быть пробелов. В противном случае работать не будет.
Дальше все как всегда:
HBCD15.1 Russian by lexapass - то, что мы обычно пишем после title, то есть, имя программы.
configfile /HBCD/menu.lst - команда загрузчику.
Надеюсь, смысл понятен. Авто меню для загрузки образа "имя образа.iso", лежащего в папке "имя папки" будет выглядеть так:
iftitle [if exist /имя папки/имя файла.iso] Имя программы
map --mem /имя папки/имя файла.iso (hd32)
map --hook
chainloader (hd32)
Важно! На файловой системе NTFS авто меню с параметром [if exist] можно привязать и к папке, и к файлу. А на FAT32 только к файлу!

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет
  • Сообщений: 1131
  • Репутация:77

    [+] [-]
  • Откуда: Ростов-на-Дону
Puhpol, если между iftitle и [, а также ] и названием меню не поставить пробел, то не заработает. У тебя написано, что пробелов быть не должно. Подправь. (iftitle [if exist /menus/OS.lst] Установка OS)

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
105ВАЖНО! Что бы после и перед квадратной скобкой не было пробелов. В противном случае работать не будет.
vovan19822, имеется в виду следующее: после открывающей скобки [ и перед закрывающей ] не должно быть пробелов. С внешней стороны должно быть минимум по одному пробелу.
Описание поправил.-Кроме того, grub4dos понимает линуксовую команду LS (существует=true, отсутствует=false), и по моим наблюдениям даже на FAT32 обнаруживает существование папки. Поэтому считаю самым универсальным использование
iftitle [ls /path/to/something] name
Сам принцип iftitle'а состоит в том, чтобы по результату логической функции, записанной в квадратных скобках, отображать пункт меню - если истина (true), то показать; если ложь (false), то не создавать пункт для выбора.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет
  • Сообщений: 1131
  • Репутация:77

    [+] [-]
  • Откуда: Ростов-на-Дону
9355
105ВАЖНО! Что бы после и перед квадратной скобкой не было пробелов. В противном случае работать не будет.
vovan19822, имеется в виду следующее: после открывающей скобки [ и перед закрывающей ] не должно быть пробелов. С внешней стороны должно быть минимум по одному пробелу.
Описание поправил.-Кроме того, grub4dos понимает линуксовую команду LS (существует=true, отсутствует=false), и по моим наблюдениям даже на FAT32 обнаруживает существование папки. Поэтому считаю самым универсальным использование
iftitle [ls /path/to/something] name
Сам принцип iftitle'а состоит в том, чтобы по результату логической функции, записанной в квадратных скобках, отображать пункт меню - если истина (true), то показать; если ложь (false), то не создавать пункт для выбора.
Приветствую SunOK. Спасибо за пояснение. А то в описании не разобрался. Сам батники не пишу, но читаю. так что на счет true и false разобрался, но все равно СПАСИБО.
Есть вопрос не по теме. С какой целью Вы используете загрузчик bootmgr, а затем прикручиваете ему костыли. Какие это дает преимущества? Ночью потратил, три часа чтобы перегнать grub4dos меню в bootmgr и кроме, как геморрой не получил. Я так понимаю - это из-за UEFI?
Все, разобрался, bootmgr грузится под любой конфигурацией железа?

[Цитировать]

    Policai
  • 14677
  • Стаж: 8 лет 1 месяц
  • Сообщений: 64
  • Репутация:0

    [+] [-]
Сори если чуть не по теме. Возник такой вопрос: Возможно ли из меню груба давать команду на замену файлов?
Конкретно есть в папке boot допустим 3 файла с именами х1,х2,х3 без расширения.. Задача запустить из груба батник чтоб он из другой папки на том же носителе переместил одноимённые файлы х1,х2,х3 с заменой...
Это выполнимо?

[Цитировать]

    SunOK
  • 9
  • Стаж: 10 лет
  • Сообщений: 352
  • Репутация:32

    [+] [-]
  • Откуда: Україна, Перлина Поділля
Policai, теоретически можно переименовывать файлы на носителе с FAT-разделом. Но спрашивающий не отписался, а у меня еще не нашлось времени попробовать ah

[Цитировать]

    Joker-2013
  • 1039
  • Стаж: 9 лет 5 месяцев
  • Сообщений: 2053
  • Репутация:120

    [+] [-]
  • Откуда: из прошлого
распаковал bg.lzma
есть одноименная утилита распаковки от Игоря Павлова
При этом, его архиватор не умеет распаковывать...

[Цитировать]

    BalAngel
  • 647
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 257
  • Репутация:14

    [+] [-]
есть одноименная утилита распаковки от Игоря Павлова
Easy7zip


Последний раз редактировалось: BalAngel (2017-01-06 11:48), всего редактировалось 2 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
34887НАШЕЛ онлайновый UTF-8 decoder/encoder
hex decoder
34887Самый простой способ получить китайскую кодировку символов UTF8
UTF8 - это универсальная кодировка, она не может быть ни китайской, ни русской.
И зачем такие сложности, просто делайте батник в UTF8 , и пишите вместо
"\x20\x20\xD0\x9A\xD0\xBE\xD0\xBC\xD0\xB0\xD0\xBD\xD0\xB4\xD0\xBD\xD0\xB0\xD1\x8F\x20\xD1\x81\xD1\x82\xD1\x80\xD0\xBE\xD0\xBA\xD0\xB0" "  Командная строка" .

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
34914
Батник не простой, а для создания динамически автоматического меню и китайцы "почему-то" мучаются и пишут:
echo -e title \xE5\x90\xAF\xE5\x8A\xA8\x20\x20%~n1 >> (md)0x23000+0x10
Иначе в записи меню - пустые строки, даже не крякозябры
А если так:
echo  title Cтарт   %~n1 >> (md)0x23000+0x10

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2584
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
34963Отображается только Resource Manager, кириллица игнорируется
Попробуйте в самый конец menu (после всех команд, с отступом в одну пустую строку) забить этот код:
0030:00007CC6C6CED6E6C6C6C67C00000000
004D:0000C6EEFEFED6C6C6C6C6C600000000
0054:00007E7E5A1818181818183C00000000
0056:0000C6C6C6C6C6C6C66C381000000000
0057:0000C6C6C6C6D6D6D6FEEE6C00000000
0058:0000C6C66C7C38387C6CC6C600000000
0059:0000666666663C181818183C00000000
005A:0000FEC6860C183060C2C6FE00000000
006D:0000000000ECFED6D6D6D6C600000000
0076:0000000000C6C6C6C6C66C3800000000
0077:0000000000C6C6D6D6D6FE6C00000000
0078:0000000000C66C3838386CC600000000
007C:00001818181818181818181800000000
0401:6C00FE6662687868606266FE00000000
0410:00001E3666C6C6FEC6C6C6C600000000
0411:0000FE6260607C66666666FC00000000
0412:0000FC6666667C66666666FC00000000
0413:0000FE6662606060606060F000000000
0414:00001E3666666666666666FFC3810000
0415:0000FE6662687868606266FE00000000
0416:0000DBDB5A5A7E7E5ADBDBDB00000000
0417:00007CC606063C060606C67C00000000
0418:0000C6C6C6CEDEF6E6C6C6C600000000
0419:6C38C6C6C6CEDEF6E6C6C6C600000000
041A:0000E6666C6C78786C6C66E600000000
041B:00001F3666666666666666CF00000000
041C:0000C6EEFEFED6C6C6C6C6C600000000
041D:0000C6C6C6C6FEC6C6C6C6C600000000
041E:00007CC6C6C6C6C6C6C6C67C00000000
041F:0000FEC6C6C6C6C6C6C6C6C600000000
0420:0000FC666666667C606060F000000000
0421:00007CC6C6C0C0C0C0C2C67C00000000
0422:0000FFDB991818181818183C00000000
0423:0000C6C6C6C6C67E0606C67C00000000
0424:00007EDBDBDBDBDBDB7E183C00000000
0425:0000C6C66C7C38387C6CC6C600000000
0426:0000C6C6C6C6C6C6C6C6C6FF03030000
0427:0000C6C6C6C6C67E0606060600000000
0428:0000D6D6D6D6D6D6D6D6D6FE00000000
0429:0000D6D6D6D6D6D6D6D6D6FE03030000
042A:0000F8F0B0303E333333337E00000000
042B:0000C3C3C3C3F3DBDBDBDBF300000000
042C:0000F06060607C66666666FC00000000
042D:00007CC606263E260606C67C00000000
042E:0000CEDBDBDBFBDBDBDBDBCE00000000
042F:00003F6666663E3E666666E700000000
0430:0000000000780C7CCCCCCC7600000000
0431:0002067CC0C0FCC6C6C6C67C00000000
0432:0000000000FC66667C6666FC00000000
0433:0000000000FE6262606060F000000000
0434:00000000001E3666666666FFC3C30000
0435:00000000007CC6C6FEC0C67C00000000
0436:0000000000D6D6547C54D6D600000000
0437:00000000007CC6063C06C67C00000000
0438:0000000000C6C6CED6E6C6C600000000
0439:0000006C38C6C6CED6E6C6C600000000
043A:0000000000E66C78786C66E600000000
043B:00000000001E3666666666E600000000
043C:0000000000C6EEFEFED6D6C600000000
043D:0000000000C6C6C6FEC6C6C600000000
043E:00000000007CC6C6C6C6C67C00000000
043F:0000000000FEC6C6C6C6C6C600000000
0440:0000000000DC66666666667C6060F000
0441:00000000007CC6C0C0C0C67C00000000
0442:00000000007E5A181818183C00000000
0443:0000000000C6C6C6C6C67E0606C67C00
0444:0000003C187EDBDBDBDBDB7E18183C00
0445:0000000000C66C3838386CC600000000
0446:0000000000C6C6C6C6C6C6FF03030000
0447:0000000000C6C6C6C67E060600000000
0448:0000000000D6D6D6D6D6D6FE00000000
0449:0000000000D6D6D6D6D6D6FE03030000
044A:0000000000F8B0B03E33337E00000000
044B:0000000000C6C6C6F6DEDEF600000000
044C:0000000000F060607C6666FC00000000
044D:00000000007CC6063E06C67C00000000
044E:0000000000CEDBDBFBDBDBCE00000000
044F:00000000007FC6C67E3666E700000000
0451:0000006C007CC6C6FCC0C67C00000000

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
34967Похожий концевой код для китайцев я видел
Это не "концевой код" , а фонт для поддержки спец. символов в utf8 , например, кириллицы.
Встроенный в g4d фонт поддерживает только латиницу.
Его добавление в конец lst файла эквивалентно команде
font /boot/grub/font
Где font - это и есть "концевой код " .

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
34977Не видит кирилицы
Редактор шрифтов.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
34977Не видит кирилицы
Проверил, ищи баги у себя, смотри демку.

[Цитировать]

    BalAngel
  • 647
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 257
  • Репутация:14

    [+] [-]
Предыдущие свои сообщения почистил, свел в следующее:

(GRUB automatic menu guide ISO, IMG, IMA, local system, improve the resource manager, support text view 2014-12-9)

После поиска нашел на китайском форуме bbs.wuyou (форум "не беспокойтесь"):
(GRUB automatic menu guide ISO, IMG, IMA, local system, improve the resource manager, support text view 2014-12-9)
GRUB全自动菜单引导ISO,IMG,IMA,本地系统,完善资源管理器,支持文本查看(2014-12-9)
Меню на китайском

в батнике automenu:

...
::Get the menu with the bd variable
echo -e \x25bootdev\x25 | set menudev=
echo -e debug off\ndefault 0\ntimeout 60\ngfxmenu %menudev%/GRUB/main.msg\nsplashimage %menudev%/GRUB/bg.lzma\nfont %menudev%/GRUB/ufont.gz\n > (md)0x23000+0x10
.......
:iso
echo -e title \xE5\x90\xAF\xE5\x8A\xA8\x20\x20%~n1 >> (md)0x23000+0x10
echo -e clear
...
выделено - закодированные иероглифы, как узнать какие?
НАШЕЛ онлайновый UTF-8 decoder/encoder mothereff
GRUB\x20\x20\xE5\x91\xBD\xE4\xBB\xA4\xE8\xA1\x8C
это:
GRUB  命令行
Еще у китайцев (гугл переводчик без редактирования),
Самый простой способ получить китайскую кодировку символов UTF8:
1. Создайте новый текстовый файл, который сразу же после ввода пять пробелов для ввода китайских иероглифов вы хотите конвертировать, не нажимайте Enter
2. Сохранить как файл формата кодирования UTF8
3. Откройте файл с помощью только WinHex, вы можете увидеть следующее содержание:
[code]  offset 0   1   2   3    4   5  6  7   8    9  a   b   c
           EF BB BF 20 20 20 20 E6 B5 8B E8 AF 95
4. Пасту можно получить непосредственно с локальными значениями из \ XE6 \ XB5 \ x8B \ X Е8 \ XAF \ Х95
перевод на английский куда лучше -
Гугл перевод короткого предложения 得到汉字的UTF8编码的简单方法:
Самый простой способ получить китайскую кодировку символов UTF8:
Get the simple method of UTF8 encoding of Chinese characters:
С английским переводом ничего не надо делать
Обычный синтаксис китайского:
得到 (сказуемое) 汉字的 (的 послелог - соответствует родительному падежу) UTF8编码的 (..) 简单方法 (определение+подлежащее)
Батник не простой, а для создания динамически автоматического меню и китайцы "почему-то" мучаются и пишут:
echo -e title \xE5\x90\xAF\xE5\x8A\xA8\x20\x20%~n1 >> (md)0x23000+0x10
Иначе в записи меню - пустые строки, даже не крякозябры
Сам батник в кодировке UTF-8 w/o BOM и китайские коментарии перевел.
oleg_krsk писал:
"Есть проще вариант от китайцев с бантиком, давно им пользуюсь в грубе, грузит вообще все и не нужно мудренных названий в менюшке писать. Так же подхватыет по умолчанию образы..."
Жаль конкретно не написал, как батник называется, перевёл или на английском?
Я сейчас рассматриваю automenu (заканчивается 2 года назад), есть ещё allrun ..
Там еще есть батники, правил их, удалил файл полных шрифтов, дал ссылку на fonts, китайские показывают, а кириллицу, и не только, нет.
Помучался, хватит мазохизма, не могу отыскать ошибки
Переведу на английский, забью на это
Всем спасибо помогающим

Страница 1 из 2


Показать сообщения:    

Текущее время: 03-Дек 20:13

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы