Realització de les imatges

Per Antoni Giribet i Pané
agiribet@etse.urv.es



La realització de l’imatge en si no és una part excessivament complicada, però si en la que tenim que acomplir una sèrie de requisits importants.

Podríem dir que tenim bàsicament dos casos:

L’opció no fora altra que tenir totes les màquines que formen una aula o laboratori iguals. Entenem, doncs, que el
    hardware té que ser exactament idèntic per així evitar problemes de detecció de hardware en les imatges dels
    diversos sistemes operatius.
 

L’altra opció seria que tinguéssim el conjunt de maquines que formen un laboratori o aula amb hardware en un
    entorn heterogeni, es a dir, que les seves característiques de hardware fossin diferents. Llavors ens trobaríem amb
    detecció de hardware al restaurar l’imatge als diferents clients.
 

Com a solució podríem dir que el primer cas, on tenim totes les maquines exactament iguals, es l’òptima, ja que generarem l’imatge sobre un dels clients deixant aquesta en el servidor. Aleshores en la restauració d’aquesta imatge el conjunt de màquines iguals que formen l’aula o laboratori, no tindrem cap mena de detecció de hardware i estarem en disposició de treballar amb els clients.
 

En canvi, en el següent cas, generarem l’imatge sobre el clients que siguin més nombrosos. En la restauració tindrem una detecció de hardware en els client que siguin diferents a la màquina que hem generat l’imatge. Aleshores tindrem que deixar que reconegui tot el hardware nou que trobi en cada una de les màquines i una vegada ja no reconegui més hardware, agafar la branca de hardware específic de cada màquina i exportar-lo al servidor per que en el moment de restaurar l’imatge, agafi per cada màquina la seva branca corresponent. La detecció de hardware bàsicament passa als sistemes operatius Windows.
 

Un altre requisit important es que l’imatge te que estar el més neta possible i optimitzada. Amb el que es refereix a "més neta possible", entenem no tenir més software que el necessari. Per l’optimització, entendríem tenir tots els parches aplicats, en Windows98 tenir el disc defragmentat i, per exemple, tenir la paperera buida, ja que si deixem algun fitxer a la paperera al restaurar l’imatge a tots els clients tindrem aquest fitxer a la paperera.
 

Ens centrarem en l’explicació del primer cas (tot el conjunt de maquines amb el mateix hardware), ja que la detecció del hardware bàsicament es dona en sistemes operatius Windows9X.
 

En l’altre cas també explicarem com exportar la branca HKEY_LOCAL_MACHINE del registre de cada client, per no tenir que cada cop que restaurem l’imatge, la repetició en la detecció de hardware.
 

Podríem dividir l’explicació en els punts necessaris per la correcta generació de les imatges i amb els diversos sistemes operatius, comentant el parxeig necessari, que òbviament serà diferent per cada sistema operatiu.
 

En l’actualitat, en les aules i laboratoris de la ETSE/ETSEQ hi ha generació d’imatges de diversos sistemes operatius com són: MS-DOS, WINDOWS 3.11, WINDOWS 95/98, WINDOWS NT WORKSTATION amb sistema de fitxers FAT16 (NTFS no està suportat) i LINUX.
 
 

PUNTS GENERALS
 

Instal·lació de tot el software i correcta configuració de tots els elements de hardware en la màquina en la que volem fer
     l’imatge. Imatge neta i optimitzada.
 

Abans de generar l’imatge tenim que aplicar el parxeig corresponent que serà diferent per cada tipus de sistema
     operatiu que tinguem.
 

                                                         MS-DOS
 

hidelog
CloseGraph
clear
clean 0
setpartitions "BIGDOS:500"
setbootpart 1
fullunzip "/tftp/imatges/deeea/labe1/infind.imz" 1
patch "{:1}NET/SYSTEM.R95" "{:1}NET/SYSTEM.INI"
patch "{:1}NET/PROTOCOL.R95" "{:1}NET/PROTOCOL.INI"
hidebootprom
hdboot :1

 

