Альтернативы для замены PLoP Boot Manager. Делаем загрузочную флэшку с помощью grub4dos BIOS не даёт… А загрузиться с USB ну очень надо

Модификация прошивки BIOS ноута ASUS A2500H/L, а именно - добавляем в прошивку BOOT загрузчик “Plop Boot Manager”.

Связано это с тем, что родная прошивка ASUS A2500H/L не особо хорошо “умеет” грузиться с USB, точнее (на мое мнение) вообще не умеет, потому, как все мои усилия закончились ничем. (в разделе Boot есть возможность включить boot c USB_ZIP устройства)и флешку ему подавай до 1Gb, не более. CD привод отдал душу богу уже давно.

Но ОС надо как-то устанавливать, поэтому было принято решение интегрировать (подшить) в Bios загрузчик Plop Boot Manаger-“маленький загрузчик, который грузит что угодно с чего угодно”. Ссылка на сайт автора - https://www.plop.at/en/home.html .

Не буду останавливаться на возможностях данного загрузчика, в сети предостаточно информации по нему.

Прежде чем начать хочу выразить Огромнейшую благодарность Роману (ник apple_rom) за оказанную помощь, техническую и моральную поддержку. Без участия Романа не родилась бы данная тема и не появился бы загрузчик в прошивке Bios Asus A2H/L.

Первым и самым важным моментом есть то, что необходимо запастись второй микросхемой BIOS c прошитой микропрограммой, которая используется в компе сейчас. Если микросхема запаяна в плату, необходимо выпаять ее и установить панельку(кроватку),в которую без труда можно будет вставлять резервную копию Bios, в случае не рестарта компа после прошивки.

Поскольку прошивка оказалась Asus-Award – утилит,(типа CBROM ,MODBIN)после долгих поисков, проб и неудач под него не нашлось, их просто не существует, а даже если и существуют, то мне не попадались. И поэтому прошивку править будем “ручками”. Первым делом понадобилось освободить место под новый модуль загрузчика, потому как в прошивке не оказалось свободных 30 Kb. Для этого запускаем утилиту >Bit14.exe a2h0213a.bin и в файле report1.dat(созданном Bit14.exe) смотрим состав модулей в нашей прошивке.

─────────────────────────────────────────────────────────────────

8 LOGO1 ROM A000h (40K) 612Eh (24,29K) PXE_M18.ROM

9 OEM1 CODE C000h (48K) 728Dh (28,64K) 650lv2.08q

10 LOGO BitMap 1888Ah (98,13K) 4725h (17,79K) POSTA7N4.OSB

11 Other(8013:0000) 124BAh (73,18K) 1C09h (7,01K) ASUSLOGO.BIN

──────────────────────────────────────────────────────────────────

Было решено выбросить модули всевозможных логотипов, в данном случае файлы №8 ;10 ;11

Для этого открываем a2h0213a.bin в hex редакторе(я использую Winhex) поиском по заголовкам –lh5- находим наши (PXE_M18.ROM,POSTA7N4.OSB,ASUSLOGO.BIN) модули и удаляем их из прошивки. Для тех, кто не вкурсе поясню про Lha архивы. Прошивка Bios состоит именно из модулей, упакованных с пом. Lha и, собранных в последовательность,без пробелов. Поэтому для поиска начала модуля находим заголовок –lh5- ,отступаем на 2 байта влево (пример %.-lh5-)-это и есть начало Lha архива. Конец такого архива всегда “00”и после него следует байт CRC(FG 2D 15 55 00 DE)Байт CRC в конце каждого модуля, это фишка ASUS -

CRC_original.bin

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

Award Decompresion Bios

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

Таким образом, находим начало и конец ненужных модулей, выделяем и удаляем.

После, если потребуется, поджимаем модули, чтоб следовали один за другим без пробелов.

Должно получиться что-то вроде такого:

■ Award Decompression BIOS structure:

──────────────────────────────────────────────────────────────────

No. Item-Name Original-Size Compressed-Size Original-File-Name

──────────────────────────────────────────────────────────────────

0 System BIOS 20000h (128K) 114C5h (69,19K) stn.bin

1 IA-32 Microcode 502Ah (20,04K) 389Eh (14,15K) cpucode.exe

2 Other(6000:0000) 86D0h (33,7K) 43DEh (16,97K) AWARDEXT.ROM

3 Other(A800:0000) 6C81h (27,13K) 44B1h (17,17K) FILE1.ROM

4 Other(A000:0000) 1830h (6,05K) B58h (2,84K) AWARDEYT.ROM

5 ACPI table 3D38h (15,3K) 19DAh (6,46K) ACPITBL.BIN

6 Other(1002:0000) 1260h (4,59K) 7EFh (1,98K) crisis.bin

