Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Решено | Установка Windows на выбраный диск из DOS и/или с HDD (http://forum.oszone.net/showthread.php?t=64411)

DmitryOlenin 15-04-2006 22:03 428253

Решено | Установка Windows на выбраный диск из DOS и/или с HDD
 
Вложений: 1
Решил тут настроить возможность установки без загрузки с CD. То есть через файл winnt.exe.
И тут-то и обнаружилось, что как-то странно образ у меня создается. Причем проблема проявилась именно при загрузке в DOS 7.1(из комплекта Hiren'sBootCD) и запуска длинного коммандного файла(выложу наверное сюда, может пригодится кому-то) с выбором вариантов установки. При установке через setupld.bin и его клоны ничего подобного не было...

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


Инструкция по установке Windows на нужный вам диск из доса и/или с HDD.


1. Создаете образ DOS-дискеты обязательно загрузочный. Проверяете, что с него можно загрузиться.
Делается образ при помощи программы типа WinImage. Проверить можно в виртуальной машине.
В нашем случае, в нем наверняка будут присутствовать файлы command.com, io.sys, msdos.sys, autoexec.bat и install.bat.

2. Образ этот вы можете использовать как для проверки работоспособности вашего диска с автоматической установкой, так и в виде компонента этого диска. Например я использую его как вариант загрузки в BCDW.

3. Загружаете ваш CD проект так, как вам удобно и проверяете правильность отображения директории $OEM$.
В случае, если у вас она выглядит не так, то проверьте опции создания диска. Рабочий вариант:
Код:

CDIMAGE.EXE -llabel -t12/31/2002,12:00:00 -h -n -m -bloader.bin d:\WinXpSp d:\xpsp2n.ISO
Важный момент здесь - это ключ -n.
Где ключ -n отвечает за относительно длинные имена и корректное отображение значков типа $. Об остальных ключах комманды cdimage можно узнать набрав cdimage /? или в статье Создание загрузочного ISO/CD.

4. Проверяете наличие длинных имен файлов и корректность их отображения. По возможности переименовываете файлы в проекте. Если это невозможно, то в файле постустановки(например на GuiRunOnce) пишете примерно такие строки:
Код:

IF exist "%SystemDrive%\D\BTS_DPs_.cmd" ren "%SystemDrive%\D\BTS_DPs_.cmd" BTS_DPs_cleanup.cmd
IF exist "%Windir%\Web\WALLPAPE\bliss1.jpg" move /y "%Windir%\Web\WALLPAPE\bliss1.jpg" "%Windir%\Web\Wallpaper\bliss1.jpg"
IF exist "%Windir%\Cursors\theme.the" ren "%Windir%\Cursors\theme.the" theme.theme

5. Ваша задача заключается в том, чтобы запустить комманду установки непосредственно с вашего CD. Сделать это можно некрасиво(набрав комманду руками), красиво (используя меню) или очень красиво (использую иерархическое меню). Я рассмотрю последний вариант, ибо остальные проще, с ними все будет тоже все ясно. Итак, комманда выглядит примерно следующим образом:
Код:

.\i386\winnt.exe /u:.\i386\winn5.sif /s:.\i386 /t:c
Где первая часть - это запускаемый файл, вторая - файл ответов, третья - директория, где лежат файлы дистрибутива, и четвертая - диск для установки.

6. Так как нас интересует загрузка из голого доса, без использования SETUPLD*.BIN, будем использовать созданный нами ранее образ дискеты. Я, для удобства, положил на него так же vc(файловый менеждер), format.com(форматирование диска), fdisk.com(разбиение диска), shutdown.com(выключение, перезагрузка), choice.com(организация меню), rvga.com/cyrkeyb.com(отображение шрифтов), shsucdx.com/atapicd.sys(драйвера CD-ROM) и, конечно smartdrv.exe(кеширование диска), а так же некоторые другие.
Вы можете использовать то, что удобно вам, а также, при желании, можете расположить все это у вас на CD.

7. Меню создаем следующим образом - на диске часть, отвечающая только за установку ОС, на образе дискеты - все остальное (если оно вам вообще нужно). После загрузки нужных драйверов из AUTOEXEC.BAT вызываем файл с меню коммандой CALL install.bat.
В нем уже идут пункты и выбор варианта при помощи choice.com. Обусловено это тем, что старый дос не знает о существовании set /p.
А так же определение буквы CD-ROMa в переменную %cdrom%:
Код:

FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\WIN51 SET CDROM=%%d:
Подбробнее о написании коммандных файлов можно почитать в интернете или посмотреть мой пример.

8. install.bat - файл с меню на образе дискетки, inst.bat - файл с меню вариантов установки на CD.
В корень вашего проекта CD кладете как минимум файл inst.bat и command.com, choice.com с вашей загрузочной дискеты.

9. Таким образом, при выборе пункта меню - "Установка Windows" вызывается файл, находящийся на CD-ROMe, а уже там отрабатывает меню, отвечающее за варианты установки.

P.S.
Приложил все упомянутые файлы (кроме cdimage.exe и VolcovCommander) в аттаче. Образ дискеты занимает у меня 720Кб.

ANDYru 16-04-2006 12:07 428353

DmitryOlenin
ктож такие папки то в досе копирует то ... :)

DmitryOlenin 16-04-2006 15:37 428394

ANDYru
Ну, бывает, что загрузиться с CD возможности нет. Хотя лично я с таким не сталкивался.

Замена ключа -j1 на -n помогла - ошибок в процессе установки не выдавал, даже директория $OEM$ нормально выглядела.
Осталась проблема с длинными имена файлов и директорий. Например директория Wallpapers, которая обозвалась WALLPAPE и, естественно, не помогла мне :) Особенно напрягает файл theme.the(me)... Может в постинсталле прерименовывать такие урезанные файлы?

