Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Windows Preinstallation Environment(WinPE) и BartPE LiveCD 7

Автор: NIKZZZZ
Дата сообщения: 31.07.2010 21:18
mat86

Цитата:
без перезагрузки, запустили DrWeb CureIt и она распаковалась в с:\tmp?

Совершенно верно, достаточно было только второй команды.


Добавлено:

Цитата:
А у меня так и распаковывается в B:\

А что показывает "Set" ?


Добавлено:
aftertime

Цитата:
почему то при старте очень долго (15-30 секунд, зависит от конфигурации компьютера) идет определения размера рамдрайва.

Скорее всего это определяется не созданием Ram диска, а каким-то запущенным ранее параллельным процессом.


Добавлено:
mat86
Я описался

Код: SetX.exe Tmp c:\temp
Автор: mat86
Дата сообщения: 31.07.2010 21:44
set после команды показывает
Цитата:
temp=B:\
tmp=B:\
. Дело в том что в реестре запись в двух местах в
Цитата:
HKCU\Environment\TEMP и TMP
здесь значения изменились. И в
Цитата:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\temp и tmp
здесь значения остались B:\
Автор: OpenGL32
Дата сообщения: 31.07.2010 21:51
mat86

Цитата:
Обратился к знакомому праграмисту, сказал можно сделать программу которая заставит перечитать реестр не перезагружая.


Как бы этот код и должен это сделать:

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM) "Environment", SMTO_ABORTIFHUNG,
5000, &dwReturnValue);

но видать это немного не то или я не так понял смысл этого.


Цитата:
Сказал что проще запускать программу с командой


Да... получается что это самый надежный метод


NIKZZZZ
То что распаковывается в tmp заметил, вот только эти параметры применять только к следующей открытой консоли, а проводник будет запускать со старыми значениями переменных....

Может быть SendMessageTimeout(HWND_BROADCAST... и сообщит проводнику что эти значения сменились...

уж проще через "Запустить с %temp%=С:\TEMP" )))




Добавлено:
mat86

SetX сменила для текущего пользователя (HKCU\Environment\)


Автор: NIKZZZZ
Дата сообщения: 31.07.2010 22:02
mat86

Цитата:
set после команды показывает

А консоль перезапускал ?


Цитата:
здесь значения остались B:\


Добавь ключ -m

Код: SetX.exe Tmp c:\temp -m
Автор: mat86
Дата сообщения: 31.07.2010 22:03
а подскажите как выглядит команда
Цитата:
"Запустить с %temp%=С:\TEMP"
на примере DrWeb CureIt.

Автор: OpenGL32
Дата сообщения: 31.07.2010 22:07
Из винды работает и через батник

set temp=C:\temp
set tmp=C:\temp
cureit.exe

из Winpe не сработало


Если знаком с программированием, то...

http://msdn.microsoft.com/en-us/library/ms682009(v=VS.85).aspx

Example 2

Можно сделать запускающий модуль

STARTUPINFO si;
PROCESS_INFORMATION pi;
DWORD dwFlags=0;

ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);

SetEnvironmentVariable("TEMP", "C:\\temp");
SetEnvironmentVariable("TMP", "C:\\temp");
CreateProcess("путь к приложению", NULL, NULL, NULL, TRUE, dwFlags, NULL, NULL, &si, &pi);

буду использовать этот вариант
Автор: mat86
Дата сообщения: 31.07.2010 22:10
NIKZZZZ запустил с ключем -m в реестре везде стало С:\TEMP, но set всеравно показывает B:\


Добавлено:
OpenGL32

Цитата:
Из винды работает и через батник

set temp=C:\temp
set tmp=C:\temp
cureit.exe

из Winpe не сработало
у меня сработало, только не bat а cmd
Автор: NIKZZZZ
Дата сообщения: 31.07.2010 22:19
mat86

Цитата:
но set всеравно показывает B:\

Перезапусти консоль!
Нашел сборку на базе BsExplorer, проблем не увидел.


Автор: mat86
Дата сообщения: 31.07.2010 22:37
NIKZZZZ
перезапустил и запустил из под чистого Bart, не, всеравно set показывает B:\, хотя в реестре везде С:\

Добавлено:
OpenGL32, а у вас работает
Цитата:
SetX.exe Temp c:\temp

Цитата:
SetX.exe Tmp c:\tmp
?
Автор: OpenGL32
Дата сообщения: 31.07.2010 22:41
mat86

Да, работает.

