суббота, 24 мая 2008 г.

Ох уж мне этот unattended в сп3...

Unattended или автоматическая установка операционной системы. В моём случае это старая "новая" хрюша или windows xp.

Итак, описание проблемы: установка ос windows xp sp3. Интеграцию провожу с помощью ключа /integrate. Подробнее можно узнать отсюда. Далее как обычно кидаю файл ответов winnt.sif в директорию i386 и начинаю установку системы. Согласно ключам, установка у меня происходит с одним единственным вмешательством - разбивка диска. Весь остальной процесс пользностью автоматизирован. Не включая драйверов. С этими зверьми можно очень сильно попасть. И как всегда, я разбиваю винт и установка катиться дальше по своим рельсам в текстовом режиме. Перед самым окончанием процесса копирования и чуток не доходя до перезагрузки, установщик вылетает вот с такой вот ошибкой:


BSOD - setupdd.sys. Как результат, после зависания и перезагрузки компа, надо всё начинать сначала, т.к. установщик ещё не успел перезагрузиться из текстового режима в графический. В общем, очень странная проблема. И решение я искал довольно долго. Пока не наткнулся на довольно маленькую особенность, что если я использую другой файл ответов - winnt.sif, то вся установка проходит как по-маслу.

Заинтересовавшись этим странным поведением установщика, я решил разгадать причину зависания. И в общем-то преуспел в этом.

Что же оказалось?

Ну как всегда, это же элементарно Ватсон, воскликнул Шерлок Холмс, и дал понять Ватсону, где тот ошибался и почему. Вот и у меня примерно случилось тоже самое, только лишь в качестве Холмса был гадский установщик исправленный чёрт его знает почему для сп3. Если говорить программистским языком, то новый установщик совершенно не терпит нулевых (null) значений в файле ответов. Т.е., например, у меня в файле ответов winnt.sif было пустым значение:


OemPnPDriversPath =


Если установщику в winxp sp2 было всё по-барабану, ну нет значения у переменной, то здесь какой-то программист довольно качественно поработал над обработкой этого самого файла ответов. Надо отдать должное, что в общем-то это моя ошибка. И исправив это значение или просто анулировав его к примеру так:

OemPnPDriversPath = "" или так

; OemPnPDriversPath =

я смог без проблем установить winxp sp3. ;о)

В общем-то, проблема пустяшная, но я почти что уверен, что ни раз и не два, кто-либо в мире наталкнётся на слишком "правильный" анализатор установщика от сп3. Поэтому и решил опубликовать данное сообщение, потратив на решение чуть ли не целый день. Хорошо хоть этому анализатору регистр символов и букв любой подходит, а так бы был полный аут.

1 комментарий:

DiamonD комментирует...

Спасибо, за ответ. Я конечно мало что понял, а в принципе вообще ничего не понял из вышеописанного, но у меня та же проблема была. Определил про принтскрину экрана. До этого всё было хорошо, у меня стояла WinXP SP2 от SamLab и тут я решил поставить WinXP SP3 от Zver CD и начались бока с компьютером. Поставлю старую винду надеюсь всё будет нормально. Я уж думал, что у меня что-то с железом. Ещё раз спасибо.