Кстати, ключь -n что плохого делает?

XXXler 16-04-2006 16:49 428406

По идее надо сделать ISO 9660+Joliet+8.3FileNames и снять ограничения ISO 9660, но как в CDImage прописать последнее, я не доганяю....

DmitryOlenin 17-04-2006 00:06 428467

Пока что решил переименованием длинных файлов и вот таким куском в батнике преинсталла:

Код:

IF exist "%SystemDrive%\D\BTS_DPs_.cmd" ren "%SystemDrive%\D\BTS_DPs_.cmd" BTS_DPs_cleanup.cmd
IF exist "%Windir%\Web\WALLPAPE\bliss1.jpg" move /y "%Windir%\Web\WALLPAPE\bliss1.jpg" "%Windir%\Web\Wallpaper\bliss1.jpg"
IF exist "%Windir%\Cursors\theme.the" ren "%Windir%\Cursors\theme.the" theme.theme


DmitryOlenin 17-04-2006 11:44 428568

Пока не понял что делать с драйверами от Башрата.
Ониже имеют длинные имена и запакованы в 7z. У меня нет уверенности, что они вообще ставятся при запуске из-под ДОСа в коммандной строке.

------------
Проверил - вроде все распаковывается...

При запуске инсталяции из Hiren Boot CD все более или менее нормально.
Попробовал просто из загрузочного образа чистого доса - опять проблема с папкой $OEM$. Попробовал взять загрузчик от Hiren-a, вставить его в свой образ - не помогает. Хотя при запуске Volcov Commander директории $OEM$ выглядит нормально.
Что еще сделать я пока не могу придумать.

DmitryOlenin 19-04-2006 00:57 429269

Помогите пожалуйста... Уже не могу понять, что я делаю не так и почему из загрузчика Hiren Boot CD все работает как надо, а из такого же, но отдельного образа ничего не копируется...

Попробовал разные драйвера для CD-ROMa, не помогает. $OEM$ выглядит нормально, но не копируется, хоть убей.

Vadikan 19-04-2006 01:04 429272