Els fitxers SYSTEM.INI i PROTOCOL.INI són els fitxers de sistema utilitzats en el tema de la configuració de xarxa i on també tenim des de la configuració de la porta d’enllaç (gateway), la màscara, el grup al que pertany, el nom del host i l’adreça IP que li correspon.
 

Bàsicament el que més ens interessa en el parxeig d’imatges basades amb sistemes operatius MS-DOS és l’adreça IP del client, que el servidor ens proporcionarà mitjançant la variable BOOTP-Your-IP que tindrem en el fitxer SYSTEM.R95 i que substituirà al fitxer SYSTEM.INI amb el seu valor assignat.
 

                          patch "{:1}NET/SYSTEM.R95" "{:1}NET/SYSTEM.INI" També ens interessa l'assignació del HOST de la màquina que ens la proporcionarà mitjançant la variable BOOTP-Host-Name que tindrem en el fitxer PROTOCOL.R95 i que substituirà al fitxer PROTOCOL.INI amb el seu valor assignat.
                            patch "{:1}NET/PROTOCOL.R95" "{:1}NET/PROTOCOL.INI"                                                                         PROTOCOL.R95                PROTOCOL.INI
[network.setup] 
version=0x3110 
netcard=ms$ne2clone,1,MS$NE2CLONE,1 
transport=tcpip,TCPIP 
lana0=ms$ne2clone,1,tcpip 

[TCPIP] 
NBSessions=6 
DefaultGateway0=193 144 18 2 
SubNetMask0=255 255 255 0 
IPAddress0=${BOOTP-Your-IP} 
DisableDHCP=1 
DriverName=TCPIP$ 
BINDINGS=MS$NE2CLONE 
LANABASE=0 

[MS$NWLINK] 
FRAME=ETHERNET_802.2 

[MS$NE2CLONE] 
IOBASE=0xE400 
INTERRUPT=11 
DriverName=PCIND$ 

[protman] 
DriverName=PROTMAN$ 
PRIORITY=MS$NDISHLP

[network.setup] 
version=0x3110 
netcard=ms$ne2clone,1,MS$NE2CLONE,1 
transport=tcpip,TCPIP 
lana0=ms$ne2clone,1,tcpip 

[TCPIP] 
NBSessions=6 
DefaultGateway0=193 144 18 2 
SubNetMask0=255 255 255 0 
IPAddress0=193 144 18 147 
DisableDHCP=1 
DriverName=TCPIP$ 
BINDINGS=MS$NE2CLONE 
LANABASE=0 

[MS$NWLINK] 
FRAME=ETHERNET_802.2 

[MS$NE2CLONE] 
IOBASE=0xE400 
INTERRUPT=11 
DriverName=PCIND$ 

[protman] 
DriverName=PROTMAN$ 
PRIORITY=MS$NDISHLP


 

                                                                          SYSTEM.R95                   SYSTEM.INI

[network]
sizworkbuf=1498
filesharing=no
printsharing=no
autologon=yes
computername=${BOOTP-Host-name}
lanroot=\NET
username=${BOOTP-Host-name}
workgroup=DOCENCIA
reconnect=no
dospophotkey=Z
lmlogon=0
logondomain=DOCENCIA
preferredredir=full
autostart=full,popup
maxconnections=8

[network drivers]
netcard=pcind.dos
transport=tcpdrv.dos,nemm.dos
devdir=\NET
LoadRMDrivers=yes

[386enh]
TimerCriticalSection=5000
UniqueDosPSP=TRUE
PSPIncrement=2

[Password Lists]
*Shares=\NET\Shares.PWL

[network] 
sizworkbuf=1498 
filesharing=no 
printsharing=no 
autologon=yes 
computername=usuaris24 
lanroot=\NET 
username=usuaris24 
workgroup=DOCENCIA 
reconnect=no 
dospophotkey=Z 
lmlogon=0 
logondomain=DOCENCIA 
preferredredir=full 
autostart=full,popup 
maxconnections=8 

[network drivers] 
netcard=pcind.dos 
transport=tcpdrv.dos,nemm.dos 
devdir=\NET 
LoadRMDrivers=yes 