7 Other(8000:0000) 1525h (5,29K) 106Eh (4,11K) ADJ_A2H.ROM

8 9 OEM1 CODE C000h (48K) 728Dh (28,64K) 650lv2.08q

(Silicon Integr. Sys. (SiS) SiS650/1/GL/GX,740 GUI 2D/3D Accelerator BIOS)

Теперь прошиваем Bios мат.платы и перезагружаемся. Если все ок. переходим к подготовке файла загрузчика. Методику нашел на просторах интернет на forum.ixbt.com.

Понадобятся:

  1. plpbtrom.exe и plpbtrom.bin из пакета Plop Boot Manager
  2. bromcfg.exe

Порядок действий:

  1. Создаем загрузчик "plpbtrom.exe -forceINT -INT18 -compress plpbtrom.bin plpbt.rom"
  2. Конвертируем plpbt.rom с помощью bromcfg.exe в pci rom "bromcfg.exe plpbt.rom"

Нам нужно заменить загрузку с Lan на загрузку Plop

  • Change configuration (Y/N)?y
  • Vendor ID? 1039,(для других плат можно посмотреть на втором экране загрузки или в диспетчере устройств, в свойствах сетевой карты.)
  • Device ID? 0900,(для других плат можно посмотреть на втором экране загрузки или в диспетчере устройств, в свойствах сетевой карты.)
  • PCI device type? (e.g. 020000 for Ethernet):020000

Полученный файл назовем plpbt_PCI.rom. Теперь нужно полученный файл добавить в прошивку Bios.Для этого, берем подобный- Award-овский Bios с которым нормально работает Cbrom.Я брал прошивку от Foxconn 461XP219.BIN.

С помощью

>cbrom198 461XP219.BIN /other 4011:0 plpbt_PCI.rom

добавляем загрузчик в прошивку от Foxconn, предварительно освободив под него место таким же образом, как я писал ранее. Теперь наш загрузчик добавлен с нужными заголовками в прошивку. Осталось его перенести из Foxconn в Asus прошивку. Для этого в HEX редакторе, в файле 461XP219.BIN находим модуль plpbt_PCI.rom, выделяем от начала(-lh5- минус 2 байта), до конца и копируем его в отдельный файл. В HEX редакторе oткрываем Asus Bios a2h0213a.bin,находим сразу за последним модулем (650lv2.08q) пустое место (FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF) и сразу, без пробела, за байтом CRC вставляем наш,вытащенный из Foxconn прошивки, файл plpbt_PCI.rom. Сохраняем всю прошивку и открываем в BIT14.exe.

■ Award Decompression BIOS structure:

No. Item-Name Original-Size Compressed-Size Original-File-Name

───────────────────────────────────────────────────────────────────────

0 System BIOS 20000h (128K) 114C5h (69,19K) stn.bin

1 IA-32 Microcode 502Ah (20,04K) 389Eh (14,15K) cpucode.exe

2 Other(6000:0000) 86D0h (33,7K) 43E1h (16,97K) awardext.rom

3 Other(A800:0000) 6C81h (27,13K) 44B1h (17,17K) FILE1.ROM

4 Other(A000:0000) 1830h (6,05K) B58h (2,84K) AWARDEYT.ROM

5 ACPI table 3D38h (15,3K) 19DAh (6,46K) ACPITBL.BIN

6 Other(8000:0000) 1525h (5,29K) 106Eh (4,11K) ADJ_A2H.ROM

7 OEM1 CODE C000h (48K) 728Dh (28,64K) 650lv2.08q

(Silicon Integr. Sys. (SiS) SiS650/1/GL/GX,740 GUI 2D/3D Accelerator BIOS)

8 LOGO1 ROM 7400h (29K) 72DBh (28,71K) plpbt_PCI.rom

(Silicon Integr. Sys. (SiS) SiS900 10/100 Ethernet Adapter BIOS)

───────────────────────────────────────────────────────────────────────

■ Award Decompression BIOS Main CheckSums Status:

───────────────────────────────────────────────────────────────────────

No. Item-Name CheckSum Calculated-CheckSum Address Status

───────────────────────────────────────────────────────────────────────

0 System BIOS 80h 80h 114C5h Correct

1 IA-32 Microcode 0Bh 0Bh 14D64h Correct

2 Other(6000:0000) 25h 25h 19146h Correct

3 Other(A800:0000) 1Dh 1Dh 1D5F8h Correct

4 Other(A000:0000) F2h F2h 1E151h Correct

5 ACPI table 46h 46h 1FB2Ch Correct

6 Other(8000:0000) A5h A5h 20B9Bh Correct

7 OEM1 CODE 68h 68h 27E29h Correct

8 LOGO1 ROM ─── 8Bh ────── Absent

───────────────────────────────────────────────────────────────────────

