Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 69
Благодарности: 11

Профиль | Отправить PM | Цитировать


я создал свой WinPE 3.0 добавив в качестве шела Total Commander, на Virtual Box установил чистый Windows XP собрал его в WIM-образ и с помощью утилиток diskpart и imagex размечаю диск и устанавливаю XP из собранного WIM-образа.
По поводу правильной сборки WIM образа при использование Virtual Box читаем тут:
http://habrahabr.ru/blogs/windows/73268/
Ну, а по поводу интеграции Total Commander мой вариант вот:
1. Смонтировал winpe.wim и создал где положено файлик
Winpeshl.ini:
Код: Выделить весь код
[LaunchApp]

[LaunchApps]
%SYSTEMROOT%\System32\wpeutil.exe, "SetKeyboardLayout 0409:00000409"
%SYSTEMROOT%\System32\wpeutil.exe, "InitializeNetwork"
%SYSTEMROOT%\System32\shell.cmd
2. Создал скрипт
shell.cmd:
Код: Выделить весь код
:: утилитка скрывающая окно CMD
cmdow @ /hid
@echo off

:: цикл, в котором на всех дисках ищется файлик flashtag и 
:: буква диска, где есть этот файлик присваивается переменной %FLASH%
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:\flashtag SET FLASH=%%d:

:: добавляем нужные нам пути в переменную %PATH%
SET PATH=%PATH%;%FLASH%\soft;%FLASH%\soft\tools

:: запускаем Total Commander и в качестве параметров 
:: указываем файлик с его настройками подготовленный заранее
start /wait %FLASH%\soft\totalcmd\TOTALCMD.EXE /i=%FLASH%\soft\totalcmd\wincmd.ini /L=%FLASH%\ /R=X:\
exit
Я специально не стал размещать Total Commander внутри самого winpe.wim чтобы не разбазаривать оперативку, необходимую для PE. C этой же целью не стал добавлять нужные мне утилитки непосредственно в winpe.wim, а скопировал их на флешку/диск. Для этого и добавил путь %FLASH%\soft\tools к переменной окружения %PATH%.

3. В файлик настроек Total Commander я добавил секцию
wincmd.ini:
Код: Выделить весь код
* * *
[DirMenu]
menu1=Repartition Disk 0
cmd1=%FLASH%\exec\repartition_disk_0.cmd
menu2=Repartition Disk 1
cmd2=%FLASH%\exec\repartition_disk_1.cmd
menu3=Apply Windows XP Pro SP3 VLK Ru on Drive C
cmd3=%FLASH%\exec\apply_wim.cmd xp vlk
menu4=Apply Windows XP Pro SP3 OEM Ru on Drive C
cmd4=%FLASH%\exec\apply_wim.cmd xp oem
menu5=Apply Windows XP Pro SP3 HOME Ru on Drive C
cmd5=%FLASH%\exec\apply_wim.cmd xp home
menu6=Acronis Backup & Recovery
cmd6=%FLASH%\exec\acronis.cmd
menu7=AIDA64
cmd7=%FLASH%\soft\AIDA64\aida64.exe
menu8=Ultra ISO
cmd8=%FLASH%\soft\UltraISO\UltraISO.exe
* * *
По сочетанию клавиш Ctrl+D вызывается данное меню. Думаю, по содержанию тут всё понятно.

4. Скрипт repartition_disk_0.cmd запускает лишь одну строку diskpart /s %FLASH%\exec\repartition_disk_0.txt - т.е. утилита diskpart отрабатывает по сценарию описанному в файле
repartition_disk_0.txt:
Код: Выделить весь код
select disk 0
clean
create partition primary
active
assign
format quick
В данном случае первый установленный в системе жесткий диск очищается от всего, а потом на нём создаётся первичный раздел, этот раздел делается активным (чтобы он был загрузочным) и форматируется. Использование заранее определённых сценариев diskpart очень ускоряет процесс подготовки HDD для установки системы, можете наделать их по своему предпочтению.

5. Ну, и последний скрипт, который при помощи утилитки imagex устанавливает windows. У меня скрипт универсальный. Как можно увидеть из команд запускаемых в меню Total Commander (см п. 3) скрипт запускается с параметрами apply_wim.cmd xp vlk. Первый параметр это имя WIM-образа (без расширения), второй параметр это издание внутри указанного WIM-образа. Ну, и сам скрипт
apply_wim.cmd:
Код: Выделить весь код
@echo off
if /i "%1"=="" goto usage
if /i not "%1"=="xp" if /i not "%1"=="vista" if /i not "%1"=="seven" goto usage
if /i "%2"=="" goto usage
if /i not "%3"=="" goto usage


set izdanie=0
rem -------------------- XP edition select -----------------------
if /i "%1"=="xp" (
	if /i "%2"=="vlk" (
		set izdanie=1 
		goto install
	)
	if /i "%2"=="oem" (
		set izdanie=2
		goto install
	)
	if /i "%2"=="home" (
		set izdanie=3
		goto install
	)
)
rem ------------------ SEVEN edition select ----------------------
if /i "%1"=="seven" (
	if /i "%2"=="homebasic" (
		set izdanie=1 
		goto install
	)
	if /i "%2"=="homepremium" (
		set izdanie=2
		goto install
	)
	if /i "%2"=="professional" (
		set izdanie=3
		goto install
	)
	if /i "%2"=="enterprise" (
		set izdanie=4
		goto install
	)
	if /i "%2"=="ultimate" (
		set izdanie=5
		goto install
	)
)

:install
if %izdanie%==0 goto usage
rem echo imagex /apply %FLASH%\images\%1.wim %izdanie% c:\
if NOT EXIST %FLASH%\images\%1.wim goto wimerror
imagex /apply %FLASH%\images\%1.wim %izdanie% c:\


goto :EOF

:usage
echo Usage: apply_wim [xp^|vista^|seven] [oem^|vlk^|home] ^| [homebasic^|homepremium^|professional^|enterprise^|ultimate]
echo.
echo Example: apply_wim xp oem
pause
goto :EOF

:wimerror
echo WIM-image not found!
pause
goto :EOF
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:46, 12-08-2011 | #5