[386enh] 
TimerCriticalSection=5000 
UniqueDosPSP=TRUE 
PSPIncrement=2 

[Password Lists] 
*Shares=\NET\Shares.PWL


 

Els altres valors de configuració de xarxa estaran ja fixats en els fitxers de configuració, ja que sempre tenen el mateix valor.
 

A banda de les variables mencionades i utilitzades BOOTP-Your-IP i BOOTP-Host-name, hi ha unes altres variables que ens proporciona el servidor i que podem utilitzar en el cas de que ens interesses en el parxeig (mencionarem les més destacades).
 

                              BOOTP-Client-ID à Hardware address de la tarja de xarxa del client.

                              BOOTP-Server-IP à Adreça IP del servidor.

                              BOOTP-Gateway-IP à Adreça IP de la porta d’enllaç

                              BOOTP-Subnet-Mask à Màscara de la nostra subxarxa.

                              BOOTP-Routers à Adreça IP del router (equivalent a la porta d’enllaç).

                              BOOTP-Domain-Name-Servers à Adreça IP del Servidor de Noms.

                              BOOTP-Server-Name à Nom del servidor d’engegada
 
 


 

                                                      WINDOWS 3.11
 

hidelog
CloseGraph
clear
clean 0
setpartitions "BIGDOS:800"
setbootpart 1
fullunzip "/tftp/imatges2/usuaris/192lumin.imz" 1
patch "{:1}WINDOWS/SYSTEM.W31" "{:1}WINDOWS/SYSTEM.INI"
hidebootprom
hdboot :1

 

El fitxer SYSTEM.INI, és el fitxer de sistema utilitzat en el tema de la configuració de xarxa i on també tenim des de la configuració de la porta d’enllaç (gateway), la màscara, el grup al que pertany, el nom del host i l’adreça IP que li correspon.
 

El que més ens interessa en el parxeig d’imatges basades amb sistemes operatius WINDOWS 3.11 es l’adreça IP i HOST del client que el servidor ens proporcionarà mitjançant la variable BOOTP-Your-IP per IP i BOOTP-Host-Name pel HOST que tindrem en el fitxer SYSTEM.W31 i que substituirà al fitxer SYSTEM.INI amb el seu valor assignat.
 

                    patch "{:1}WINDOWS/SYSTEM.W31" "{:1}SYSTEM/SYSTEM.INI" Tenim una validació que demana login i password abans d’engegar el sistema operatiu que munta el home directori dels usuaris en la màquina ALUMNE. Està ficat en el fitxer de sistema WIN.INI amb el nom executable login.exe i que podem treure o ficar depenent de si comentem o no l’entrada en aquest mencionat fitxer de configuració WIN.INI ( run=login.exe ).
 
 
 

                       SYSTEM.W31                                 SYSTEM.INI

[boot] 
shell=progman.exe 
network.drv=wfwnet.drv 
mouse.drv=mouse.drv 
language.dll=langspa.dll 
sound.drv=mmsound.drv 
comm.drv=comm.drv 
keyboard.drv=keyboard.drv 
system.drv=system.drv 
386grabber=vga.3gr 
oemfonts.fon=vgaoem.fon 
fixedfon.fon=vgafix.fon 
fonts.fon=vgasys.fon 
display.drv=vga.drv 
drivers=mmsystem.dll winmm16.dll 
SCRNSAVE.EXE=C:\WINDOWS\SSMARQUE.SCR 

[keyboard] 
subtype= 
type=4 
keyboard.dll=kbdsp.dll 
oemansi.bin= 

[boot.description] 
keyboard.typ=Teclados US y No US de 101 ó 102
mouse.drv=Microsoft o IBM PS/2 
language.dll=Español 
system.drv=Sistemas MS-DOS 
codepage=437 
woafont.fon=Estándar (437) 
aspect=100,96,96 
display.drv=VGA 
network.drv=Red de Microsoft Windows 
secondnet.drv=No hay red adicional instalada 

