5 февраля 2012 г.

Редактирование конфигурационного файла menu.lst [Configure Grub4Dos]

   Статья изменена 02.02.2013: 
   Добавлен пример загрузки WinPE на примере HBCD. Поправлены ссылки.
    У нас уже есть флешка с записанным на нее загрузчком Grub4Dos. Но мы не знаем как с ним работать. На самом деле это не так трудно. И зачастую загрузка той или иной загрузочной программы сводиться лишь к редактированию пункта ее загрузки в menu.lst.
    Я надеюсь, что вы все-таки, хоть как то, но ознакомились с Руководством по Grub4dos.
    Первое что мы сделаем, это избавимся от menu.lst, т.е. очистим полностью его содержимое =). В дальнейшем будет лучше самому добавить то что надо, и так как тебе надо, и не лицезреть это разноцветное меню.
    Потом добавим наиболее распространенные пункты меню, такие как перезагрузка, выключение, загрузка с флоппи-диска, загрузка с CD-ROM, загрузка с жесткого диска, и загрузка Windows.
    Затем познакомимся с запуском программ из загрузочных образов на примере небольших утилит предназначенных для тестирования RAM и HDD на предмет неисправностей, а именно Memtest86+ и Victoria. Узнаем как грузиться из .ISO образа. Покажу как загрузить WinPE (на примере Hiren's BootCD 15.1)
    Все операции по редактированию menu.lst будем проводить в обычном текстовом редакторе, я предпочитаю AkelPad, чего и вам советую (будет меньше проблем с кодировкой, и переносом строк в Unix, нежели со стандартным "Блокнотом" Windows).

    А теперь обо всем подробней.

1. Откроем через AkelPad menu.lst и удаляем все содержимое.
2. Добавим пункт меню "Загрузка с жесткого диска HD0":
Примечание: если выбрать этот пункт, то скорей всего произойдет загрузка нашей флешки, так и должно быть, но многое зависит от вашего BIOS. Подробнее
title Boot HDD0
chainloader (hd0)+1
rootnoverify (hd0)
3. Добавим аналогично пункт меню "Загрузка с жесткого диска HD1":
title Boot HDD1
chainloader (hd1)+1
rootnoverify (hd1)
4. Добавим пункт меню "Загрузка с CD0":
title Boot CD0
cdrom --init
map --hook
chainloader (cd0)
5. Ну и просто, вдруг понадобится "Загрузка с floppy":
title Boot Floppy
chainloader (fd0)+1
rootnoverify (fd0)
6. Добавим пункт меню "Перезагрузка ПК":
title Reboot
reboot
7. Добавим пункт меню "Выключение ПК":
title Shutdown
halt
8. Добавим пункт меню "Поиск и загрузка Windows NT/2000/XP":

title Find and load NTLDR of Windows NT/2K/XP
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
8. Добавим пункт меню "Поиск и загрузка Windows Vista/7/8":

title Find and load BOOTMGR of Windows VISTA/7/8
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
9.  Разместим, как удобней. Посмотрим что получилось:

10. Проверим наше меню в деле. Запускаем MobaLiveCD. (п.13). Видим примерно следующее:

11. Можно попробовать попереходить по пунктам, посмотреть возникающие ошибки :).
12. Закрываем MobaLiveCD.
13. Переходим к добавлению программы Memtest86+. Скачиваем файл MEMTEST.IMG. Переносим его на флешку.
14. Добавляем пункт меню "Memtest86+ 4.20":
title Memtest86+ 4.20
map --mem /MEMTEST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
boot
15. Пробуем запуститься через MobaLiveCD.

    Пару слов о том, что такое Memtest86+, и зачем она нужна. При подозрениях на какую-либо неисправность ПК, в которой может быть виновата оперативная память, первым делом я запускаю Memtest и проверяю ей память. Если после полного цикла тестов (поле Pass - выделено зеленым), никаких ошибок (поле Errors- выделено красным) не обнаружено, значит оперативная память исправна.
16. Теперь перейдем к запуску программы для тестирования жесткого диска Victoria 3.52. Скачиваем ее. Переносим скачанный файл Victoria-v.3.52.3.ima на флешку.
17. Добавляем пункт меню "Victoria 3.52 DOS": 
title Victoria 3.52 DOS
map --mem /Victoria-v.3.52.3.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
boot
18. Пробуем запуститься через MobaLiveCD.

   Прежде чем пользоваться данной утилитой следует почитать документацию на сайте автора. Здесь можно найти пошаговую инструкцию по работе с ней. Ну и если интересно, что такое bad-сетор и как их устранить, можно почитать здесь, здесь, или здесь.
