pirmdiena, 2007. gada 26. novembris

Klonēšana Windows XP

Kā klonēt WindowsXP datorklasēm ar sysprep

Instalējam WindowsXP


Sainstalējam WindowsXP un nepieciešamās programmas uz avota datora. WXP atbilstoši licencēšanai ir jābūt ar Volume Key. Ļoti vēlams, lai datori būtu vienādi (vienādām mātesplatēm, videokartēm u.t.t.). Pēc datora klonēšanas vēlams defragmentēt disku.

Sysprep sagatavošana


Kad dators ir saklonēts:
  • lejupielādējam sysprep,
  • atpakojam to
  • rakstam sysprep.inf failu no labiem paraugiem vai laižam "Setup Manager" no atpakotā foldera. Būtiski ir ierakstīt pareizo ProductKey, lai tas nebūtu jāievada no jauna
  • sysprep.inf piemērs



;SetupMgrTag
[Unattended]
OemSkipEula=Yes
InstallFilesPath=C:\sysprep\i386
KeepPageFile=0

[GuiUnattended]
;; AdminPassword uzstādas tikai tad, ja tā bija tukša avota datorā
AdminPassword="admininstratora parole"
EncryptedAdminPassword=NO
;; Pēc klonēšanas dators 2x automātiski pieteiksies sistēmā ar administratora kontu
AutoLogon=Yes
AutoLogonCount=2
OEMSkipRegional=1
;; Laika zona Latvijai
TimeZone=125
OemSkipWelcome=1

[UserData]
;; ProductKey ir jāraksta īstais Volume Key
ProductKey="XXXXX-YYYYY-ZZZZZ-AAAAA-BBBBB"
;; Windows 2000 jālieto ProductID
ProductID="XXXXX-YYYYY-ZZZZZ-AAAAA-BBBBB"
;; Dati par licences īpašnieku
FullName="Andris"
OrgName="Skola"
;; Ja nav uzrādīts ComputerName, tad tas ir vienīgais, ko prasa miniinstalācija, un tieši tas mums ir vajadzīgs
;; ComputerName=DKLASE-01

[RegionalSettings]
;; Latvija
LanguageGroup=3,1
SystemLocale=00000426
UserLocale=00000426
InputLocale=0426:00010426

[SetupMgr]
DistFolder=C:\sysprep\i386
DistShare=windist

[Identification]
;; Lai pievienotu workgrupai, jālieto šāda sintakse
JoinWorkgroup=DKLASE
;; Lai "joinotu" datoru Windows domēnam, jāieraksta pareizās vērtības un jāatkomentē sekojošās rindas
; JoinDomain=SKOLA
; DomainAdmin=Administrator
; DomainAdminPassword=VerySecretPassword

[Networking]
InstallDefaultComponents=Yes


  • Jāuztaisa kopija sysprep.inf failam uz kāda no tīkla serveriem.
  • Jāpārkopē sysprep direktorija ar visu sysprep.inf failu kā C:\sysprep
  • Jālaiž C:\sysprep\sysprep.exe
  • Dialogā logā jāizvēlas:
    • MiniSetup (vai sysprep atslēga mini) - šajā gadījumā netiks rādīts Welcome logi un neprasīs daudz informācijas (t.sk, vēlreiz vadīt Volume Key)
    • Reseal
    • Shutdown
Ja viss ir veiksmīgi, dators tiek izslēgts.

Sējuma attēla (partition image) noņemšana