После SetX.exe Temp c:\temp нужно открыть новую консоль и в ней set уже выведет новые значения, может в этом дело?
Автор: mat86
Дата сообщения: 31.07.2010 22:49
Ну а DrWeb CureIt запустился с C:\temp?
Автор: OpenGL32
Дата сообщения: 31.07.2010 22:59
mat86
да.
создал на С папку 999
прописал setx tmp C:\999
запустил новую консоль, а из нее запустил cureit
распаковалась в C:\999
Автор: mat86
Дата сообщения: 31.07.2010 23:07
У меня никак что только ни делал. Чтож прийдется делать
Цитата:

set temp=C:\temp
set tmp=C:\temp
cureit.exe
или ждать пока праграмист напишет прогу(а вдруг поможет).
Автор: AZJIO
Дата сообщения: 02.08.2010 02:48
Alexey32
txtsetup.sif2reg потестируй.

цикла [SCSI.Load] не было, данные брались из PCI\VEN_0E11&DEV_AE10 = "cpqarray". Теперь удалил форму

Цитата:
[HKEY_LOCAL_MACHINE\t\ControlSet001\Services\Cpqarray]
"ErrorControl"=dword:00000001
"Group"="SCSI miniport"
"Start"=dword:00000004
"Type"=dword:00000001
из цикла [HardwareIdsDatabase] и вставил в цикл [SCSI.Load].

Сделал 3 цикла:
1. с GUID, искать по reg-файлу "# цикл HID - GUID", если отмечена галочка "подсказки"
2. без GUID, искать по reg-файлу "# цикл HID - без GUID", если отмечена галочка "подсказки"
3. SCSI.Load, искать по reg-файлу "# цикл SCSI.Load", если отмечена галочка "подсказки"
Автор: VV2006
Дата сообщения: 02.08.2010 17:27
NIKZZZZ
Можно ли как исхитриться, чтобы использовать способ загрузки, предложенный Alexey32 а) с CD, б) из бут-вима?
Фокус с setupldr.bin -> ntldr и I386 -> MiniNT для загрузки с хардов известен, а вот как бы сделать обратное? Смысл - экономия времени загрузки за счёт использования в PE уже готового куста system с базовой поддержкой железа.
Фантастика?
Автор: NIKZZZZ
Дата сообщения: 02.08.2010 17:55
VV2006

Цитата:
Смысл - экономия времени загрузки за счёт использования в PE уже готового куста system с базовой поддержкой железа.

Главное преимущество WinPe - способность грузиться на любом железе, то-есть именно избавиться от привязки к железу.
Зачем тогда она нужна? Проще создать образ полноценной Windows, который можно грузить с флэшки (с CD не пробовал), способы неоднократно описаны.



Автор: VV2006
Дата сообщения: 02.08.2010 18:15
NIKZZZZ
Так в названном способе system используется как раз для универсальной загрузки. Привязки к конкретному железу здесь и нет. Время экономится за счёт того, что в отличии от setupldr.bin ntldr загружает куст system с базовой поддержкой железа без загрузки кучи дров и последующего детекта из них применимых к системе.
Добавлено:

Цитата:
образ полноценной Windows, который можно грузить с флэшки (с CD не пробовал), способы неоднократно описаны.

Давно как-то пробовал способ загрузки полной XP с CD- работает, но не понравилась долгая загрузка и отсутствие поддержки USB: USB-клава, USB-мышь и сообщение винды типа нажмите чёнить для установки обнаруженного устройства.
Автор: NIKZZZZ
Дата сообщения: 02.08.2010 18:48
VV2006

Цитата:
и последующего детекта из них применимых к системе.

Это верно только частично, попытка применить уже установленный драйвер часто приводит в BSOD, установленная видеокарта приводит к черному экрану, конфликты драйверов - нельзя установить новый драйвер, не испортив старый и т.п.
Особенно это проявляется на этапе загрузки (в WinPe эту проблему решает ntdetect.com, который и создает куст System реестра на этапе загрузки)



Добавлено:
VV2006

Цитата:
но не понравилась долгая загрузка и отсутствие поддержки USB: USB-клава, USB-мышь и сообщение винды типа нажмите чёнить для установки обнаруженного устройства.

Но это как-раз решаемые вопросы.

Автор: VV2006
Дата сообщения: 02.08.2010 18:52
NIKZZZZ

Цитата:
попытка применить уже установленный драйвер часто приводит в BSOD
В этом system драйверы из обоймы SafeMode+приняты меры по предотвращению возможных блусодов.
Добавлено:

Цитата:
как-раз решаемые вопросы.
Ну да, потом (когда интерес поугас) и решение подоспело.
Автор: Alexey32
Дата сообщения: 02.08.2010 19:06
VV2006
Про рамбут на ntldr нужно курить маны, да и (имхо) ускорения ты не получишь. А про CD писал уже:

Цитата:
Мне удалось загрузить мою сборку с CD через ntldr. Я записал CD, используя тузлу от мелкософта - hd2iso. Она, в отличие от Nero, умеет грузить не только fat16, но ещё и fat32 и ntfs. Также я использовал eltorito.sys из Embedded. Грузится дольше обычного. Необходимо юзать fbwf для fat16/32, а для ntfs имхо fbwf недостаточно - нужно юзать ewf. Если кому интересно - здесь eltorito.sys, hd2iso.exe, inf-файл и reg-файл.

NIKZZZZ
Ну нету у меня привязки к железу, хоть тресни! Винда точно также определяет девайсы по HID и грузит дрова.
Автор: VV2006
Дата сообщения: 02.08.2010 19:17
Alexey32
Точно! Проглядел... Мысль была об аналогии с поддержкой USB - о добавлении CD-поддержки в Boot Bus Extender.
Да, а насчёт вим-бута, если будет грузиться system, с чего ты решил что ускорения это не даст?
Автор: Alexey32
Дата сообщения: 02.08.2010 21:17
VV2006
Про вимбут я ничего не говорил, да и по нему я полный чайник. Он тоже в рамдиск грузится? А рамбут не ускорится потому, что основное время загрузки - загрузка образа в память. А потом всё происходит моментально. Кстати - ntldr рамбут имхо с CD работать не будет.
Автор: VV2006
Дата сообщения: 02.08.2010 21:51
Alexey32

Цитата:
тоже в рамдиск грузится? А рамбут не ускорится

WimBootСсылка:

Цитата:
The system is loaded in RAM and does not demand CD after loading.
Speed of loading in 2-3 times is more.
The size is reduced ~ 2 - 3.5
Economy of memory.
Автор: AZJIO
Дата сообщения: 02.08.2010 22:12
Alexey32
Смотря с чего грузить. С харда Wim грузится секунды, основная доля старт служб. Да и с флешки через плоп если не ошибаюсь, секунд то ли 12 то ли 25, а потом все равно дольше. У меня две минуты минуты с харда, с сетью. Размер wim 200Мб.
Автор: Alexey32
Дата сообщения: 02.08.2010 22:50
Попробую. А пока я поехал подавать документы в вуз.
Автор: aftertime
Дата сообщения: 03.08.2010 10:42
Здравствуйте!
есть вим сборка, все в ней хорошо, драйвера вынесены за пределы вима и отлично подхватываются zpnp от NIKZZZZ (за что ему большое спасибо)
такой вопрос:
когда я выношу программы за пределы вима, приходится прописывать в basepe.inf абсолютный путь для переменной ProgramFiles (поскольку иначе программы не находятся системой, не создаются к ним ярлыки и т.д.)
пример:
0x2,"ControlSet001\Control\Session Manager\Environment","ProgramFiles","D:\Programs" (диск у меня при загрузке получает именно эту букву)
можно ли добавить какую-то переменную, словом отказаться от абсолютного пути? (или как присвоить диску другую букву?)
просто не у всех, кто тестирует сборку диску присваивается нужная буква.
сегодня утром наткнулся на утилиту Sh, но пока не было времени разобраться с ней, да и может есть путь, не требующий дополнительного софта
Автор: conty9
Дата сообщения: 03.08.2010 11:40
aftertime, изменить букву подключенного носителя в РЕ после загрузки сложно. Переменная, скорее всего, будет работать только после перезагрузки (т.е., в РЕ - никогда). Для себя в SV-MicroPE CD/USB 2k10 PlusPack решил проблему с помощью монтирования папки PePrograms как диска Y:\, что позволило прописать в меню постоянные пути
Код: SUBST.EXE Y: %~d0\PePrograms
Автор: aftertime
Дата сообщения: 03.08.2010 11:45
conty9
сабст, хм, как я сам не додумался, спасибо
интересно, а отдельный вим с программами нельзя ли подмонтировать на тот же диск, куда была смонтирована система? в моем случае это диск X: (тогда и менять ничего не придется, да и вим смонтирован на чтение и запись)
Автор: VV2006
Дата сообщения: 03.08.2010 11:57
Почитал о создании hd2iso Eltorito CD, смысла использовать его для скоростной загрузки по всем видам нет.
Автор: 1MDI1
Дата сообщения: 03.08.2010 12:36
aftertime

Цитата:
интересно, а отдельный вим с программами нельзя ли подмонтировать на тот же диск, куда была смонтирована система?

Меня тоже интересует этот вопрос, хотел вынести программы из основного WIM образа в PEPrograms но за счет этого вырастает размер ISOхи для меня это критично, т.к. загрузка идет с флэхи и ISOха полностью мапится в память!
Думал зажать PEPrograms в отдельный WIM и после загрузки системы его монтировать и запускать SH. Но пока не доходит как это осуществить.
Идеи, предложения?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677

Предыдущая тема: обновления в эксплорере с вирусом?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.