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

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

Аватара для R@MZEZzz

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


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

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


Сорри, что занимаюсь некрофилизмом , но может еще актуально

Сделал я такой диск:
- Собрал Windows PE самый простецкий, без рамдиска и прочей ерунды, с плагином Acronis'a (True Image Echo Server) и пачкой masssstorage драйверов и добавил туда trueimagecmd.exe
- Сделал 2 разных загрузчика setupldr.bin и setupld1.bin, в которых подправил имена подхватваемых кустов реестра setupreg.hiv и setupre1.hiv соответственно, в которых, в свою очередь, прописал разные команды на запуск оболочки, create.exe и restore.exe (это всё чтобы 2 разных ПЕшки на диск не писать)
- create.exe и restore.exe написал на AutoIt'e:

(trueimagecmd.exe со всем акронисом лежит в ситемной папке)
create.exe: Автоматом создаёт образ 1-го раздела на 2м логическом диске (обычно D:) в папочке $fld
читать дальше »
Код: Выделить весь код
$fld="DoNotDelete\"
$cmd="trueimagecmd.exe "
$pass="00000000"
$filename="backup.tib"
$newfilename="backup1.tib"
$oldfilename="backup_old.tib"
$flag=0
$ADRIVES=DriveGetDrive("FIXED")
If IsArray($ADRIVES) Then
	if $ADRIVES[0]>1 Then
		$drive=$ADRIVES[2]&"\"
		FileDelete($ADRIVES[1]&"\hiberfil.sys")
		FileDelete($ADRIVES[1]&"\pagefile.sys")
		RunWait($cmd&"/create /filename:"""&$drive&$filename&""" /partition:1-1 /password:"&$pass)
		if FileExists($drive&$fld&$filename) then FileMove($drive&$fld&$filename,$drive&$fld&$oldfilename,9)
		FileMove($drive&$newfilename,$drive&$fld&$filename,9)
		FileMove($drive&$filename,$drive&$fld&$filename,9)
	Else
		MsgBox(0,"AutoRestore","Найден только один раздел, для создания образа необходимо минимум 2 раздела!")
	EndIf	
Else 
	MsgBox(0,"AutoRestore","Не найдены жесткие диски. Попробуйте ручной режим!")
EndIf


restore.exe: Автоматом восстанавливает образ на 1й раздел 1-го диска из файла $fld \ $filename, который ищется на всех остальных дисках, и если не находит, то запрашивает найти и выбрать его вручную
читать дальше »
Код: Выделить весь код
$fld="DoNotDelete\"
$cmd="trueimagecmd.exe "
$pass="00000000"
$filename="backup.tib"
$flag=0
$ADRIVES=DriveGetDrive("FIXED")
If IsArray($ADRIVES) Then
	For $i=1 to $ADRIVES[0]
		if(FileExists($ADRIVES[$i]&"\"&$fld&$filename)) Then $flag=$i
	Next
	if $flag>0 Then
		$drive=$ADRIVES[$flag]&"\"
		FileMove($drive&$fld&$filename,$drive&$filename,1)
		RunWait($cmd&"/deploy /filename:"""&$drive&$filename&""" /partition:1-1 /target_partition:1-1 /type:active /password:"&$pass)
		FileMove($drive&$filename,$drive&$fld&$filename,1)
	elseif MsgBox(4,"AutoRestore","Файл образа не найден, указать файл вручную?")=6 then
		$custom=FileOpenDialog("Выберите файл образа для восстановления",$ADRIVES[2]&"\","Файлы образов (*.tib)")
		if Not @error Then RunWait($cmd&"/deploy /filename:"""&$custom&""" /partition:1-1 /target_partition:1-1 /type:active /password:"&$pass)
	EndIf
Else 
	MsgBox(0,"AutoRestore","Не найдены жесткие диски. Попробуйте ручной режим!")
EndIf


Загрузчик сделал на основе isolinux, плюс прикрутил туда 2 "ручных режима", Первый запускает обычный загрузочный образ Акрониса, а второй запускает всё ту же PE, но с оболочкой в виде самого Акрониса (На случай если загрузочный акронис не увидит винтов (тут masstorage-драйверов то побольше)

Содержание isolinux.cfg:
читать дальше »

Код: Выделить весь код
PROMPT				0
TIMEOUT				100
NOESCAPE				1
ALLOWOPTIONS			0
DEFAULT vesamenu.c32
FONT bootfont.psf
MENU BACKGROUND boot.png
MENU WIDTH 45
MENU MARGIN 0
MENU ROWS 13
MENU TIMEOUTROW 20
MENU HELPMSGROW 18
MENU HELPMSGENDROW -1
MENU CMDLINEROW 35
MENU HSHIFT 2
MENU VSHIFT 5

	menu color screen		37;40      #00000000 #00000000 none
	menu color border		30;44      #00000000 #00000000 none
	menu color title		1;36;44    #ffFFAB00 #00000000 none
	menu color unsel		37;44      #ffEBEB11 #00000000 none
	menu color hotkey		1;37;44    #ff60CA00 #00000000 none
	menu color sel		7;37;40    #00000000 #ffffffff none
	menu color hotsel		1;7;37;40  #ff808080 #ff60CA00 none
	menu color scrollbar	30;44      #00000000 #00000000 none

	menu color tabmsg		31;40      #aaaaaaaa #00000000 none
	menu color cmdmark	1;36;40    #ffff0000 #00000000 none
	menu color cmdline	37;40      #aaaaaaaa #00000000 none
	menu color pwdborder	30;47      #ffff0000 #00000000 std
	menu color pwdheader	31;47      #ffff0000 #00000000 std
	menu color pwdentry	30;47      #ffff0000 #00000000 std
	menu color timeout_msg	37;40      #ffF27700 #00000000 none
	menu color timeout	1;37;40    #ffF27700 #00000000 none
	menu color help		37;40      #aaaaaa00 #00000000 none
	menu color msg07		37;40      #90ffffff #00000000 std

MENU AUTOBOOT Загрузка продолжится через # сек

LABEL p_hdd
	MENU DEFAULT
	MENU LABEL Продолжить загрузку с жесткого диска
	LOCALBOOT 0x80
	
MENU SEPARATOR

LABEL s_restore
	MENU LABEL Восстановить операционную систему
	KERNEL /restore.bin
	TEXT HELP
Автоматическое восстановление образа системы.
ВНИМАНИЕ! ВСЕ ДАННЫЕ НА ДИСКЕ 'C' БУДУТ УДАЛЕНЫ!
	ENDTEXT

	MENU SEPARATOR
	MENU SEPARATOR
	MENU SEPARATOR

LABEL s_create
	MENU LABEL Создать новый образ
	KERNEL /create.bin
	TEXT HELP
Автоматическое создание нового образа диска 'С'
	ENDTEXT

LABEL s_manual1
	MENU LABEL Ручной режим 1
	KERNEL /ATIES.KRN vga=788 ramdisk_size=32768 acpi=off quiet noapic mbrcrcs on
	INITRD /ATIES.FS
	TEXT HELP
Ручной режим 1
	ENDTEXT

LABEL s_manual2
	MENU LABEL Ручной режим 2
	KERNEL /manual.bin
	TEXT HELP
Ручной режим 2
	ENDTEXT


Получилось всё на 240 Мб, что нибудь еще пообрезать, да можно на миниСД записывать.

Если кому то данная информация пригодится, дайте знать, нажав на кнопочку "Полезное сообщение" 7

Последний раз редактировалось R@MZEZzz, 24-10-2009 в 14:30. Причина: Исправление кода

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:18, 19-10-2009 | #7