Sējuma noņemšanai var izmantot jebkuru LiveCD (USB u.t.t.) uz kura ir:
  • partimage
  • mount.cifs (klons tiks likts uz SMB tīkla sējuma)
  • noderēs arī ntfs-3g
  • Ielādējamies ar LiveCD
  • Ātrdarbības uzlabošanai ieteicams izdzēst c:\pagefile.sys, kā arī "tukšo" diska vietu aizpildīt ar nullēm (Šos soļus var arī izlaist):
    • Montējam Windows XP sējumu:
      • mkdir /tmp/sda1 &&  ntfs-3g /dev/sda1 /tmp/sda1
    • Dzēšam swapfailu (citus failus - pēc saviem ieskatiem):
      • rm /tmp/sda1/pagefile.sys
    • Aizpildam disku ar nullēm, t.i., veidojam bezgalīgi lielu failu ar saturu "0". Kad tiek izdoti paziņojumi par diska aizpildīšanos - pārtraucam procesu ar Ctrl+C, dzēšam šo failu un nomontējam sējumu:
      • cat /dev/null >> /tmp/sda1/nullesfails
      • rm /tmp/sda1/nullesfails
      • umount /tmp/sda1
  • Pieslēdzam tīkla servera sējumu (smb share), vajadzīgajās vietās (server, user) jāievieto pareizie vārdi:

    • mkdir /tmp/smb


    • mount.cifs //server/user /tmp/smb -o username=user

  • Klonējam WXP sējumu /dev/sda1 uz tīkla sējumu:

    • partimage save /dev/sda1 /tmp/smb/SDA1XP
  • Saglabājam MBR
    • dd if=/dev/sda bs=512 count=1 of=/tmp/smb/SDA.MBR



Sējuma attēla atjaunošana uz pārējiem datoriem



  • Mērķa datorā ielādējamies ar LiveCD (USB u.t.t.), piem., Knoppix vai Plop Linux
  • Ar fdisk palīdzību izveidojam tieši tāda paša lieluma /dev/sda1 sējumu, kam piešķiram NTFS failu sistēmas iezīmi (07)
  • Pievienojam tīkla sējumu

    • mkdir /tmp/smb


    • mount.cifs //server/user /tmp/smb -o username=user
  • Atjaunojam MBR
    • dd if=/tmp/smb/SDA.MBR of=/dev/sda

  • Rakstam sējuma attēlu no tīkla servera uz jaunizveidoto sējumu /dev/sd1
    • partimage  restore /dev/sda1 /tmp/smb/SDA1XP.000
Šo darbību veicam uz visiem datoriem. Lai panāktu laika ekonomiju:
  • vēlams visas atjaunošanas darbības (fdisk, mbr atjaunošanu, sējuma montēšanu, ) sarakstīt skripta failā, ko novieto uz lokālā web servera. Piemēram:


#!/bin/bash
echo "Dzēšam MBR"
dd if=/dev/zero bs=1024 count=10240 of=/dev/sda

echo "fdisk skripts, kas veido /dev/sda1 seejumu"
echo | fdisk /dev/sda <<>
n
p
1

2550
t
1
7
a
1
wq
EOF

fdisk -l /dev/sda
sleep 10

mkdir /tmp/smb
mount.cifs //server/user /tmp/smb -o username=user%password

## Lai nebūtu jāraksta paroles, uz servera var var lietot NFS un skriptā attiecīgi:
# /etc/init.d/nfs-common restart
# /etc/init.d/portmap restart
# mount -t nfs server:/data/user /tmp/smb

echo "atjaunojam MBR"

dd if=/tmp/smb/SDA.MBR of=/dev/sda

echo "Kloneejam Windows particiju"
## atslēga "-b" nozīmē batch mode, lai mums neko nejautātu
partimage restore -d -b /dev/sda1 /tmp/smb/SDA1XP.000

echo "Varam reboototies"
sleep 60
reboot


Ja šāds skripts sagatavots, tad uz mērķa datoriem pēc LiveCD ielādes atliek vien lejupielādēt šo skriptu un palaist to, piemēram:
wget server/restore.sh && sudo sh restore.sh
Pēc datora sekmīgas klonēšanas, tas ir jāpārlādējas. Vajadzētu startēties jaunajai Windows sistēmai, kura paprasīs ievadīt jauno datora vārdu.