DmitryOlenin
Цитата:

$OEM$ выглядит нормально, но не копируется, хоть убей.
Как насчет пп. 2 и 3 первого вопроса FAQ http://oszone.net/display.php?id=2774#q1 ?

DmitryOlenin 19-04-2006 01:16 429275

Vadikan
Конечно, все 4 пункта проходят проверку на правильность.
В том-то и дело...

Речь о том, что именно позволяет при запуске инсталляции из одной и той же версии DOS 7.10 в случае с HirenBootCD успешно все копировать, а в случае моего образа дискеты(взятого из Hiren загрузчика, файлов io.sys, msdos.sys, command.com и драйвером CD-ROM) - не копировать вовсе.

DmitryOlenin 19-04-2006 11:54 429476

Вопрос видоизменяется.
Опытным путем выяснил, что дело не в драйверах CD-ROM или версии DOS.

Дело в том, откуда запущен батник inst.bat, лежащий в корне компакта, такого вида(привожу одну строку для примера, в оригинале там больше и выбор при помощи choice.com):
Код:

%CDROM%\i386\winnt.exe /u:.\i386\winn5.sif /s:.\i386 /t:c
Или, как вариант, вместо %CDROM% используется символ ".".

Если запускать с CD-ROM-а батник непосредственно - все работает нормально.
При попытке запустить батник такого вида с загрузчика - говорит Bad command or file name при обработке строки установки.
То есть батник запускается без проблем, а комманда не отрабатывает...

В загрузчке прописано на всякий случай set path=%CDROM%. Проверил на работоспособность - все нормально, путь выставляется равный букве CD-ROMa.
Также в файле inst.bat пропиcано cd %CDROM%. Но все тщетно...

Причем пробовал разные варианты из загрузочного образа дискеты:
1. Call %CDROM%\inst.bat
2. %CDROM%\inst.bat

Успешно вызывается с диска A(с загрузчика) только в случае, если строка выглядит так:
Код:

%CDROM%\i386\winnt.exe /u:%CDROM%\i386\winn5.sif /s:%CDROM%\i386 /t:c
Но в этом случае не копируется директория $OEM$.

У кого какие мысли?

DmitryOlenin 19-04-2006 16:28 429590

Вложений: 1
Вопрос решил. Оказывается простое решение лежало совсем рядом ;)
Смена диска на CDROM выглядит не как cd %cdrom%, а просто %cdrom%.

Тему помечаю решенной. Вот мануал для желающих иметь возможность установки с жесткого диска или CD-ROM без использования загрузки с диска и использования setupld*.bin. Буду использовать текст из FAQ.

1. Загружаетесь так, как вам удобно и проверяете правильность отображения директории $OEM$.
В случае, если у вас она выглядит не так, то проверьте опции создания диска. Рабочий вариант:
Код:

CDIMAGE.EXE -llabel -t12/31/2002,12:00:00 -h -n -m -bloader.bin d:\WinXpSp d:\xpsp2n.ISO
Важный момент здесь - это ключ -n.
2. Проверяете наличие длинных имен файлов и корректность их отображения. По возможности переименовываете файлы в проекте. Если это невозможно, то в файле постустановки(например на GuiRunOnce) пишете примерно такие строки:
Код:

IF exist "%SystemDrive%\D\BTS_DPs_.cmd" ren "%SystemDrive%\D\BTS_DPs_.cmd" BTS_DPs_cleanup.cmd
IF exist "%Windir%\Web\WALLPAPE\bliss1.jpg" move /y "%Windir%\Web\WALLPAPE\bliss1.jpg" "%Windir%\Web\Wallpaper\bliss1.jpg"
IF exist "%Windir%\Cursors\theme.the" ren "%Windir%\Cursors\theme.the" theme.theme

3. Запускаете установку коммандной строкой вида
Код:

