Alexey32
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору winboard DMA на CD All Приветствуем загрузку BartPE через ntldr! Моя сборка (bsexporer, fbwf) c флэшки (jf v33) грузится всего 20 секунд! Для начала я решил установить винду на флэшку. Оказалось, что если в сборку сунуть куст реестра SYSTEM от этой винды и в boot.ini вручную указать, какие ядро и хал грузить, то сборка худо-бедно загрузится. Методом деления reg-файла пополам, потом ещё и ещё пополам опытным путём было установлено, чего не хватает в setupreg.hiv для полного счастья. Пофиксено более 10 bsod'ов, и вот он - заветный reg-файл. Внутри, помимо него, есть boot.ini и пофиксеный ntdetect.com. Выяснено, что HKLM\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase - аналог секции [HardwareIdsDatabase] в txtsetup.sif и т.д. В отличии от винды на флэшке, будет грузится на разных машинах потому что я добавил HKLM\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase инфу про usb как в плаге от Юркеши. В принципе, можно сделать, чтобы и установленная на флэшку винда грузилась на разных машинах. Принцип такой: копируем setupreg.hiv в папку config. Переименовываем в "system". Подгружаем в HKLM с именем t. Выполняем reg-файл. Выгружаем куст. Для автоматизации дейстий, о которых я написал выше, я написал скрипт. Он внутри. Можно прикрутить к постобработке. На флэшку копируем сборку, в корень кидаем ntldr (я полагаю, что он у вас есть;), ntdetect.com и boot.ini из архива. I386 переименовываем в minint. А как загрузить ntldr - на ваше усмотрение. Если через grub4dos - то можно сделать выбор, как грузить - по-старинке через setupldr.bin или по-новому через ntldr. Жаль только, что этот метод хорошо работает только на флэшках и хардах. После ковыряния в ntbtlog.txt после загрузки через ntldr и setupldr.bin выяснено, что ntldr сначала определяет девайсы, а потом грузит дрова, а setupldr.bin делает всё через жопу - сначала грузит все дрова, а потом выгружает лишние. Просьба: напишите пожалуйста, кто умеет, cmd скрипт конвертирования txtsetup.sif (секции [SCSI.Load] и [HardwareIdsDatabase]) в reg-файл. Он хорошо откомментирован, я думаю будет понятно. Там довольно просто, да только я не умею на cmd делать циклы. Кто разбирается в асме, нужна ваша помощь! покопавшись в ntldr, я написал в boot.ini 'multi(0)disk(0)cdrom(0)'. Результат - ntldr пытается 840 раз загрузить винду с (sic!) флопа. А если написать 'multi(0)disk(0)fdisk(0)', то он попытается запустить винду с флопа 48 раз. В обоих случаях, если на дискету положить системные файлы, то он их загрузит. Если бы на дискету влезла винда, он бы её обязательно запустил. Но это - только при запуске ntldr с харда. Если запустить его с CD (я для этого использовал grldr как не-эмулируемый загрузочный сектор CD) или флопа, то при 'multi(0)disk(0)cdrom(0)' и 'multi(0)disk(0)fdisk(0)' ntldr ругнётся 'Не удается запустить Windows из-за аппаратных ошибок настройки диска.' Также мне таким способом мне удалось загрузить Алкид и (y)pe. Из нормальной винды кусты реестра чужих сборок не редактируются, и я делал своё чёрное дело из-под liveCD. Со сборкой от Юркеши были небольшие проблемы - он зачем-то загрузочные файлы и драйвера запаковал. Я заменил их распакованными, и всё заработало. Результаты: setupldr.bin ntldr (y)pe 2:10 1:00 Alkid 3:20 1:35 Моя 0:55 0:20 Мне удалось загрузить мою сборку с CD через ntldr. Я записал CD, используя тузлу от мелкософта - hd2iso. Она, в отличие от Nero, умеет грузить не только fat16, но ещё и fat32 и ntfs. Также я использовал eltorito.sys из Embedded. Грузится дольше обычного. Необходимо юзать fbwf для fat16/32, а для ntfs имхо fbwf недостаточно - нужно юзать ewf. Если кому интересно - здесь eltorito.sys, hd2iso.exe, inf-файл и reg-файл. Кстати - вот txtsetup.sif (mcpu, acronis) 26 кб. В нём есть возможность одноядерной и многоядерной загрузки в одном флаконе. Но это только пример - нужно под себя подгонять напильником. Пока всё - надеюсь осилите | Всего записей: 32 | Зарегистр. 17-03-2010 | Отправлено: 20:43 07-07-2010 | Исправлено: Alexey32, 20:53 07-07-2010 |
|