В структуре файла видим добавленный модуль №8 как LOGO1 ROM – это из-за ID4011:0,нам это не мешает. Далее находим прочерки в графе checksum и addres,а между прочерков рассчитанный CRC модуля №8.Нужно “8B” записать в прошивку после модуля plpbt_PCI.rom сразу за нулевым байтом и сохранить прошивку. Контрольно,еще раз открыть прошивку с пом. BIT14.exe и проверить модуль №8,должно быть так:

8 LOGO1 ROM 8Ch 8Ch 27E2Bh Correct

Прошиваем a2h0213a.bin во флеш, перезагружаемся и заходим в Bios Setup.

В разделе Boot в графе “Onboard Lan Boot ROM” - ставим Enable .В списке boot устройств, включаем “INT18 Dewice (Network)” и поднимаем его на самый верх, чтобы под №1 списка стоял INT18 Dewice. Перезагружаем и, если все сделано правильно,видим меню Plop загрузчика.

Можно пользоваться. При желании, для красоты, можно поменять надписи в Bios Setup скажем к примеру “Onboard Lan Boot ROM” заменить на “Plop Boot Manager Rom”.

Дополнение :

С моей точки зрения, иметь модифицированный bios и не видеть этого в bios setup – это, мягко выражаясь, не эстетично. Поэтому решено было заменить надпись “INT18 Device (Network)”и”On Board Lan Boot ROM” на что-то более правдоподобное, связанное с добавленным модулем загрузчика. Хотя все проделанное ранее уже является полностью работоспособным и можно вполне оставить как есть, решать каждому индивидуально. Я за эстетичность и выбор мой очевиден.

Открываем файл BIOS в HEX редакторе и находим модуль AWARDEXT.ROM .Далее, уже по знакомому сценарию: выделяем, копируем и распаковываем его. В распакованном виде вновь открываем его в HEX редакторе. Поиском находим текст “INT18 Device (Network)” и прописываем вместо него свою надпись латиницей “**Plop Boot Manager** ”,тут я не менял количество символов, не знаю наверняка, что произойдет, если добавить или убрать пару букв, вероятнее всего это не имеет значения, но экспериментировать не стал. Аналогично поступаем с другим заголовком, определяющим Boot по сети,(менеджер Plop добавлен, как сетевое устройство).

После, опять-же, знакомые процедуры-добавляем отредактированный модуль в “левую” прошивку от Award 6.0 c помощью, уже знакомого, CB-рома который нормально работает с этим “левым”Award-ом.(>cbrom198 461XP219.BIN /other 6000:0 AWARDEXT.ROM).И снова в HEX редактор, как и с модулем загрузчика, выделяем AWARDEXT.ROM от начала(-lh5- минус 2 байта), до конца и копируем его в отдельный файл. В HEX редакторе oткрываем Asus Bios a2h0213a.bin и меняем модуль AWARDEXT.ROM отредактированным. Тут внимание!!! Новый (редактированный AWARDEXT) может отличаться по размеру от оригинала. Необходимо проконтролировать:

1.Чтобы модуль (+байт CRC) был добавлен без пробелов и остатков старых модулей, если он (модуль) вышел короче по размеру;

2.Чтобы модуль своим “фостом” не затер следующий за ним модуль, если он длиннее …

3.Чтобы общий размер прошивки остался прежним (262144);

4.Чтобы модуль декомпрессора и бутблока остались на прежних местах в адресном пространстве.

И если все нормально, продолжаем.

В разделе на вопрос При установки винды есть пункт меню "start plop boot manager" что это такое? заданный автором Dima lee лучший ответ это Приветствую)
Не уверенно, что речь в той винде, которую Вы устанавливает, именно об этом, но.. . Есть такой менеджер "мультизагрузки".
Как вообще происходит загрузка: комп включается, БИОС (базовая система ввода-вывода) проводит тестирование и передает управление на так называемый загрузочный сектор диска ("мбр") . То, что находится в этом секторе считывается и выполняется.. . При установки виндовс - туда записывается загрузчик Виндов. Далее загрузчик загружает Виндовс.
Тут вы хотите поставить, например, Линукс. Он "перетрет" своим загрузчиком - загрузчик Виндовс. И будет запускаться только он.
А вот если вам хочется иметь возможность запускать или Виндовс, или Линукс или еще какие-нибудь операционные системы по Вашему выбору - для этого и служат программы - менеджеры мультизагрузки.
Делает он это приблизительно так: сам записывается в загрузочный сектор, при этом знает, как нужно "правильно" запускать ту или иную операционную систему. Главное тут - показать ему, где (грубо говоря на каких дисках) находятся операционные системы.
Так же некоторые мультизагрузчики умеют загружать систему с "дейвайсов" с которых Ваш биос грузиться не умеет. Например не всегда в биосе есть возможность загрузить систему с флешки (только с жесткого диска или с сиди-дивиди дисков) . Некоторые мультизагрузчики могут Вам эту возможность дать.