[386Enh] 
device=C:\WINDOWS\SYSTEM\WIN32S\W32S.386 
device=*vpd 
mouse=*vmd 
ebios=*ebios 
woafont=dosapp.fon 
display=*vddvga 
EGA80WOA.FON=EGA80WOA.FON 
EGA40WOA.FON=EGA40WOA.FON 
CGA80WOA.FON=CGA80WOA.FON 
CGA40WOA.FON=CGA40WOA.FON 
keyboard=*vkd 
network=*vnetbios,*vwc,vnetsup.386,vredir.386, server.386 
netheapsize=20 
device=*vcd 
device=*vpicd 
device=*vtd 
device=*reboot 
device=*vdmad 
device=*vsd 
device=*v86mmgr 
device=*pageswap 
device=*dosmgr 
device=*vmpoll 
device=*wshell 
device=*PAGEFILE 
device=*BLOCKDEV 
device=*vfd 
device=*parity 
device=*biosxlat 
device=*vmcpd 
device=*combuff 
device=*cdpscsi 
device=vtdapi.386 
device=vpmtd.386 
device=vcomm.386 
device=serial.386 
device=lpt.386 
device=ifsmgr.386 
device=vcache.386 
device=vshare.386 
local=CON 
FileSysChange=off 
COM3Irq=4 
COM3Base=03E8 
COM4Irq=3 
COM4Base=02E8 
PagingFile=C:\WINDOWS\WIN386.SWP 
MaxPagingFileSize=61440 
Netmisc=ndis.386,ndis2sup.386,wsock.386,wstcp.386 
transport=vip.386,vdhcp.386,vtdi.386,vtcp.386,
vnbt.386,netbeui.386 
InDOSPolling=FALSE 
Netcard=RTL8029.386 

[NonWindowsApp] 
localtsrs=dosedit,ced 

[vcache] 
minfilecache=512 

[mci] 
WaveAudio=mciwave.drv 
Sequencer=mciseq.drv 
CDAudio=mcicda.drv 

[drivers] 
timer=timer.drv 
midimapper=midimap.drv 

[DDEShares] 
CHAT$=winchat,chat,,31,,0,,0,0,0 
SCHAT$=winchat,chat,,31,,0,,0,0,0 
CLPBK$=clipsrv,system,,31,,0,,0,0,0 
HEARTS$=mshearts,hearts,,15,,0,,0,0,0 

[Network] 
winnet=wfwnet/00025100 
multinet=nonet 
FileSharing=No 
PrintSharing=No 
LogonDisconnected=Yes 
EnableSharing=No 
UserName=${BOOTP-Host-Name}
Workgroup=DOCENCIA 
ComputerName=${BOOTP-Host-Name} 
Comment=${BOOTP-Host-Name} 
Logonvalidated=no 
Cachethispassword=no 
reconnect=no 
AutoLogon=No 
StartMessaging=No 
LoadNetDDE=Yes 
LMLogon=0 

[network drivers] 
netcard=PCIND.DOS 
transport=ndishlp.sys 
devdir=C:\WINDOWS 
LoadRMDrivers=No 

[Password Lists] 
*Shares=C:\WINDOWS\Shares.PWL 

[MSTCP] 
EnableRouting=0 
Interfaces=RTL80290 
Deadgwdetect=1 
Pmtudiscovery=1 

[DNS] 
DNSServers=193.144.20.2 
DomainName=etse.urv.es 
DNSDomains=etse.urv.es 

[RTL80290] 
NameServer1=193.144.18.16 
DefaultGateway=193.144.18.2 
IPMask=255.255.255.0 
IPAddress=${BOOTP-Your-IP} 
Description=RealTek 8029 (REALPCI) 
Binding=RTL8029 

[NBT] 
LANABASE=0 
LmHostFile=C:\WINDOWS\lmhosts 
EnableProxy=0 
EnableDNS=1 
ScopeID=DOCENCIA

