DmitryOlenin
15-04-2006, 22:03
Решил тут настроить возможность установки без загрузки с CD. То есть через файл winnt.exe.
И тут-то и обнаружилось, что как-то странно образ у меня создается. Причем проблема проявилась именно при загрузке в DOS 7.1(из комплекта Hiren'sBootCD) и запуска длинного коммандного файла(выложу наверное сюда, может пригодится кому-то) с выбором вариантов установки. При установке через setupld.bin и его клоны ничего подобного не было...
Через какое-то время все у меня получилось. Что и побудило на написание небольшого мануала, если угодно. Итак...
Инструкция по установке Windows на нужный вам диск из доса и/или с HDD.
1. Создаете образ DOS-дискеты обязательно загрузочный. Проверяете, что с него можно загрузиться.
Делается образ при помощи программы типа WinImage (http://www.winimage.com/winimage.htm). Проверить можно в виртуальной машине.
В нашем случае, в нем наверняка будут присутствовать файлы command.com, io.sys, msdos.sys, autoexec.bat и install.bat.
2. Образ этот вы можете использовать как для проверки работоспособности вашего диска с автоматической установкой, так и в виде компонента этого диска. Например я использую его как вариант загрузки в BCDW (http://www.bootcd.narod.ru).
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 (http://oszone.net/display.php?id=2759).
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Кб.
И тут-то и обнаружилось, что как-то странно образ у меня создается. Причем проблема проявилась именно при загрузке в DOS 7.1(из комплекта Hiren'sBootCD) и запуска длинного коммандного файла(выложу наверное сюда, может пригодится кому-то) с выбором вариантов установки. При установке через setupld.bin и его клоны ничего подобного не было...
Через какое-то время все у меня получилось. Что и побудило на написание небольшого мануала, если угодно. Итак...
Инструкция по установке Windows на нужный вам диск из доса и/или с HDD.
1. Создаете образ DOS-дискеты обязательно загрузочный. Проверяете, что с него можно загрузиться.
Делается образ при помощи программы типа WinImage (http://www.winimage.com/winimage.htm). Проверить можно в виртуальной машине.
В нашем случае, в нем наверняка будут присутствовать файлы command.com, io.sys, msdos.sys, autoexec.bat и install.bat.
2. Образ этот вы можете использовать как для проверки работоспособности вашего диска с автоматической установкой, так и в виде компонента этого диска. Например я использую его как вариант загрузки в BCDW (http://www.bootcd.narod.ru).
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 (http://oszone.net/display.php?id=2759).
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Кб.