GRUB4DOS + PLoP Boot Manager -- это все что надо для мульти-загрузки компьютера с любого раздела жестких дисков, флоппи, USB, CD\DVD; а также с файлов-образов и загрузчиков на HDD, флоппи, USB, CD\DVD.

Сторонник простых решений для достижения цели. В данном случае - мульти-загрузка.
Все эти Акронис ОС Селектор, записи в сектора, множество дополнительных (и очень медленных) дискет, это как говорится через одно место к звездам. Популярный еще недавно BCDW уступает Grub4dos (grldr) по функциональности и удобству.

Запуск компа начинает BIOS (микросхема на материнке), который передает управление устройству, в порядке, выбранному в установках BIOS. В HDD управление передается в MBR (Master_Boot_Recodr, как правило, первые 512 байт жесткого диска). MBR передает управление в загрузочный сектор активного раздела (Booot_Sector - первые 512 байт раздела), где прописывается, какой загрузчик искать в этом разделе.

Утилитами BOOTICE.EXE BootSectGui.exe bootpart.exe легко изменить записи в MBR или Booot_Sector.

Для DOS-Win9x-WinME загрузчик это io.sys; для NT_4-5 (win4NT, win2000, winXP) это ntldt; для Windows-6 (Vista, Win7) это bootmgr; для Linux это kernel типа файла linux, или сжатого типа wmlinuz.

Установку winXP (предпочитаю устанавливать с жесткого диска) или запуск BartPE, LiveCD осуществляет SETUPLDR.BIN вместе с winnt.sif и TXTSETUP.SIF В персональных сборках эти файлы иногда модифицируют и переименовывают, соответственно внося изменения в SETUPLDR.BIN (в HEX редакторе, можно в notepad++.exe) и TXTSETUP.SIF что и где искать.

Изменить активность раздела (Make Partition as Active - bootable) можно в запустив Run\diskmgmt.msc или другой программой типа Paragon_HDM, Acronis, fdisk, cfdisk.

В win2000 и winXP NTLDR используя ntdetect.com передает контроль boot.ini, откуда можно передать управление внутрь папки операционной системы для запуска Ntoskrnl.exe

Multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="(0001)\Windows XP EN" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="(0011)\Windows XP EN" /noexecute=optin /fastdetect /usepmtimer

Вторая строка полезна в boot.ini, потому что...rdisk(0)partition(1) в boot.ini или (hd0,0) в grldr menu.lst или hda1 в Linux, назначается в HDD с которого запускается загрузчик. Если хотите загрузить Windows на другом HDD, а не с того HDD с которого запустились, то используется вторая строка, независимо к какому IDE подсоединен HDD. Если запуск не с HDD (флоппи, USB), то (hd0,0) назначается HDD, подсоединенному к IDE как Primary==>Master==>Slave.

С boot.ini можно также запустить другой загрузчик, включая скопированные в файл загрузочные сектора разделов жестких дисков.

C:\grldr="c:\grldr ==> Start GRUB4DOS as c:\grldr"
C:\plpbtldr.bin="c:\plpbtldr.bin ==> PLoP Boot Manager"
C:\hda3.dat="c:\hda3.dat ===> Start Lilo from hda3 boot sector to boot Linux"

В Windows-6 порядок: запуск bootmgr, хоть откуда, где в разделе есть \boot\bcd ==> \Windows\system32\winload.exe

Программы depends.exe Filemon.exe Regmon.exe помогут определить, какие *.dll, файлы, или записи регистра используют программы, соответственно определить чего не хватает для их работы.