19. Теперь перейдем к запуску Hiren's BootCD с флешки. Скачиваем ISO-образ диска нужной версии. У меня версия 15.1. Достаем из образа папку "HBCD" и кладем ее в корень флешки.
20. Добавляем пункт меню "Hiren's BootCD 15.1": 
title Hiren's BootCD 15.1
configfile /HBCD/menu.lst
21. Пробуем запуститься через MobaLiveCD.

22.Дополнительно добавим пункт загрузки Mini Windows Xp из HBCD в наше меню.
title Mini Windows Xp HBCD
chainloader /HBCD/XP/XP.BIN
   Вот так мы научились загружаться с образов дисков и дискет, с помощью прямого маппинга в память.
    Общий случай загрузки XXX.ima (XXX.img) следующий:
title XXX.ima
map --mem /XXX.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
boot
   С загрузкой из образа CD-диска (.ISO) немного трудней.
   Общий случай загрузки XXX.iso следующий:
title XXX.iso
map /XXX.iso (0xff) || map --mem /XXX.iso (0xff)
map --hook
chainloader (0xff)
   Общий случай загрузки WinPE следующий (где XXX.BIN - загрузчик WinPE):
title WinPE
chainloader /XXX.BIN
Дальше украсим наше загрузочное меню, используя одну из тем GfxMenu, хотя можно работать и без этих украшений. Так же покажу как сделать загрузочную флешку с установкой Windows.

Используемый материал:
Руководство по Grub4dos
Grub4Dos Guide

При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.