[boot] 
shell=progman.exe 
network.drv=wfwnet.drv 
mouse.drv=mouse.drv 
language.dll=langspa.dll 
sound.drv=mmsound.drv 
comm.drv=comm.drv 
keyboard.drv=keyboard.drv 
system.drv=system.drv 
386grabber=vga.3gr 
oemfonts.fon=vgaoem.fon 
fixedfon.fon=vgafix.fon 
fonts.fon=vgasys.fon 
display.drv=vga.drv 
drivers=mmsystem.dll winmm16.dll 
SCRNSAVE.EXE=C:\WINDOWS\SSMARQUE.SCR 

[keyboard] 
subtype= 
type=4 
keyboard.dll=kbdsp.dll 
oemansi.bin= 

[boot.description] 
keyboard.typ=Teclados US y No US de 101 ó 102 
mouse.drv=Microsoft o IBM PS/2 
language.dll=Español 
system.drv=Sistemas MS-DOS 
codepage=437 
woafont.fon=Estándar (437) 
aspect=100,96,96 
display.drv=VGA 
network.drv=Red de Microsoft Windows 
secondnet.drv=No hay red adicional instalada 

[386Enh] 
device=C:\WINDOWS\SYSTEM\WIN32S\W32S.386 
device=*vpd 
mouse=*vmd 
ebios=*ebios 
woafont=dosapp.fon 
display=*vddvga 
EGA80WOA.FON=EGA80WOA.FON 
EGA40WOA.FON=EGA40WOA.FON 
CGA80WOA.FON=CGA80WOA.FON 
CGA40WOA.FON=CGA40WOA.FON 
keyboard=*vkd 
network=*vnetbios,*vwc,vnetsup.386,vredir.386,
vserver.386 
netheapsize=20 
device=*vcd 
device=*vpicd 
device=*vtd 
device=*reboot 
device=*vdmad 
device=*vsd 
device=*v86mmgr 
device=*pageswap 
device=*dosmgr 
device=*vmpoll 
device=*wshell 
device=*PAGEFILE 
device=*BLOCKDEV 
device=*vfd 
device=*parity 
device=*biosxlat 
device=*vmcpd 
device=*combuff 
device=*cdpscsi 
device=vtdapi.386 
device=vpmtd.386 
device=vcomm.386 
device=serial.386 
device=lpt.386 
device=ifsmgr.386 
device=vcache.386 
device=vshare.386 
local=CON 
FileSysChange=off 
COM3Irq=4 
COM3Base=03E8 
COM4Irq=3 
COM4Base=02E8 
PagingFile=C:\WINDOWS\WIN386.SWP 
MaxPagingFileSize=61440 
netmisc=ndis.386,ndis2sup.386,wsock.386,wstcp.386 
transport=vip.386,vdhcp.386,vtdi.386,vtcp.386,
vnbt.386,netbeui.386 
InDOSPolling=FALSE 
netcard=ne2000.386 

[NonWindowsApp] 
localtsrs=dosedit,ced 

[vcache] 
minfilecache=512 

[mci] 
WaveAudio=mciwave.drv 
Sequencer=mciseq.drv 
CDAudio=mcicda.drv 

[drivers] 
timer=timer.drv 
midimapper=midimp.drv 

[DDEShares] 
CHAT$=winchat,chat,,31,,0,,0,0,0 
SCHAT$=winchat,chat,,31,,0,,0,0,0 
CLPBK$=clipsrv,system,,31,,0,,0,0,0 
HEARTS$=mshearts,hearts,,15,,0,,0,0,0 

[Network] 
winnet=wfwnet/00025100 
multinet=nonet 
FileSharing=No 
PrintSharing=No 
LogonDisconnected=Yes 
EnableSharing=No 
UserName=usuaris24 
Workgroup=DOCENCIA 
ComputerName=usuaris24 
Comment=usuaris24 
logonvalidated=no 
cachethispassword=no 
reconnect=no 
AutoLogon=No 
StartMessaging=No 
LoadNetDDE=Yes 
LMLogon=0 

[network drivers] 
netcard=ne2000.dos 
transport=ndishlp.sys,*netbeui 
devdir=C:\WINDOWS 
LoadRMDrivers=No 

[Password Lists] 
*Shares=C:\WINDOWS\Shares.PWL 