.\i386\winnt.exe /u:.\i386\winn5.sif /s:.\i386 /t:c
4. Если есть желание организовать меню с пунктами выбора (альтернатива BCDW), стоит воспользоваться утилитой choice.com

Прилагаю свои файлы с загрузочной дискеты(образа) autoexec.bat, install.bat и файл с CD-ROMа inst.bat, а также файл choice.com.

qeraser 19-04-2006 17:13 429605

DmitryOlenin прекрассная работа. Возможно тему следует переимекновать, чтобы она отражала содержимое шапки? Или лучше, представить материал в виде статьи :up:

Apple58 19-04-2006 21:49 429726

DmitryOlenin
Правильно ли я понял алгоритм действия, а то пока гладко у меня ничего не проходит :(
1.Нужно создать образ загрузочной дискеты, к примеру в WINIMAGE, внутри которого лежат файлы autoexec.bat, install.bat + файлы с обычной загрузочной дискеты. (в Вашем случае это loader.bin)
2. inst.bat кладу в корень сиди.
3. Создаю iso образ сиди, с помощью CDIMAGE.EXE, приведенным Вами кодом.
4. Теперь загружаюсь в виртуальной машине с полученного образа и должно что-то получиться.

Кстати, если я пытаюсь запустить winnt.exe вручную, загрузившись с загрузочной дискеты (флоппика), то у меня на синем фоне сообщение о swap файле, которого не существует или еще что-то с ним. Вообщем установку продолжить нельзя :(

DmitryOlenin 20-04-2006 00:10 429792

qeraser, Apple58

Отредактировал первое сообщение. Сделал довольно подробную инструкцию.
Пользуйтесь на здоровье. Вопрос по переименованию задал Vadikan-у, ждем ответа ;)

Apple58 20-04-2006 15:51 430043

DmitryOlenin
У меня все получилось.
А нельзя ли пропустить этап "копирование установочных файлов на жесткий диск", который происходит в самом начале установки винды?А то по сравнению с установкой прямиком с CD, время установки возрастает минут на 5...

Apple58 20-04-2006 16:32 430056

А как можно сделать, чтобы на этапе загрузки с сидирома, появлялась надпись:
Press any key to boot from CDrom, дающая немного времени, после которого происходила бы загрузка с hdd?

godoo 20-04-2006 17:07 430070

Apple58 используй BCDW там для этой цели используется файлик BOOTFIX.BIN

DmitryOlenin 20-04-2006 17:56 430089

Вложений: 1
Apple58
Очень рад, что все получилось.
Для загрузки с CD я использую BCDW.
Я, правда, как раз не хочу видеть этой надписи. Но если есть желание - достаточно положить(оставить) в загрузчике файл jo.sys.
Приложил его в аттаче.

Насчет пропуска копирования - думаю, что это невозможно.

Apple58 20-04-2006 19:25 430125

DmitryOlenin
Положил я jo.sys в образ, теперь при загрузке вылетает :
1. Start Windows
2. Start BootCD
Enter your choise:
И почему то я ничего не могу туда ввести, клава не реагирует.

p.s. А как мне отыскать файлы и пути, которые больше 8 символов (ведь именно столько корректно копируются)? Вручную?

Apple58 20-04-2006 19:56 430140

Выбор варианта продолжения заработал, я воспользовался архивом boot.rar, что в начале темы. Я просто сначала обычный win98-bootdisk юзал :-)

Apple58 20-04-2006 22:56 430195

DmitryOlenin
Я не понял, как у Вас реализуется возможность выбора раздела установки.
Почти во всех режимах, в том числе и Windows XP Professional Automatic FULL(Tweaks+Programs) + Partition change
Код:

.\i386\winnt.exe /u:.\i386\winn*.sif /s:.\i386 /t:c
Т.е. по-видимому выбор раздела будет осуществляться в файлах winn*.sif ? А где именно, я не знаю?
А ключ /t похоже для того, куда будут копироваться файлы на первом этапе установке (в досе). А сама винда в может поставиться в другой раздел? Я совсем запутался :(

DmitryOlenin 20-04-2006 23:05 430197

Apple58
Да, ключ /t служит для копирования временных файлов.
Я организую выбор раздела через Winn!.sif. Поэтому у меня везде стоит /t:c.
Вы можете попробовать написать /t:d или что-то еще.

Кстати, для выбора партиции при установке в файле winn!.sif (или каком-то вашем) надо написать лишь:
Код:

[Data]
        Autopartition = 0


Apple58 20-04-2006 23:39 430203

DmitryOlenin
Autopartition у меня как раз стоит 0, но почему то выбор раздела установки всеравно проходит автоматически.
Может это потому так, что кроме одного раздела, отформатированного в Fat32 у меня других нет (пробую на Virtual PC)
На всякий случай вот мои настройки winnt.sif:
Код:

[Data]
    AutoPartition=0
    MsDosInitiated="0"
    UnattendedInstall="Yes"
    AutomaticUpdates="Yes"

[Unattended]
    UnattendMode=FullUnattended
    OemSkipEula=Yes
    OemPreinstall=Yes
    TargetPath=\WinXP
    UnattendSwitch="Yes"
    WaitForReboot="No"

[GuiUnattended]
    AdminPassword=*
    EncryptedAdminPassword=NO
    OEMSkipRegional=1
    TimeZone=145
    OemSkipWelcome=1

А если мне надо автоматически ставить винду всегда на D:\ то я должен AutoPartition=1 ставить и ключ /t:D юзать? Правильно ли я понял?

DmitryOlenin 20-04-2006 23:52 430206

Apple58
Это 2 разных способа.
Если у вас будет еще одмн раздел, то выбор будет, попробуйте.

Apple58 21-04-2006 20:31 430499

DmitryOlenin
Подключил к Virtual PC еще 1 раздел. Т.е. теперь C: Fat32, D: Fat32.

Пробую:
1)
AutoPartition=0
Eстановка с ключем /t:c
Результат:
Выбор раздела происходит автоматически

2)
AutoPartition=0
Без ключа /t
Результат:
Выбор раздела происходит автоматически

3)
AutoPartition=0
Установка прямиком с cd-boot-winxp, без ключей, естественно, их там никак не укажишь))
Результат:
Выбор раздела происходит вручную

Как же тогда, при установке с ключами (т.е. методом, который в этой теме обсуждается) добиться того, чтобы выбор раздела происходил вручную?




DmitryOlenin 21-04-2006 20:33 430500

Вложений: 1
Apple58
У меня все происходит так, как надо.
Привожу свой winn2.sif.


-------------------------

И правда из доса выбрать раздел не дает. Точнее, не дает через SIF.
А описанным мною уже много раз способе - вполне...

/t:d - будет ставится на диск D.

Apple58 22-04-2006 00:41 430589

DmitryOlenin
Вот и я попробовал Ваш winn2.sif
Из доса выбора нет. Через sif нельзя, получается...
Пробовал с /t:d и AutoPartition=0, автоматом ставится на D.

Цитата:

...А описанным мною уже много раз способе - вполне...
А что за метод? Я не знаю :(

Можно, конечно, FileSystem=* прописать в winnt.sif, тогда установка остановится на стадии выбора файловой системы, а нажав Esc (для перехода на предыдущий экран, а этот экран и есть выбор раздела), выбрать раздел для установки.

На крайняк сойдет, но хотелось бы, чтобы установка останавливалась на стадии выбора раздела.......

DmitryOlenin 22-04-2006 01:08 430596

Apple58
Цитата:

Пробовал с /t:d и AutoPartition=0, автоматом ставится на D.
Это и есть выбор раздела. Вам никто не мешает в батнике, при выборе варианта установки предложить варианты с разными дисками.

Apple58 22-04-2006 02:34 430608

DmitryOlenin
Хм... как же я сам недодумался :)
Чтож, думаю неплохо бы способ, обсуждаемый в этой теме, поместить в руководство по автомат. установке винды, в раздельчик для опытных юзеров, т.к. возможность выбора раздела в самом начале установке - это важная вещь.


