Цитата timon45:
5. В результате при загрузки WinPE грузится у обоих на x86 запускается установка, на x64 не загружается выдает ошибку о том что не найден драйвер: »
|
Cам столкнулся с такой проблемой при создании универсального дистрибутива.
Такое сообщение выдается когда установщик не может найти setup.exe в каталоге sources дистрибутива или его хеш отличен от хеша setup.exe в boot.wim
Установщик, чтобы определить диск с дистрибутивом, ищет по всем доступным дискам каталог sources и файл setup.exe в нем, если файл setup.exe найден, то сверяется хеш найденного файла с хешем файла из boot.wim. Если они совпадают, то поиск прекращается и этот диск считается диском дистрибутива. Если нет - поиск продолжается.
Если ни на одном из дисков не найден setup с нужным хешем, то как раз появляется это сообщение о не найденном драйвере.
Более того, ищется не просто setup.exe, а файл с тем же именем, что запустил процесс установки.
Исходя из этого, можно сказать, что сборки с двумя загрузчиками 32 и 64 бит неработоспособны. Как миниум, один из вариантов загрузки будет выдавать сообщение о не найденном драйвере.
Но, исходя из того, что проверяется не файл setup, а файл, одноименный процессу в памяти, то проблема решаема.
Берем сетуп от 64 бит дистрибутива, именуем как setup64.exe и помещаем в sources дистрибутива, потом монтируем 64бит boot.wim и переименовываем в нем в sources setup.exe в setup64.exe. Setup в корне можно удалить. Так как теперь установщик сам не запустится, мы должны запустить его сами. В каталог system32 помещаем winpeshl.ini следующего содержания.
Код:

[LaunchApps]
%SYSTEMDRIVE%\sources\setup64.exe
Сохраняем и переименовываем в boot64.wim
То же самое проделываем и с 32 бит - только соответственно, setup32, корректируем winpeshl.ini и boot32.wim
Загрузку обоих вариантов прописываем в bcd.
Имеем два варианта загрузки 32 и 64. Минус - потеренна возможность восстановления с диска.
Текущий свой дистрибутив я создал при помощи своего конструктора автозагрузки.