Войти

Показать полную графическую версию : (solved) Как автоматически изменить boot.ini при установке


Vovanchik
07-05-2005, 01:42
возможно эта тематика уже поднималась на форуме, но внятного ответа на свой вопрос я так и не нашел...
короче вот в чем проблема - необходимо после установки автоматически заменить в файле boot.ini фразу NoExecute=OptIn на NoExecute=AlwaysOff

Vadikan
07-05-2005, 04:20
Vovanchik
bootcfg raw
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/bootcfg.mspx

Vovanchik
08-05-2005, 00:24
пасибки

тока теперь встречный вопрос - если в системе уже прописана винда в boot.ini и это далеко не XP SP2 - а этой командой можно задать параметры ядра конкретного пункта автозагрузки... можно и прмахнутся...

хотелась бы имеено заменить просто одно слово в текстовом файле на другое при его наличии... возможно и не в одном месте...

может кто подскажет как это батником оформить?

Vadikan
08-05-2005, 08:40
Не понял вопрос. Если не SP2, то и NoExecute там нет. Даже если параметр добавить, то он не сработает.

Vovanchik
09-05-2005, 16:19
в том то и дело что первой операционкой моджет стоять другая винда... ну допустим 98 или 2k
а вторым уже припишется ХPеновина. так что добавлять этот параметр придется ко всем возможным вариантам, т.е. грубым перебором всех.
насколько я понял синтаксис команды - она позволяет формировать параметры которые передаются ядру при загрузке причем не глядя что это за ядро, а просто отсчитывая его порядковый номер в списке.
(кстати я так и не понял как ДОБАВЛЯТЬ значение... у меня получилось только сформировать ВСЕ параметры заново с затиранием предыдущих, может я чего не так понял?)
так что просто замена одного значения другим в файле мне кажется более красивым и удобочитаемым в дальнейшем решением.
Может я не прави и существует более красивая и логичная реализация?

Vadikan
10-05-2005, 08:44
Vovanchik
Попробуй
[Data]
OSLoadOptionsVar = "/noexecute=AlwaysOff"

Vovanchik
10-05-2005, 13:02
блин, ну это совсем просто...
))
чета я вот сюда за этим заглянуть и не додумался..
пасиб...
ща попробую

Vovanchik
10-05-2005, 15:31
тока что попробовал - не прокатило.. буду копать дальше

кстати извиняюсь за глупый вопрос но winnt.sif согласно ref такого параметра не поддерживает

Vadikan
10-05-2005, 22:05
Vovanchik
winnt.sif согласно ref такого параметра не поддерживаетДа, в ref.chm нет такого. Единственное упоминание на MS - в этой статье М$ КВ (http://support.microsoft.com/kb/875352), однако там просто сказано For unattended installations of Windows XP SP2 or later versions, you can use the Unattend.txt file to pre-populate a specific DEP configuration. You can use the OSLoadOptionsVar entry in the [Data] section of the Unattend.txt file to specify a system-wide DEP configuration.
Где-то на MSFN я видел такой же параметр в секции [SetupData], но это тоже угадайка.

Если не сработает, то тогда надо скрипт писать, который проверит наличие параметра и заменит его при нбх. http://www.robvanderwoude.com/batexamples_0c.html#B там есть скрипт заменяющий таймаут в boot.ini. Попробуй его изменить под свои нужды.

Vovanchik
11-05-2005, 04:20
вот чего пишут на русском мелкомягком
При установке Windows XP с пакетом обновления 2 (SP2) в автоматическом режиме можно указать параметры конфигурации DEP в файле Unattend.txt. Требуемый режим DEP указывается в качестве значения параметра OSLoadOptionsVar, находящегося в разделе [Data] файла Unattend.txt.

ща попробую так
[Data]
OSLoadOptionsVar = "AlwaysOff"

Vovanchik
11-05-2005, 05:07
блин все перепробовал...
ну не в какую... а скрипт писать грамотно ой как ломает... так бадягу вроде сделал, но уж очень она коряво работает...

Vovanchik
11-05-2005, 15:01
вот чего нашел в ref для win2003sp1
The [SetupData] section contains the OSLoadOptionsVar entry, used to modify the /NoExecute option in Boot.ini used by Data Execution Prevention (DEP).

Sample
This sample demonstrates one use of the [SetupData] section of Unattend.txt.

[SetupData]
OSLoadOptionsVar = "/noexecute=OptIn"

OSLoadOptionsVar
Modifies the /NoExecute option in Boot.ini used by Data Execution Prevention (DEP).

Syntax OSLoadOptionsVar = {"/noexecute=AlwaysOn" | "/noexecute=AlwaysOff" | "/noexecute=OptIn" | "/noexecute=OptOut"}



применил вот так вот
[SetupData]
OSLoadOptionsVar = "/noexecute=AlwaysOff"

получил вот это в результате
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect /noexecute=AlwaysOff

причем ядру передался именно первый параметр

вот такой вот Modifies
((

Vovanchik
12-05-2005, 15:20
победил...
http://thethin.net/chgstr95.zip

ATTRIB -H -S -R %SystemDrive%\BOOT.INI
chgstr "optin" "AlwaysOff" %SystemDrive%\BOOT.INI
ATTRIB +H +S +R %SystemDrive%\BOOT.INI


+ 48 килов к дистрибутиву
))

Vadikan
12-05-2005, 18:18
Vovanchik
Молодец! Сам спросил - сам ответил. Сорри, я поздновато нашел интересную тему (http://www.msfn.org/board/index.php?showtopic=34603) на MSFN. Там как раз такой вопрос обсуждался и был решен без всяких утилит.

A вот еще одна тема (http://www.msfn.org/board/index.php?showtopic=42248) про замену текста.

Pandora
29-05-2005, 08:09
Здравствуйте. На винчестере установлены 2 Windows XP SP2. Обе на основных
разделах. Boot.ini:
[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional SP2" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Pro SP2" /noexecute=optin /fastdetect
Как возможно прописать строку загрузки на 2 ОС из командного файла?
Я пробовал
CLS
@echo off
attrib -r -a -h -s %systemdrive%\boot.ini
bootcfg /copy /d "Windows XP Pro SP2" /id 1
attrib +r +a +h +s %systemdrive%\boot.ini
exit
но выводится только копия 1 строки,
[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional SP2" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional SP2" /noexecute=optin /fastdetect
а как поменять номер раздела непонятно. В Справочнике по командной строке Windows XP нет команды на создание нового экземпляра ОС.

D@nil
29-05-2005, 10:23
Имхо быстрее через echo >
CLS
@echo off
attrib -r -a -h -s %systemdrive%\boot.ini
echo multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Pro SP2" /noexecute=optin /fastdetect >> boot.ini
attrib +r +a +h +s %systemdrive%\boot.ini
exit

Pandora
30-05-2005, 05:24
D@nil
Спасибо. Всё замечательно работает.




© OSzone.net 2001-2012