44 комментария:

  1. Большущее спасибо!

    ОтветитьУдалить
  2. Спасибо - с iso получилось

    ОтветитьУдалить
  3. Спасибо за проделанную работу. Наконец то нашел, где все понятно расписано.

    ОтветитьУдалить
  4. Здравствуйте уважаемый!
    Конкретизируйте пожалуйста, какую именно операцию выполняет пункт 8? Загрузку операционной системы, установленной ранее? (Насколько я понимаю, данные инструкции применимы к загрузчику, находящемуся на HDD?).
    Не затруднит ли добавить команду для установки ОС (с флэшки)?
    Спасибо!

    ОтветитьУдалить
    Ответы
    1. Этот пункт:
      title Find and load NTLDR of Windows NT/2K/XP
      find --set-root --ignore-floppies --ignore-cd /ntldr
      map () (hd0)
      map (hd0) ()
      map --rehook
      find --set-root --ignore-floppies --ignore-cd /ntldr
      chainloader /ntldr
      Конкретно ищет загрузчик Windows NT/2K/XP (ntldr) везде кроме floppy- и CD/DVD-накопителей (т.е. включая HDD- и USB-накопители) и передает ему управление. А от того, что написано в конфиге загрузчика ntldr (boot.ini) будет зависеть, что в итоге загрузится.

      Если интересно, как установить ОС - советую прочитать эту тему:
      http://gromr1.blogspot.ru/2012/02/windows-install-windows-from-usb-flash.html

      Удалить
    2. Спасибо, но эта статья не может помочь мне - я уже пытался воспользоваться несколькими из описанных программ... Толку не вышло - 1 ось на флэш записывается и установка происходит, а вот 2 или 3 (как мне необходимо) не получается - постоянно получаю сообщения об ошибках. Рыться в инструкциях ПРАВИЛЬНО, но не охота...
      Буду искать ответ на GreenFlash.
      Благодарю за внимание.

      Удалить
  5. Уважаемый GRomR1, передо мной встала задача сделать загрузочную флешку с Hiren's Boot CD 9.9. Эта старая версия содержит некоторые необходимые мне программы. К сожалению, внутри ISO-файла отсутствует файл menu.lst. Можно ли его как-то восстановить или сделать самому?

    ОтветитьУдалить
    Ответы
    1. Можно попробовать через:
      Общий случай загрузки XXX.iso следующий:
      title XXX.iso
      map /XXX.iso (0xff) || map --mem /XXX.iso (0xff)
      map --hook
      chainloader (0xff)
      где XXX.iso - образ Hirens BootCD находящийся в корне накопителя

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

      Удалить
    2. Уважаемый GRomR1, благодарю за ответ! Я написал Вам через социальную сеть.

      Удалить
    3. Для того, чтобы в Интернете сохранилось решение проблемы, публикую здесь работающий файл menu.lst для Hiren's Boot CD 9.9:

      title Start BootCD
      map --mem /HBCD/boot.gz (fd0)
      map --hook
      chainloader (fd0)+1
      rootnoverify (fd0)
      map --floppies=1
      boot

      title Start Mini Windows XP
      chainloader /HBCD/XPLOADER.BIN

      Удалить
  6. ТОварищи, какая кодировка используется при редактировании Menu.lst ?? редактирую через нотпад, ставлю UTF-8 , а вместо русского текста сплошные каркозябры ((

    ОтветитьУдалить
    Ответы
    1. Без использования специальных "плюх" (доп. шрифтов) русского языка не будет.
      Как сделать чтобы был - читайте тут:
      http://gromr1.blogspot.ru/2012/02/gfxboot-make-russian-beautiful-menu.html

      Удалить
  7. Спасибо, на редкость просто и понятно, спасибо. )))

    ОтветитьУдалить
    Ответы
    1. Пожалуйста, рад, что материал оказался полезным:)

      Удалить
  8. сделал мультик, накидал .iso образов систем
    Добавил их по такому принципу

    title XXX.iso
    map /XXX.iso (0xff) || map --mem /XXX.iso (0xff)
    map --hook
    chainloader (0xff)

    Начал проверять. Win8 пишет в процессех начала установки пишет что не находит драйвера сд-рома или юсб. Линукс пишет что не может смонтировать привод.
    Как быть?

    ОтветитьУдалить
    Ответы
    1. а для Windows 8 проделали эти действия:
      http://gromr1.blogspot.ru/2013/02/install-windows-8-from-usb.html

      Для Линукса тоже есть свои заморочки.
      Главное - начало положено, в остальном прошу на форум greenflash.su - там вы сможете найти ответы на конкретные вопросы, или попробовать задать их.

      Удалить
  9. Подскажите как прописать что бы ISO образ не грузился в память ? Памяти не хватает.
    Ине нужно открыть образ и сделать из него запуск программы без загрузки ISO в память.

    ОтветитьУдалить
    Ответы
    1. Вот параметры без загрузки образа в оперативную память:
      title XXX.iso
      map /XXX.iso (0xff)
      map --hook
      chainloader (0xff)

      Чтобы грузился образ в память необходимо добавить к команде "map" ключ "--mem".
      Подробности тут:
      http://greenflash.su/Grub4Dos/files/map.htm

      Удалить
  10. Пытаюсь подцепить ISO с Win8PE по принципу - (без загрузки в память)
    прописываю в лист-
    title XXX.iso
    map /XXX.iso (0xff) || map --mem /XXX.iso (0xff)
    map --hook
    chainloader (0xff)

    В Win8PE своя менюшка при старте появляется с выбором версии PE, но при загрузке Win8PE не подгружаются драйвера и программы. Не находит пути. Лист файла нету. Как поправить и прописать??

    С загрузкой в память по типу -
    title WinPE 8
    map --mem /IMAGE/ram.gz (fd0)
    map --mem /IMAGE/WinPE.iso (hd32)
    map --hook
    chainloader (hd32)

    title <-- Back
    configfile /menu.lst
    все работает с памятью 4гб, но на компах и ноутах с памятью 2гб нехватает памяти.

    ОтветитьУдалить
    Ответы
    1. Win8PE... С этого и надо было начинать :)
      Понятно. Для WinPE этот способ не работает. Как только grub передает управление загрузчику WinPE, "замапенный" образ теряется, и его надо заново подмонтировать.
      Для этого создан целый класс утилит - FiraDisk, ImDisk, WinVBlock и др.
      По работе с ними не скажу ничего, надо знать что за образ (кто его автор и что он с ним проделал).
      Хотя наверно есть что-то универсальное (например, распаковать образ на флешку).

      Думаю можно спросить на этом форуме:
      http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=32855&start=9580#lt
      о том как загрузить через grub4dos ваш ISO-образ.

      Удалить
  11. помогите плз! Хочу сделать флешку с виндой винда чип 2013 года! не могу найти или сделать компнды для запуска тоесть создаю его в меню.лст при загрузке видит тока при клике пишет об ошибке! так и с виндой 7 как то ндо решить эту проблему =( заранее спс

    ОтветитьУдалить
  12. Неплохой САЙТИК!!! МОЛОДЦЫ Ребята!!!

    ОтветитьУдалить
  13. у меня так шапка меню выглядит

    timeout 30
    default 4
    gfxmenu=(hd0,0)/boot/gfx/theme_main.xpm.gz
    graphicsmode -1 640:800 480:600 24:32
    font=(hd0,0)/boot/font/unifont.hex.gz

    причем если добавить или изменить разрешения, то меню отображается криво
    файл меню сохранял в обычном блокноте в кодировке utf-8.
    кстати автор блога, тебе респект большой за все статьи. на их основе много чего сделал еще

    ОтветитьУдалить
  14. Всем привет от "Чайника в grub4dos". У меня вопрос к специалистам grub4dos:
    Как запустить программу "Имя.exe" меню (munu.lst)?
    Есть один вариант - запустить из меню WinXP или WinPE, а потом уже через Проводник запустить эту программу. Но это - работа через одно место.
    Итак - Как запустить программу непосредственно их меню (menu.lst)?
    Есть здесь специалисты, которые могут подсказать?
    Спасибо за подсказку, если кто-то сможет или захочет подсказать.

    ОтветитьУдалить
    Ответы
    1. "Имя.exe" меню (munu.lst)?
      Никак. Для запуска программы необходима операционная система (ОС), таковы правила.
      Вы конечно можете написать скрипт, который будет вызываться сразу после старта ОС и который будет запускать программу "имя.ехе", но не уверен, что это то, что вы хотите.

      Удалить
    2. Не хочу Вас огорчать, но Ваш ответ неверный. Доказательством моего утверждения является следующее: Устанавливаем сборку Hirens BootCD 15.1 Full, выбираем в меню файла mehu.lst Hirens BootCD 15.1 Full, далее Программы DOS- Резервное копирование-Norton Ghost-Ghost(Обычный). Загружается программ Symantec Ghost, находящаяся в сборке Hirens BootCD 15.1 Full под именем Ghost32.exe. Так что программы *.exe работают, вызываясь из меню menu.lst. Помимо программы Ghost32.exe точно так же работают и другие программа, даже программы DOS.

      Итак повторяю свой вопрос: Как запустить программу *.exe из меню menu.lst сразу.

      Удалить
    3. Вы бы хоть немного снизили свой требовательный тон. А то как-то и помогать не хочется.
      А так, если вы знаете, что можно запустить Ghost32.exe из menu.lst, ты вы наверно можете на место Ghost32.exe закинуть свою программу назвав ее Ghost32.exe, и узнать как оно будет работать (или не работать)
      К тому файл menu.lst - это команды для g4d, и его можно открыть блокнотом написать любой конфиг, например взяв за основу конфиг из Hirens BootCD 15.1 Full.

      Удалить
  15. У меня не требование. У меня простая просьба, обращённая к специалистам в grub4dos. Просто меня интересует вопрос запуска программы *.exe непосредственно из меню (текстового файла, называемого menu.lst и обрабатываемого программой grldr). Любые другие варианты (ранее указанный мною,или просто с диска, или флешки, или подмены программы ghost32.exe в сборке меня не интересуют). Ну, а если я Вас чем-то обидел - извините. Не было у меня такого желания.

    ОтветитьУдалить
    Ответы
    1. Да ладно.
      А специалисты здесь не обитают. Это просто личный сайт/блог.
      Попробуйте здесь спросить:
      http://forum.ru-board.com/topic.cgi?forum=5&topic=48335#1

      Удалить

  16. 2016.10.21-12:04:
    -Я- = боярсков михаил геннадьевич
    уважаемый автор сайта:
    :
    в КАКОЙ кодировке: вы сохраняете файл = (menu.lst) ??
    :
    я напишу:
    я видел НЕ-мои (menu.lst) в коде == 1251;
    я видел НЕ-мои (menu.lst) в коде == utf-8;
    :
    я-САМ: генерил (menu.lst) в коде == 866: как-бы для DOS-a;
    :
    сёдни: я изменил МОЙ (menu.lst) в коде == 866, -и-:
    :
    (grldr) НЕ узнал МОЙ (menu.lst).
    :
    -Я- (конешно) разберусь, -НО-:
    :
    по эталону == по default-у:
    :
    в КАКОМ (!?!?) коде НУЖНО генерить (menu.lst) ??
    .
    надеюсь на ответ, благодарю.

    ОтветитьУдалить
    Ответы
    1. UTF-8 лучше всего подходит.

      Удалить
    2. 2016.10.21-12:57:
      разница времени == 12 часов.
      ВЫ: на острове == фиджи ??

      Удалить
  17. Здравствуйте! Подскажите пожалуйста, правильно ли я монтирую образ "Win PE XP|7|8|8.1 x32&x64 (Native) (EFI) by Xemom1 27.05.15" в Grub4Dos мультизагрузочной флешки в MENU.LST:
    title Win PE XP|7|8|8.1 (Native) (EFI) by Xemom1
    find --set-root /boot/winpe5.iso
    map /boot/winpe5.iso (hd32)
    map --hook
    chainloader (hd32)

    Спасибо!

    ОтветитьУдалить
    Ответы
    1. возможно надо будет полностью его в память монтировать
      title Win PE XP|7|8|8.1 (Native) (EFI) by Xemom1
      find --set-root /boot/winpe5.iso
      map /boot/winpe5.iso (hd32) || map --mem /boot/winpe5.iso (hd32)
      map --hook
      chainloader (hd32)

      либо многие сейчас требуют настройки драйвера FiraDisk, передачи ему строки с местоположением.
      title TechAdminPE_UEFI_CD
      set MYISO=TechAdminPE_UEFI_CD.iso
      map --mem (md)0x800+4 (99)
      map /WIN7/%MYISO% (0xff)
      checkrange 0x80 read 0x8280 && map (hd0) (hd1)
      checkrange 0x80 read 0x8280 && map (hd1) (hd0)
      map --hook
      write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/WIN7/%MYISO%;\n\0
      chainloader (0xff)/BOOTMGR || chainloader (0xff)

      Здесь часто все индивидуально и зависит от сборки Win PE (особенно от ее возраста).
      Я сам этой этой сборкой не пользуюсь, поэтому как там подсказать не могу.
      Еще можно спросить на спец. форумах. Например, тут:
      http://forum.ru-board.com/topic.cgi?forum=5&topic=48335#1

      Удалить
    2. Спасибо! Какую сборку посоветуете, наподобие Стрельца, но небольшого размера? (размер сборки от стрельца более 2-х Гб).

      Удалить
  18. Оу, я уже года 4, наверно, не обновлял свои сборки. Когда-то раньше мне хватало такого зоопарка:
    title SonyPE RAM
    chainloader /S386/SETUPLDR.BIN

    title Reanimator LIVE CD
    chainloader /LIVE/SETUPLDR.BIN

    title Mini Windows Xp HBCD
    chainloader /HBCD/XP/XP.BIN
    title (Y)PE by yurkesha(CD) 02.05.2012 MiniNT
    chainloader /MiniNT/setupldr.bin

    Сейчас ввиду того, что на ноутбуках почти везде стоит (U)EFI вместо BIOS, добавил сборку TechAdminPE_UEFI_CD на флешку.

    ОтветитьУдалить
  19. Добрый день Admin! Пожалуйста подскажите где найти новую версию memtest86

    ОтветитьУдалить
    Ответы
    1. Я брал тут:
      https://nnm-club.name/forum/viewtopic.php?t=1153360
      или тут:
      https://rsload.net/soft/15657-memtest86.html
      В ней есть смысл в случае UEFI, в случае BIOS'а и старая версия сойдет.

      Удалить
  20. Как сделать пункты меню кириллическими буквами?

    ОтветитьУдалить
  21. Добрый день уважаемый автор! Если можете, то подскажите что я делаю неправильно. Создал диск VHD такого размера, чтобы он входил полностью в память 12 гигов. Всего у меня 16. Расположил на VHD Windows 7-32 Установил на эту Винду драйвер ФИРАДИСК, он в диспетчере виден. Перенёс на VHD из основной системы (она у меня Windows 7-64) файлы Boot и bootmgr. Пытаюсь загрузить VHD ПРЯМО В ПАМЯТЬ ПРИ ПОМОЩИ Grub4Dos. В menu написал:
    Это для загрузки вашей предыдущей Win7
    title Windows (previous)
    find --set-root /bootmgr
    chainloader /bootmgr
    title Boot from RAM
    map --mem /1.vhd (hd0)
    map --hook
    chainloader (hd0)/bootmgr
    не грузится. Что не так? С уважением vladimir5raz@yandex.ru

    ОтветитьУдалить
  22. А как запустить lst файл я нажимаю и не запускаеться

    ОтветитьУдалить