26-02-06 12:22
Boot CD/DVD za Windows XP: II dio
piše DRAGO RADIĆ
Prije nastavka priče iz prvog dijela evo prikaza varijabli radnog okruženja kada se računalo 'podigne' s Boot CD-a.
X:\i386\System32>set ALLUSERSPROFILE=B:\Documents and Settings\All Users AppData=B:\Documents and Settings\Default User\Application Data AutoRun=1 CommonProgramFiles=%ProgramFiles%\Common Files COMPUTERNAME=SERVIS1 ComSpec=X:\i386\system32\cmd.exe OS=Windows_NT path=B:;X:\i386;X:\i386\System;X:\i386\System32;X:\BAT; X:\PROGS;X:\TOOLS;X:\Bin PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH ProfilesDir=B:\Documents and Settings ProgramFiles=%ProgramFiles% PROMPT=$P$G ramdrv=B: SystemDrive=X:
SystemRoot=X:\i386 temp=B: tmp=B: USERPROFILE=B:\Documents and Settings\Default User windir=X:\i386
Dakle, operativni sustav se nalazi na pogonu [X:], profili i privremeni sadržaji na pogonu [B:], a windows mapa je [windir=X:\i386].
Svaki plugin stoji u svojoj mapi. Ako ih uzimate s Interneta, zapakirani su u .CAB datoteku i mogu se izravno dodati iz nje izborom <Add> sa slike 3 iz prvog dijela, ili se raspakirano kopira. Sastav plugin-a koji će se dalje razmatrati prikazan je u narednom ispisu:
E:\2xexplorer>dir Volume in drive E is Data Volume Serial Number is 1369-6913 Directory of E:\2xexplorer
04.01.06 23:07 <DIR> . 04.01.06 23:07 <DIR> .. 04.01.06 23:07 1'266 2xexplorer.htm 04.01.06 23:07 1'156 2xexplorer.inf 04.01.06 23:07 512 2xexplorer.xml 04.01.06 23:07 <DIR> files 3 File(s) 2'934 bytes 3 Dir(s) 9'502'711'808 bytes free
Mapa sadrži .htm datoteku u kojoj je opis što plugin radi i kako ga uporabiti. Tu je i .inf datoteka u kojoj je IME plugin-a [PEBuilder – sekcija] koje se vidi u prozoru sa slike 3, status da li će se instalirati (0) ili ne (1), te svi potrebni podaci koje će sadržavati izgrađeni 'registry'. U .xml datoteci je sadržaj koji se pri postupku kreiranja CD-a pridoda [append - sekcija] osnovnom sadržaju datoteke nu2menu.xml u mapi [BartPE\Programs\Nu2Menu].
Dakle mapa u kojoj je plugin i njegov naziv ne moraju biti isti. Ni mapa [files] ne mora postojati, niti se tako zvati, jer se sve što se plugina tiče nalazi u .inf datoteci, ali svi plugin-ovi s Interneta tako ga nazivaju.
E:\2xexplorer>cd files E:\2xexplorer\files>dir Volume in drive E is Data Volume Serial Number is 1369-6913
Directory of E:\2xexplorer\files
04.01.06 23:07 <DIR> . 04.01.06 23:07 <DIR> .. 01.01.05 01:01 154'780 2xexplorer.chm 01.01.05 01:01 598'016 2xexplorer.exe 04.01.06 23:07 765 ramdisk_2xex-Z1.CMD 3 File(s) 753'561 bytes 2 Dir(s) 9'502'711'808 bytes free
Pa kad već postoji sloboda u nazivu mape plugin-a, radi preglednosti sam ih označavao na slijedeći način:
[mapa] ; plugin koji treba sve od navedenog u mapi
[_mapa] ; plugin koji sadrži neizvršive datoteke (upute) ili samo puni 'registry' za dodatnu potporu, recimo za COM port, miša, 16 bit-nu potporu i slično.
[#mapa] ; dodatni driver-i koji nisu u mapi [drivers] kao recimo kabelski modem.
[!mapa] ; mapa koja sadrži sve što ne spada u prethodne tri
Iz primjera se vidi dodavanje datoteke ramdisk_2xex-Z1.CMD, što znači da će se program izvršiti s [B:]. U mapi [files] mogu se još kreirati datoteke kao autorun1_add-file.cmd ili autorun2_ramdisk.cmd. Broj nakon ključne riječi 'autorun' određuje redoslijed izvršavanja prilikom starta CD-a. Naravno i ova mogućnost je plugin koji ima svoj autorun.htm u kojem je opisano kako se to radi. Prvo treba pokrenuti dodavanje datoteka koje nedostaju i njihovu registraciju (recimo neke VB ili .NET datoteke), zatim auto-detekciju USB uređaja, podršku za mrežu i povezivanje na mrežu, ispis parametara na ekranu ili pak sve to složiti prema nekom drugom redoslijedu.
Primjer .info datoteke za '2xexplorer'je:
; ---------------------------------------- ; PE Builder v3 plugin INF file for ; 2xexplorer Z1 ; ; Plugin by Nikolaos Achilleos Bozinis (Ph.D.) ; http://netez.com/2xExplorer/ ; N.Bozinis@ic.ac.uk ; Centre for Process Systems Engineering ; ---------------------------------------- ; Created with PluginCreator
[Version] Signature="$Windows NT$"
[PEBuilder] Name="2xexplorer Z1" Enable=0
Help="2xexplorer.htm"
[Append] nu2menu.xml, 2xexplorer.xml
[WinntDirectories] a="Programs\2xexplorer",2
[SourceDisksFiles] ; Program Files "files\2xexplorer.chm"=a,,1 "files\2xexplorer.exe"=a,,1 ; System Files "zipfldr.dll"=2 "unrar.dll"=2 ; Created Files "files\ramdisk_2xex-Z1.cmd"=a,,1
[SourceDisksFolders]
[Software.AddReg] ; HKLM\SOFTWARE ; XPE Shortcuts 0x2, "Sherpya\XPEinit\Programs", "Utilities\2xexplorer Z1\2xex-Z1", "%SystemDrive%\Programs\2xexplorer\ramdisk_2xex-Z1.cmd|| %SystemDrive%\Programs\2xexplorer\2xexplorer.exe" [SetupReg.AddReg] ; HKLM\SYSTEM
[Default.AddReg] ; HKU\.Default
[Software.DelReg] ; HKLM\SOFTWARE
[Default.DelReg] ; HKU\.Default
[AddLine] [DelLine] [SetValue] ; ----------------------------------------
Sekcija [PEBuilder] sadrži podatke o mapi plugina (može se po volji mijenjati), nazivu datoteke za pomoć (koja se ne mora zvati po imenu programa) te podatak Enable=1 ili Enable=0 što odlučuje da li će se plugin ukomponirati u CD ili neće. Ovaj podatak mijenja se kroz programsku potporu pebilder.exe (slika 3 iz prvog dijela) ili izravnim edit-iranjem .inf datoteke.
Dijelovi na koje treba obratiti pažnju su [WinntDirectories], [SourceDisksFiles] i [Software.AddReg]. Prvo određuje gdje će se instalirati aplikacija s 'a=', 'b=' itd, znači može se definirati više odredišta. Drugo upućuje na mjesto gdje se nalaze datoteke u plugin-u, mapa [files] na primjer i u koje odredište treba da idu ka0 '=a,,1' ili '=b,,1' ili '=2'. Dakle mogu se definirati i brojevi (ID) koji određuju odredište prema narednoj tablici. Treće određuje što treba dodati u 'registry' da bi aplikacija ispravno radila kao mjesto instalacije S/N i slično. Ako je potrebno, ovi se podaci mogu eksportirati iz 'registry'-a računala na kojem je aplikacija instalirana kao .reg datoteka i konvertirati u .inf datoteku (ima besplatnih alata za to) u kojoj će se potom sadržaj pročistiti od 'viška' tipa početne dimenzije prozora, izgled i slično, te kopirati u [Software.AddReg].
Umjesto punih imena datoteka i podacima o izvorištu mogu se koristiti zvjezdice (wildcard - *), ili sekcija [SourceDisksFolders].
Najčešći korišteni ID su:
ID |
Directory |
Remark |
1 |
\ |
SystemRoot (on CD this is the \i386) |
2 |
system32 |
|
3 |
system32\config |
|
4 |
system32\drivers |
|
5 |
System |
|
17 |
system32\drivers\etc |
|
20 |
Inf |
|
21 |
Help |
|
22 |
Fonts |
|
24 |
msagent\intl |
|
52 |
Msagent |
|
124 |
WinSxS |
|
128 |
WinSxS\Manifests |
|
30000 |
[root] |
PE Builder Output Root |
To je samo dio ID-a. Na Internetu se može naći negdje cjelokupan popis.
Datoteka 2xexporer.htm je uputa-pomoć koja se može napisati i dopunjavati po volji i nema bitnog značaja za izradu CD-a. Ne kopira se na CD.
Sekcija
[Append] sadrži naziv datoteke tipa .xml čiji sadržaj se pridodaje sadržaju datoteke nu2menu.xml u mapi [BartPE\Programs\Nu2Menu]. Sadržaj datoteke za ovaj primjer je:
<!-- Nu2Menu entry for "2xexplorer Z1" --> <NU2MENU> <MENU ID="Programs"> <MITEM TYPE="POPUP" MENUID="Utilities">Utilities</MITEM>
</MENU> <MENU ID="Utilities"> <MITEM TYPE="POPUP" MENUID="2xexplorer Z1">2xexplorer Z1</MITEM>
</MENU> <MENU ID="2xexplorer Z1"> <MITEM TYPE="ITEM" DISABLED="@Not(@FileExists(@GetProgramDrive()\ Programs\2xexplorer\ramdisk_2xex-Z1.cmd))" CMD="RUN" FUNC="@GetProgramDrive()\Programs\2xexplorer\ramdisk_2xex-Z1.cmd" PARM="1">2xex-Z1</MITEM>
</MENU>
</NU2MENU>
Preporuka je da se ova datoteka editira i da se doda prazan red na početku i na kraju, kako bi se ostvario razmak i konačna nu2menu.xml datoteka učinila preglednijom.
Ovaj kod znači da će se u glavnom izborniku izraditi podizbornik 'Programs' (podrazumno već postoji u nu2menu.xml), u kojem će biti podizbornik 'Utilities' u kojem je pojam '2xexplorer Z1' koji poziva na izvršavanje 2xexplorer.exe iz ramdisk-a preko datoteke ramdisk_2xex-Z1.CMD u kojoj je sadržaj:
@echo off :: ---------------------------------------- :: RAMDISK_2XEX-Z1.CMD - Script to start :: "2xexplorer.exe" From BartPE :: Adapted from adaware.cmd :: created by Bart Lagerweij. :: ----------------------------------------- echo RAMDISK_2XEX-Z1.CMD: Starting... setlocal if "%temp%" equ "" goto ERR if exist "%temp%\2xexplorer\2xexplorer.exe" goto RUN echo RAMDISK_2XEX-Z1.CMD: Copying "%~dp0*.*" to "%temp%\2xexplorer\" xcopy /s "%~dp0*.*" "%temp%\2xexplorer\" :RUN start "" "%temp%\2xexplorer\2xexplorer.exe" goto END :ERR echo. echo RAMDISK_2XEX-Z1.CMD: No temp variable set... echo RAMDISK_2XEX-Z1.CMD: This plugin needs a ramdisk... echo. pause :END endlocal
Obje datoteke mogu se naknadno prepravljati, ako se ukaže potreba. Prepravlja se dio koji u .xml datoteci slijedi po navodu <MENU ID="2xexplorer Z1">. Pri prepravkama .xml datoteka treba paziti na velika i mala slova u definiranju ID-ja, jer se različito tumače.
Osnovna prepravka može biti u slijedećem:
<MITEM TYPE="ITEM" DISABLED="@Not(@FileExists(@GetProgramDrive()\Progs\ PROGRAM1.EXE))" .. <MITEM TYPE="ITEM" DISABLED="@Not(@FileExists(@GetWinDir()\system32\ PROGRAM2.EXE))" ..
Prva će se izvršiti kada se CD pokrene na već 'podignutim' Windowsima na računalu, što znači da će 'START' dugme prekriti dugme 'BART' i moguće je koristiti programe s CD-a ako ne traže ramdisk. Zgodno, jer se može koristiti programska potpora na CD-u. Druga će se izvršiti samo kad se računalo boot-a s Bart CD-a. To određuje varijabla okruženja @GetProgramDrive ili @GetWinDir. Varijabla 'WinDir' nema isti sadržaj za Windows-e i Bart-a.
Kada je izrada ISO datoteke gotova, još uvijek je moguće 'izvaditi' iz nje nu2menu.xml, presložiti ga po guštu i vratiti.
Izradom plugina pozabavit ćemo se u trećem nastavku.
|