Войти

Показать полную графическую версию : Решено | Установка Windows на выбраный диск из DOS и/или с HDD


Страниц : [1] 2 3

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Кб.

ANDYru
16-04-2006, 12:07
DmitryOlenin
ктож такие папки то в досе копирует то ... :)

DmitryOlenin
16-04-2006, 15:37
ANDYru
Ну, бывает, что загрузиться с CD возможности нет. Хотя лично я с таким не сталкивался.

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

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

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

DmitryOlenin
17-04-2006, 00:06
Пока что решил переименованием длинных файлов и вот таким куском в батнике преинсталла:

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

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

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

DmitryOlenin
19-04-2006, 00:57
Помогите пожалуйста... Уже не могу понять, что я делаю не так и почему из загрузчика Hiren Boot CD все работает как надо, а из такого же, но отдельного образа ничего не копируется...

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

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

DmitryOlenin
19-04-2006, 01:16
Vadikan
Конечно, все 4 пункта проходят проверку на правильность.
В том-то и дело...

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

DmitryOlenin
19-04-2006, 11:54
Вопрос видоизменяется.
Опытным путем выяснил, что дело не в драйверах 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
Вопрос решил. Оказывается простое решение лежало совсем рядом ;)
Смена диска на 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
DmitryOlenin прекрассная работа. Возможно тему следует переимекновать, чтобы она отражала содержимое шапки? Или лучше, представить материал в виде статьи :up:

Apple58
19-04-2006, 21:49
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
qeraser, Apple58

Отредактировал первое сообщение (http://forum.oszone.net/showthread.php?p=428253#post428253). Сделал довольно подробную инструкцию.
Пользуйтесь на здоровье. Вопрос по переименованию задал Vadikan-у, ждем ответа ;)

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

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

godoo
20-04-2006, 17:07
Apple58 используй BCDW там для этой цели используется файлик BOOTFIX.BIN

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

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

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

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

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




© OSzone.net 2001-2012