[MSTCP] 
EnableRouting=0 
Interfaces=ms$ne2clone0 
deadgwdetect=1 
pmtudiscovery=1 

[DNS] 
DNSServers=193.144.20.2 
DomainName=etse.urv.es 
DNSDomains=etse.urv.es 

[ms$ne2clone0] 
NameServer1=193.144.18.16 
DefaultGateway=193.144.18.2 
IPMask=255.255.255.0 
IPAddress=193.144.18.147 
Description=NE2000 Compatible 
Binding=ms$ne2clone 

[NBT] 
LANABASE=0 
LmHostFile=C:\WINDOWS\lmhosts 
EnableProxy=0 
EnableDNS=1 
ScopeID=DOCENCIA


 
 


 

                                                  WINDOWS 95/98
 

hidelog
CloseGraph
clear
clean 0
setpartitions "BIGDOS:800"
setbootpart 1
fullunzip "/tftp/imatges2/usuaris/95p/95pelat.imz" 1
patch "{:1}WINDOWS/registre.R95" "{:1}WINDOWS/registre.bo"
hidebootprom
hdboot :1

 

WINDOWS 95/98 (HARD HOMOGENI)



En aquest cas tenim els fitxers REGISTRE.R95 i REGISTRE.BO que intervenen en el parxeig de Windows 95/98. El contingut del fitxer REGISTRE.BO és el fitxer que exportarem al registre de Windows (regedit.exe). Aquesta exportació estarà en el fitxer AUTOEXEC.BAT que s’executarà en carregar-se el sistema operatiu.
 
 
 
AUTOEXEC.BAT
cls 
c:\windows\regedit.exe /L:c:\windows\system.dat /R:c:\windows\user.dat c:\windows\registre.bo 
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi) 
mode con codepage select=850 
keyb sp,,C:\WINDOWS\COMMAND\keyboard.sys

 
 
 
REGISTRE.R95
REGEDIT4 
[HKEY_LOCAL_MACHINE\Network\Logon] 
"username"="${BOOTP-Host-Name}" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control] 
"Current User"="${BOOTP-Host-Name}" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName] 
"ComputerName"="${BOOTP-Host-Name}" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP] 
"HostName"="${BOOTP-Host-Name}" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] 
"ComputerName"="${BOOTP-Host-Name}"

 

                                     patch "{:1}WINDOWS/registre.R95" "{:1}WINDOWS/registre.bo"
 
 
 
REGISTRE.BO
REGEDIT4 
[HKEY_LOCAL_MACHINE\Network\Logon] 
"username"="usuaris24" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control] 
"Current User"="usuaris24" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ComputerName\ComputerName] 
"ComputerName"="usuaris24" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP] 
"HostName"="usuaris24" 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] 
"ComputerName"="usuaris24"

 

Quan fem una imatge de Windows 98, si volem podem connectar-nos a un servidor per samba i activar l'encriptació de
passwords, aleshores tenim que introduir a la branca del registre de Windows:

                            [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\VNETSUP]
            "EnablePlainTextPassword"=dword:00000001
 

Si volem que al connectar a una unitat de xarxa no ens surti la pestanya de guardar password, tenim d'introduir al registre de Windows:

            [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Network]
            "DisablePwdCaching"=dword:00000001
 
 

WINDOWS 95/98 (HARD HETEROGÈNI)



