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 строк после [operating systems] (а 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, и запускать оттуда.
Советую прочитать 15 web страничек на http://greenflash.su/Grub4Dos/Grub4dos.htm
Очень простая и подробная инструкция, снимающая много вопросов. Там же найдете ссылки для скачивания.