DmitryOlenin 22-04-2006 13:24 430688

Да, кстати, только что проверил.
Для копирование папки $OEM$ из доса вовсе не обязательно, чтобы она находилась также и внутри директории i386.
Вполне достаточно, чтобы она находилась в корне вашего образа.

Apple58 22-04-2006 16:15 430730

DmitryOlenin
Цитата:

...Для копирование папки $OEM$ из доса вовсе не обязательно, чтобы она находилась также и внутри директории i386.
Вполне достаточно, чтобы она находилась в корне вашего образа.
А я пробовал оставлять $OEM$ в корне cd, она не копировалась. Но это при том, что в winnt.sif не был прописан OemFilesPath=$OEM$
Вероятно из-за этого...


DmitryOlenin 22-04-2006 22:59 430833

Apple58
Ну, прописать не проблема...
А экономия в моем случае более 2Мб.

Apple58 28-04-2006 00:02 432414

Я в hex редакторе изменил jo.sys: 10 сек(по умолчанию) на 3 сек, если кому понадобится - ячейка DEC: 950 Hex: 0003B6

DmitryOlenin 09-05-2006 17:08 435992

Отредактировал шапку.
Добавил выбор диска из DOS-a в файле inst.bat, о котором писал выше.

midi 16-05-2006 15:49 438682

DmitryOleninПерезалей, пожалуйста, boot.rar а точнее пересобери архив. У меня выдает неожиданный конец архива. Скачивал два раза.

Спасибо! Все теперь ок.

Apple58 16-05-2006 15:58 438685

DmitryOlenin
Я тоже заметил, но думал это у меня что-то с инетом, а разбираться некогда было...

DmitryOlenin 16-05-2006 17:46 438731

Файл перезалил. Архив, конечно, проверял перед заливкой. С ним все хорошо.

anagnost 27-05-2006 04:16 442927

требуется помощь в установке с винта
 
Уважаемые знатоки! Подскажите, плиз, подробно, как установить xp с винчестера. Суть проблемы в том, что на одном из дисков лежит дистрибутив. Нужно затереть существующий раздел (на нем старая винда) и установить туда новую. Дисковод отсутствует. есть только флоппи. Диски в системе fat32. То, что было на форуме попытался понять и применить отчасти, но не очень понял, что делал неправильно. после загрузки с загрузочной дискеты, созданной xp, не могу перейти в нужный каталог, где лежит винда и, соответственно, winnt.exe. Как перейти на нужный диск и какие параметры указать к winnt.exe? Спасибо.

DmitryOlenin 27-05-2006 10:21 442956

anagnost
В первом сообщении я, кажется, расжевал все максимально подробно ;)
Что именно непонятно? Дискету я делал не из XP, кажется там есть проблемы совместимости версий DOSa и программ.
Впрочем, возможно и так будет работать(я рассчитывал просто на универсальную конфигурацию по принципу - работает в старой версии, будет работать и в новой).

nod201 03-02-2007 23:26 545353

DmitryOlenin может подскажете как мне создать HDD загрузчик и на чее мне его отформатировать на FAT32 или NTFS
можно все по подробно для чайника плиззз

http://forum.oszone.net/thread-78703.html

Polkovnik735 13-02-2007 12:56 549342

Здравствуйте.
Пользуясь вышеизложеными советами у нас в организации был подготовлен дистрибутив автоматической установки XP с использованием загрузочного диска DOS и файловой системы FAT 32. Установка производилась с диска D: на расдел C: винчестера. Все разделы были FAT32. все работает отлично.
Появилась необходимость создать такой пакет автоустановки:
1.Загрузчик CD
2.Файлы установки находятся на диске D: NTFS
3.Система устанавливается на диск С: NTFS


Время: 04:57.

Время: 04:57.
© OSzone.net 2001-