Si tenim un laboratori o una aula amb maquines amb diferencies notables de hardware, aleshores amb l’opció anterior ens trobaríem amb molts de problemes de detecció de hardware. Per solucionar-ho hauríem d’exportar la branca HKEY_LOCAL_MACHINE del registre de cada client, que podríem anomenar paràmetres de personalització de cada HOST,
per així en la propera restauració passar-hi la seva branca corresponent des del servidor.
 

                                    - Executarem el "regedit":
 
 





                                    - Agafar la branca "HKEY_LOCAL_MACHINE"
 
 




                                    - Com exportar la branca de hardware específic per cada client.
 
 




                                    - Guardarem el fitxer amb el nom DNS del client, per així poder jugar amb la variable "${BOOTP-Host-Name}"
                                      als menús de descompressió.
 
 




                                  Un cop ja tenim això, des de l'aplicació del registre, eliminarem completament totes les branques de
                                    "HKEY_LOCAL_MACHINE", excepte "HKEY_LOCAL_MACHINE\SOFTWARE" i sortirem del regedi.exe.

                                    - Eliminarem tota la branca del registre (mitjançant un editor de text) que depèn de la branca anomenada
                                      "HKEY_LOCAL_MACHINE\SOFTWARE", deixant al servidor el fitxer resultant "HOSTNAME.REG"
                                      ( Ex:usuaris24.reg ).

 





                                    - El contingut del fitxer HOSTNAME.REG és el fitxer que exportarem al registre de Windows i a cada
                                      màquina li tocarà el seu, aprofitant la variable proporcionada pel servidor "${BOOTP-Host-Name}".
                                      Aquesta exportació estarà en el fitxer AUTOEXEC.BAT que s’executarà en carregar-se el sistema operatiu.
 
 

hidelog
CloseGraph
clear
clean 0
setpartitions "BIGDOS:800"
setbootpart 1
fullunzip "/tftp/imatges2/usuaris/95p/95pelat.imz" 1
patch "{:1}WINDOWS/registre.R95" "{:1}WINDOWS/registre.bo"
copy "/imatges2/usuaris/95p/${BOOTP-Host-Name}.reg" "{:1}/WINDOWS/patch.bo"
hidebootprom
hdboot :1

 
 
AUTOEXEC.BAT
cls 
c:\windows\regedit.exe /L:c:\windows\system.dat /R:c:\windows\user.dat c:\windows\patch.bo 
c:\windows\regedit.exe /L:c:\windows\system.dat /R:c:\windows\user.dat c:\windows\registre.bo 
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi) 
mode con codepage select=850 
keyb sp,,C:\WINDOWS\COMMAND\keyboard.sys

 


 

                                    WINDOWS NT WORKSTATION
 

hidelog
clear
clean 0
setpartitions "BIGDOS:2000 BIGDOS:2000"
setbootpart 1
fullunzip "/imatges2/deq/noulab//hysys.imz" 1
copy "/imatges2/deq/system/${BOOTP-Host-Name}" "{:1}/winnt/system32/config/system"
hidebootprom
hdboot :1

 

Per la realització del parxeig dels sistemes operatius Windows NT Workstation, hem de configurar per cada client de forma correcta la xarxa amb l'adreça IP de forma estàtica. Després d'això agafar el fitxer del client anomenat system que es troba en la ruta C:\winnt\system32\config  i guardar-lo en el servidor amb el nom de HOSTNAME, ja que així podrem aprofitar la variable proporcionada pel servidor "${BOOTP-Host-Name}" i, aleshores, en l'script de restauració de l'imatge, copiarem aquest fitxer sobre el fitxer de sistema anomenat system.
 
 

copy "/imatges2/deq/system/${BOOTP-Host-Name}" "{:1}/winnt/system32/config/system"




                                   LINUX
 

clear
hidelog
setpartitions "linux-ext2:1000"
clean 1
clean 0
fullunzip "/imatges2/usuaris/linux.imz" 1
copy "/imatges2/usuaris/linux-noms/${Bootp-Host-Name}.nom" "{:1}etc/HOSTNAME"
copy "/imatges2/usuaris/linux-noms/${Bootp-Host-Name}.inet1" "{:1}etc/rc.d/rc.inet1"
linuxboot "{:1}vmlinuz" "root=/dev/hda1 BOOT_IMAGE=linux"

 

En sistemes operatius LINUX del qual hem realitzat imatges en la distribució SLACKWARE 7.0, la seva realització es bàsicament
la mateixa per altres distribucions com poden ser REDHAT, DEBIAN o MANDRAKE. En el parxeig tenim dos fitxers importants, el fitxer /etc/HOSTNAME, que és on tenim el nom del host de la màquina, es a dir, haurem de tindré per cada màquina un fitxer amb
el seu host corresponent i aprofitant la variable proporcionada pel servidor "${BOOTP-Host-Name}" li assignarem a cada client
el host que li pertoca "${BOOTP-Host-Name}.nom ( Ex: usuaris24.nom ).
 
 

                                                                                                   /etc/HOSTNAME