Если ранее Boot Manager устанавливались обязательно в MBR, а Grub требовал отдельный раздел, то теперь Grub4dos - элегантно и просто (http://nufans.net/grub4dos). grldr это маленькая Unix подобная оболочка с набором команд для загрузки систем.

Через grldr Образы монтируются и исполняются как с жесткого диска (только если образ не фрагментарный), так и с полной загрузкой образа в оперативную память RAM, что ускоряет работу модулей.

Просто добавьте 373 кВ в ваш загрузочный раздел (обычно С:\) и грузитесь с чего может, и даже не может ваш комп, а также с *.iso и других образов с жесткого диска.

Скопируйте все с моего..\root\* в С:\ или где находится ваш boot.ini если загрузка идет с другого раздела. Полезно держать копии ntldr NTDETECT.COM boot.ini (в такой последовательности они грузятся) и предлагаемые здесь файлы grldr и menu.lst на нескольких разделах, флоппи, USB. Тогда при крахе одного можно загрузиться с других.

Если форматировать раздел или флоппи в DOS\Win95-98-ME, то вставится загрузчик для io.sys. Если форматировать в Win2000-XP то загрузчик ntldr, даже если форматируете в FAT.

Щелкните на С:\plpgenbtldr.exe - опросятся все загрузочные сектора, и генерируется файл c:\plpbtldr.bin (делать это после каждого изменения загрузочных секторов). Больше никаких настроек и меню не требуется.

В C:\boot.ini поставьте желаемое время timeout=(сек) демонстрации его меню и скопируйте в конец boot.ini 2 строки:

C:\grldr="Start GRUB4DOS"
C:\plpbtldr.bin="PLoP Boot Manager"

Первоначально boot.ini защищен от изменения - проще переместить С:\boot.ini как резерв в другое место, и сохранить новую редакцию (в архиве есть моя версия boot.ini). В WinXp boot.ini показывает только первые 10 строк после (а Windows-6 с прокруткой).

Помните, в момент загрузки загрузочный раздел всегда считается С:\
Потом Windows может назначить этому разделу другую букву. Поэтому в boot.ini всегда С:\.... даже если грузитесь с флоппи, USB, другой раздел. Но независимо, откуда запустившись, grldr начинает искать menu.lst начиная с (hd0,0). Детальнее, откройте в текстовом редакторе grldr и смотрите (измените) в конце файла порядок поиска menu.lst

При установке, Windows назначает С:\ активному (загрузочному) разделу в момент установки, независимо в какой раздел устанавливается и с какого будет работать Windows. Даже если позднее измените активный раздел, С:\ останется за тем же разделом. Ext2Mgr.exe - позволяет быстро изменить букву неактивного раздела.

Теперь при запуске компа будет открываться boot.ini меню на указанное вами timeout=(сек), где выбираете что загружать. По умолчанию, после timeout загрузиться что указано как default=.... или первое по списку.

1. C:\plpbtldr.bin="PLoP Boot Manager" загружает все устройства с чего у вас можно загрузиться, и что оригинально, загрузка с USB, когда материнка этого не поддерживает, и загрузка с логических разделов.

2. Теперь не надо каждый раз записывать *.iso образ на CD\DVD и медленно загружаться с дисковода.
C:\grldr="Start GRUB4DOS" откроет menu.lst (приложена моя версия, модифицируйте), где ранее указываете какой *.iso или другой образ, загрузчик хотите загрузить с жесткого диска или с USB или с оптического дисковода или с флоппи. С каждого последющего конечно медленнее.

Пример menu.lst
=========
color blue/green yellow/red white/magenta white/magenta
timeout 11
# default /default
default 2

Title /minint/setupldr.bin
find --set-root --ignore-floppies /minint/setupldr.bin
chainloader /minint/setupldr.bin

Title WinXP |chainloader (hd0,0)/ntldr on hda1
fallback 1
chainloader (hd0,0)/ntldr

Title Windows 7 or Vista |/boot/bootmgr
find --set-root /boot/bootmgr
chainloader /boot/bootmgr

Title /RusLive_Ram_Micro_2010_12_30.ISO ||--mem
fallback 2
find --set-root --ignore-floppies /RusLive_Ram_Micro_2010_12_30.ISO
map --heads=0 --sectors-per-track=0 /RusLive_Ram_Micro_2010_12_30.ISO (hd32) || map --mem --heads=0 --sectors-per-track=0 /RusLive_Ram_Micro_2010_12_30.ISO (hd32)
map --hook
root (hd32)
chainloader (hd32)

Title /HDDREG-1.51.ima |rootnoverify (fd0)+1
find --set-root --ignore-floppies /HDDREG-1.51.ima
map --mem /HDDREG-1.51.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

Title Symantec Ghost
root (hd0,1)
map --mem /BOOT/IMAGES/GHOST.GZ (0xff)
map --hook
chainloader (0xff)

Title /SC9PM=VCOM_Partition_Commander.GZ |--mem rootnoverify (fd0)+1
find --set-root /SC9PM=VCOM_Partition_Commander.GZ
map --mem /SC9PM=VCOM_Partition_Commander.GZ (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
=========

Основное отличие: PLoP Boot Manager передает управление загрузочным секторам разделов или устройств; а GRUB4DOS может загружать как загрузочные сектора разделов, так и загрузить файлы-образы, лоудеры, kernel (последнему как внутри *.iso образа, так и kernel на HDD).

Если используете grldr редко, то поместите ТОЛЬКО grldr и menu.lst рядом с boot.ini и в последнем добавить строку C:\grldr="Start GRUB4DOS". При запуске компа, ее выбор откроет заготовленный вами набор запусков из menu.lst.

Если используете grldr часто, и неохота ждать мелькание окон, переименуйте C:\grldr в C:\ntldr, а оригинальный ntldr, например в ntldr==, и запускайте его из grldr: chainloader (hd0,0)/ntldr== Это запустит boot.ini

Можно также установить grldr в MBR или Boot_Sector как устройства типа ЖД, CD\DVD, USB, так и в файл-образ. Также можно или установить файл grldr (создав menu загрузки внутри него) целиком в MBR или Boot_Sector, или просто вставить запись искать файл grldr как загрузчик.

Встречал много наворотов и программ для подготовки флэшки к запуску. Просто запустите..\WINGRUB\grubinst_gui.exe и вставьте в флэшку загрузочный сектор, запускать grldr. Поместите файлы grldr и menu.lst на флэшку и она готова. Добавляйте на флэшку файлы, и в menu.lst пути их запуска.

Или просто запускайте grldr с флэшки или с флоппи, и если там нет нужных (больших) файлов, то они могут искаться с опцией:
find --set-root / и запускаться с ЖД, если они там есть (см. выше, где grldr ищет menu.lst).

В menu.lst описание загрузки начинается со строки title -- информационная, показывается в GRUB4DOS меню. Помещаю в ней --mem, если образ грузиться в RAM, и путь к образу. Путь может быть любой длины.

Опция map --mem ... загружает образ в оперативную память RAM, монтирует оттуда как отдельный раздел (часто неправильно называемый как диск, например X:\), и исполняет оттуда. Загрузка программ и библиотек с RAM намного быстрее, т.к процессор и память работают в миллионы раз быстрее чем жесткий диск. Приятно, когда окна летают, если конечно хватает оперативной памяти. В принципе, программы с диска также исполняются с RAM, но грузятся туда намного медленнее.

Без опции --mem образ монтируется и модули загружаются с жесткого диска (что все же быстрее, чем с оптического дисковода). С диска монтируются только образы, расположенные на диске =ОДНИМ= фрагментом (..\Defraggler\Defraggler.exe дефрагментирует отдельные файлы, директории). В RAM грузятся любые образы.

При разделении строки
map .... || map --mem .... образ пытается монтироваться с диска, если нет, то загружается и монтируется с RAM. Загрузка в RAM отнимает соответствующую часть памяти.

(hd0,1)/ - указывает на номер диска и раздела в нем (нумерация начинается с 0). (hd0,1)/ соответствует второму разделу на первом диске, в стандартном случае будет D:\

В отличие от виртуальной машины (бесплатные, VirtualBox считаю лучшей, ../qemu (http://www.davereyn.co.uk) проще, работает без установки, но медленнее), загрузка через GRUB4DOS использует весь ресурс компа. Эффективна загрузка небольших образов LiveCD в RAM, что освобождает жесткий диск от активности для проведения аварийных работ.

GRUB4DOS запускает Linux образы с HDD или CD\DVD. Запускает KERNEL и initrd с HDD, даже не с Linux, а c ntfs раздела.

# Следующее передает команды (флаги) и управление непосредственно kernel внутри *.iso образа.
title /slitaz-3.0.iso (hd32) --> --mem kernel /boot/bzImage root=/dev/null vga=791
find --set-root --ignore-floppies /slitaz-3.0.iso
map --mem --heads=0 --sectors-per-track=0 /slitaz-3.0.iso (hd32)
map --hook
root (hd32)
kernel /boot/bzImage rw root=/dev/null vga=791 autologin
initrd /boot/rootfs.gz

# Booting from hda3
title SliTaz GNU/Linux (Cooking) (Kernel 2.6.22.9)
root (hd0,2)
kernel /boot/vmlinuz-2.6.20-slitaz root=/dev/hda1
initrd /boot/rootfs.gz

# Booting from directory
title root (hd0,2)/iso/archlinux-2009.08-core-i686
root (hd0,2)/iso/archlinux-2009.08-core-i686
KERNEL /boot/vmlinuz26 lang=en locale=en_US.UTF-8 archisolabel=ARCHISO_AHCOHH6O ramdisk_size=75%
initrd /boot/archiso_pata.img

Еще достоинство, Grub4dos ищет по имени, а например Lilo, ищет по адресу сектора на HDD. Переименовав kernel, он останется там же и Lilo его найдет, а дефрагментация физически переместит kernel и Lilo потеряет его, но Grub4dos найдет.

Не нужен и сислинукс (isolinux). Через Grub4dos ===> с:\grldr и с:\menu.lst грузи (по крайней мере, пытайся) что угодно.

Также возникают проблемы загрузки некоторых Linux систем с HDD из *.iso образов, в которых запущенный Grub4dos процесс передает управление другому. Например, когда initrd.gz должна найти и монтировать ядро, находящееся внутри *.iso образа, а система уже не видит этот образ.

При загрузке с записанного CD\DVD ядро остается там, а *.iso образ демонтируется при передаче управления. Тут надо знать или смотреть (править) в initrd.gz/linuxrc где будет искаться ядро. Например, Knoppix и Puppy, кроме CD\DVD также ищут ядро в корне разделов HDD. Поэтому надо pup-***.sfs или \KNOPPX\KNOPPIX вынести из образа в корень любого HDD раздела. Кстати, и сохранить их *.iso образы без этих больших файлов. Тогда проще и быстрее загружать оставшийся образ в RAM.
GEEXBOX**.iso таким образом не запускается. Распаковывать образ на HDD, и запускать оттуда.

Загрузочный USB Flash или HDD накопитель удобен тем, что можно отказаться от использования CD/DVD для установки ОС и использования диагностических программ типа Memtest, MHDD, Acronis TI.

«Мультизагрузочная» флешка или HDD хороши тем, что можно не форматировать весь диск для каждой программы, а один раз установить туда все необходимые программы и при загрузке с него выбирать нужную через красивое меню. В случае с HDD удобно создать для этого отдельный небольшой раздел.

Существует множество решений для флешек (например, http://eee-pc.ru/wiki/софт:usb_multiboot), но, как правило, они не работают с USB HDD. На хабре я нашел только об установке Win7 с USB HDD, но год назад попытки воспроизвести это не увенчались успехом. Для установки Windows 7 с флешки существует MS Win7 DVD Tool , но он опять же не работает с HDD. Поэтому давайте создадим свой мультизагрузочный USB HDD с помощью GRUB4DOS.

Нам понадобится:

  • USB HDD (все описанное должно работать и для флешек).
  • ОС Windows (естественно можно аналогично сделать это и из ОС на базе Linux, но у меня сейчас нет возможности проверить работоспособность и наличие «подводных камней»).
  • Материнская плата (BIOS) с поддержкой загрузки с USB накопителей. Если загрузка с USB не поддерживается, можно использовать Plop, об этом ниже.

Начнем

  1. Скачиваем HP USBFW и форматируем наш накопитель. Обычно все, в том числе и я, пропускают этот шаг. Возможно, будет работать и без него, но лично я перепробовал все стандартные варианты форматирования из Windows 7, однако загрузка с моей 320ГБ Тошибы не работала (зависала сразу после выбора в Boot menu) до использования этой утилиты.
  2. Если воспользовались HP USBFW из прошлого пункта, то можно удалить созданный им на весь диск раздел и создать свой, поменьше (желательно FAT32, иначе могут возникнуть проблемы с некоторыми программами и ОС), а оставшееся место оставить для «файлопомойки».
  3. Устанавливаем загрузчик GRUB4DOS в MBR. Рекомендуется использовать первый вариант, чтобы не ошибиться с выбором диска или раздела.
    1. Можно воспользоваться GUI: для этого скачиваем grubinst-1.1-bin-w32-2008-01-01 , запускаем grubinst_gui.exe , выбираем диск, жмем Refresh в Part list и выбираем нужный раздел. Остальные настройки можно не трогать.
    2. Либо в консоли командой: grubinst.exe hd(номер диска, номер раздела) Номер диска можно узнать в «Управлении дисками» (diskmgmt.msc).
  4. Копируем файлы grldr и Menu.lst из архива grub4dos-0.4.4.zip в корень раздела.
Можно перезагружаться и проверять работоспособность нашего мультизагрузочного накопителя.

Для проверки работоспособности многих программ необязательно каждый раз ребутать компьютер. Можно использовать виртуальные машины: MobaLiveCD или VirtualBox. Для VB выполняем в консоли: "C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "C:\USBHDD.VDI" -rawdisk \\.\PhysicalDrive1 где число в PhysicalDrive - номер нашего загрузочного диска, и указываем полученный файл (C:\USBHDD.VDI) в качестве жесткого диска при создании машины. Однако некоторые ОС (например, Windows 7) могут не работать таким способом.

Примеры установки некоторых ОС и программ

Memters86+
Скачиваем ISO образ с офф. сайта memtest.org/download/4.20/memtest86+-4.20.iso.zip и кидаем его на наш загрузочный HDD (не забываем распаковать.zip архив).

Открываем Menu.lst текстовым редактором, добавляем туда следующее:
title Memtest find --set-root /mt420.iso map /mt420.iso (hd32) map --hook root (hd32) chainloader ()
И попробуем разобраться, что эти команды означают.
title Memtest - название пункта (Memtest), которое будет отображаться в меню.
map /mt420.iso (hd32) - загрузка ISO образа, находящегося в корне загрузочного диска (эмуляция CD-ROM).
root (hd32)- делает виртуальный CD-ROM корневым.
chainloader () - передает управление другому загрузчику (если в скобках ничего не указано, то используется корневой, в данном случае hd32).

Ubuntu 10.4

Также кидаем ISO образ с ubuntu.com на HDD и прописываем в Menu.lst (образ переименован в ubuntu1.iso):

Title Ubuntu map /ubuntu1.iso (hd32) map --hook root (hd32) kernel /casper/vmlinuz iso-scan/filename=/ubuntu1.iso boot=casper quiet splash -- locale=ru_RU initrd /casper/initrd.lz

Windows 7

А вот с Win 7 немного сложнее.

Способ 1:

Копируем все файлы с диска (образа) Windows 7 и добавляем в Menu.lst:
title Install Windows 7 find --set-root /bootmgr chainloader /bootmgr

В некоторых случаях работает, но могут возникнуть различные ошибки во время установки. К тому же таким способом будет работать только если на hdd находится одна Windows 7, иначе (например, если хотим поместить туда х86 и х64) запустится установка первой найденной.

Способ 2:

UPD : автоматизация этого способа: rghost.ru/20467691 либо greenflash.su/_fr/7/7487664.7z . Файлы из архива (кроме menu.lst и seven.iso) необходимо скопировать в корень раздела (либо соответственно изменить пути в Menu.lst).

Возможные проблемы и ошибки

Error 60: File for drive emulation must be in one contiguous disk area

Решение : нужно дефрагментировать образ. Например, с помощью программы Contig от Марка Руссиновича. Использование: contig.exe g:\ubuntu1.iso в консоли.

BIOS не поддерживает загрузку с USB, зависает, долго грузится и другие проблемы, связанные с загрузкой с USB HDD

GNU GRUB - многозагрузочный загрузчик. Он был получен от GRUB, унифицированного загрузчика GRand, который был первоначально разработан и реализован Эрихом Стефаном Болейном.

Бесплатная Открытый код Mac Windows Linux BSD Solaris OpenSolaris

  • EasyBCD

    EasyBCD - это неопровержимый ответ NeoSmart Technologies на то, чтобы настроить загрузчик Windows. С EasyBCD почти все возможно, например. для загрузки образа Win7-VHD. Настройка и настройка загрузочных записей Windows проста, и нет более простого способа быстро загрузиться прямо в Linux, Mac OS X или BSD прямо из загрузчика Windows Vista - на лету

    Бесплатная (для личного использования) Windows

  • GRUB for DOS

    GRUB для DOS - универсальный загрузчик, основанный на GNU GRUB. Он может загружать различные ОС (некоторые из них, некоторые из которых используют стандартные диспетчеры загрузки) на разных носителях (жесткий диск, CD / DVD, внешние USB-устройства и т. Д.).

    Бесплатная Открытый код Mac Windows Linux

  • rEFInd

    rEFInd - это вилка диспетчера загрузки rEFIt для компьютеров на основе интерфейса Extensible Firmware Interface (EFI) и Unified EFI (UEFI). Как и rEFIt, rEFInd является менеджером загрузки, а это означает, что он представляет меню параметров пользователю, когда компьютер сначала запускается, как показано ниже. rEFInd не является загрузчиком, который представляет собой программу, которая загружает ядро ​​ОС и отключает управление

    Бесплатная Mac Windows Linux

  • VMLite VBoot

    VBoot позволяет загружать физический компьютер из одного файла виртуального диска в формате VHD / VMDK / VDI / Raw. Каждый файл содержит одну операционную систему. Он поддерживает Windows 2000, Windows XP, Vista, Windows 7, 2003 Server, 2008 Server и Linux 2.6, 32- и 64-разрядные. VBoot делает несколько ботинок предельно простым. Вы просто копируете один файл на физический компьютер и можете загрузиться в ОС, содержащиеся внутри этого файла

    Платная Windows Linux

  • Visual BCD Editor

    Visual BCD Editor - расширенная версия утилиты bcdedit для графического интерфейса пользователя. Создание автоматического загрузчика - Windows 7 | Vista | XP | VHD. Исправьте диспетчер загрузки и проблемы с двойной загрузкой.

    Бесплатная Windows

  • coreboot

    Coreboot (ранее известный как LinuxBIOS) - это проект бесплатного программного обеспечения, предназначенный для замены проприетарной прошивки BIOS, найденной на большинстве компьютеров, с облегченной системой, предназначенной для выполнения только минимальных задач, необходимых для загрузки и запуска современных 32-разрядных или 64-битных операционных система

    Бесплатная Открытый код Linux

  • Super GRUB2 Disk

    Основная задача Super GRUB2 Disk - помочь вам загрузиться в ОС, чей загрузчик поврежден. Во-вторых, и почти так же важно, чтобы быть инструментом, чтобы узнать больше о GRUB2 и процессе загрузки.

    Бесплатная Открытый код Windows Linux