usuaris24.etse.urv.es

copy "/imatges2/usuaris/linux-noms/${Bootp-Host-Name}.nom" "{:1}etc/HOSTNAME"




L’altre fitxer /etc/rc.d/rc.inet1 és on tenim tot el referent a la configuració de l’adreça IP estàtica, porta d’enllaç i màscara, es a dir, tot el referent a la configuració de l’interficie de xarxa del client. Aleshores, el mateix de sempre, que fora per cada client els paràmetres que li corresponent i aprofitant la variable proporcionada pel servidor "${BOOTP-Host-Name}" li assignarem a cada client el fitxer de configuració de xarxa que li pertoca "${BOOTP-Host-Name}.inet1 ( Ex: usuaris24.inet1 ).
 
 

copy "/imatges2/usuaris/linux-noms/${Bootp-Host-Name}.inet1" "{:1}etc/rc.d/rc.inet1"




Cal remarcar que en l’script de restauració de l’imatge també podem definir una partició de swap a banda de la partició primària.
 
 

setpartitions "linux-ext2:1000 linux-swap:128"




                                                  /etc/rc.d/rc.inet1

#! /bin/sh 

# rc.inet1 This shell script boots up the base INET system. 
# Version: @(#)/etc/rc.d/rc.inet1 2.00 10/06/1999 

HOSTNAME=`cat /etc/HOSTNAME` 

# Attach the loopback device. 
/sbin/ifconfig lo 127.0.0.1 
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo 

# IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the 
# eth0 interface. 

# Edit these values to set up a static IP address: 
IPADDR="193.144.18.147" # REPLACE with YOUR IP address! 
NETMASK="255.255.255.0" # REPLACE with YOUR netmask! 
NETWORK="193.144.18.0" # REPLACE with YOUR network address! 
BROADCAST="193.144.18.255" # REPLACE with YOUR broadcast address, if you 
           # have one. If not, leave blank and edit below. 
GATEWAY="193.144.18.2" # REPLACE with YOUR gateway address! 
# To use DHCP instead of a static IP, set this value to "yes": 
DHCP="no" # Use DHCP ("yes" or "no") 

# OK, time to set up the interface: 
if [ "$DHCP" = "yes" ]; then # use DHCP to set everything up: 
echo "Attempting to configure eth0 by contacting a DHCP server..." 
/sbin/dhcpcd 
elif [ ! "$IPADDR" = "127.0.0.1" ]; then # set up IP statically: 
# Set up the ethernet card: 
echo "Configuring eth0 as ${IPADDR}..." 
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK} 

# If that didn't succeed, give the system administrator some hints: 
if [ ! $? = 0 ]; then 
cat << EOF 
Your ethernet card was not initialized properly. Here are some reasons why this 
may have happened, and the solutions: 
1. Your kernel does not contain support for your card. Including all the 
network drivers in a Linux kernel can make it too large to even boot, and 
sometimes including extra drivers can cause system hangs. To support your 
ethernet, either edit /etc/rc.d/rc.modules to load the support at boottime, 
or compile and install a kernel that contains support. 
2. You don't have an ethernet card, in which case you should comment out this 
section of /etc/rc.d/rc.inet1. (Unless you don't mind seeing this error...) 

EOF 
Fi 

# Older kernel versions need this to set up the eth0 routing table: 

KVERSION=`uname -r | cut -f 1,2 -d .` 
if [ "$KVERSION" = "1.0" -o "$KVERSION" = "1.1" \ 
-o "$KVERSION" = "1.2" -o "$KVERSION" = "2.0" -o "$KVERSION" = "" ]; then 
/sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0 
fi 

# If there is a gateway defined, then set it up: 
if [ ! "$GATEWAY" = "" ]; then 
/sbin/route add default gw ${GATEWAY} netmask 0.0.0.0 metric 1 
fi 
fi 
# End of rc.inet1