Laymans Take on flashing Symbian Belle on Nokia N8 (link updated for v111.030.0607_03)

[tweetmeme source=”nkumar_” service=”” hide_in_rss=”true” only_single=”false”]

Update: Avoid the old method as the latest firmware update method is very simple. Keep the files in place, open Product and flash. Use refurbish.

Original Firmware file link only: Download Link (Warning: It leaves only 20 mb around in C: drive of Nokia N8)

Updated link without Hero of Sparta: Download Link (It will leave you with around 130 mb in C: drive)

I will suggest you to use the second link which is created after removing Hero of Sparta files from the firmware.

Check the latest version demo here

Notice the speed this time.

Updated: Installed the second leaked version too via the same procedure and with new files. Haptic feedback and 6 home screens now. You can use exactly the same procedure while flashing. Note that even if you are already on Symbian Belle (earlier leaked one), you need to use the same Anna files (at least I did so successfully without any trouble).

So you bought a Nokia N8 last year and while reading a lot of negative buzz on internet and around you, started thinking if buying Nokia N8 (or even any other Symbian^3 device) was a wrong decision? But still keeping it around as there been no better camera phone than this ever nor seems likely any soon.

Think again… Haven’t you seen your Nokia N8 like brand new twice a time till now?


Once when you bought it and once you got Symbian Anna on it recently. Not enough? That was just kind of theme change in your eyes?

Be ready to see it like real brand new with Symbian Belle now. Yup! even though its so unlike Layman’s take, I decided to take the plunge and flashed Symbian Belle leaked firmware on it. So we paid once and will be having brand new device experience for more than three times.


I bricked mine while trying the same and the only  resolution was to flash it back to PR1.0 11.5 scanvidia. It was a scary ride for me as didn’t wanted to loose N8 in any case. Somehow managed to get over with it.

How to flash my Nokia N8 with Symbian Belle?

I know most of readers here never did any flashing with their Nokia Phones and no one wanna take a risk of bricking their phones, specially when it comes to Nokia N8. I know there will be many questions in your mind and I will try to get them answered, but first I want to make you clear that

1. FLASHING YOUR PHONE WITH ANY UNOFFICIAL FIRMWARE WILL VOID YOUR WARRANTY (though you can claim your warranty back once you are back on official firmware).


So done with warning, I know you still are interested in the guide .. so here we go..

Continue reading “Laymans Take on flashing Symbian Belle on Nokia N8 (link updated for v111.030.0607_03)”


Making Zabbix Monitoring Server from Scratch: The Dummies Manual

[tweetmeme source=”mrnitishkumar” only_single=”false”]

Update: Wrote this post long back.. just was meant to show that how easy it could be…many things needs to be Add to Google Buzzupdated in reference to new features and UI.. will update soon. Recently I received a book over Zabbix from Packt Publicing. Amazing book and probably the only available for the same. Worth buying….

“ How we system administrators work in case of any trouble? If something goes down or anything wrong would have happened and we get asked about how it happened? We just run into logs or try to guess what would have been happened, was it high CPU, low disk space or tremendous network traffic? Sometimes we get our answers, sometime not and we keep on saying ourselves that we can’t be everywhere to monitor each and everything all the time. But it’s the time to update yourself and get optimized. I went through a few of monitoring solutions and with their pros and cons, finally I got settled with the Open Source Solution developed by Zabbix SIA. ”


What is Zabbix? Before the configuration and installation part, I am starting with a little history.zabbix1_thumb Zabbix is a network management system application created by Alexei Vladishev in 1998 (public release in 2001) to monitor and track the status of various network services, servers, and other network hardware. Zabbix uses MySQL, PostgreSQL, SQLite or Oracle to store data. Its backend is written in C and the web frontend is written in PHP and javascript.

Zabbix offers several monitoring options. Simple checks can verify the availability and responsiveness of standard services such as SMTP or HTTP without installing any software on the monitored host. A Zabbix agent can also be installed on UNIX and Windows hosts to monitor statistics such as CPU load, network utilization, disk space, etc. As an alternative to installing an agent on hosts, Zabbix includes support for monitoring via SNMP, TCP and ICMP checks, IPMI and custom parameters. Zabbix supports a variety of real-time notification mechanisms, including XMPP.

Installation and Configuration to monitor Windows\ Linux Servers:

Although I tried and found it extremely efficient , but even then I didn’t went along with the wonderful easy install procedure made by Brendon Baumgartner, not due to some fault in that one, but due to inherent problems with I guess not stable yet latest version of zabbix. But I sure be waiting for BB to write other magic scripts in the same way to make things one Enter only.

Here comes the way, I followed to install zabbix in manual way over the servers.

Step by Step Implementations with details:

Base machine: As for most of Linux Development I choose, even here I am choosing CentOS as the base system to build the solution upon. One should go for at least CentOS 5.x as there are a few options not available with older CentOS 4.x. As per recommendation for CentOS, machine should have at least 512 MB RAM and decent processor, LAN card etc. and although not kind of requirement but the machine should has ample space in it to store logs for as many days.

As usually I do, installation was customized with 1GB swap, 200 MB of boot partition, all PHP/ MySQL related packages checked, all libraries checked, SendMail package checked. In next, as the installation will pull updates, packages from internet directly, so Ethernet configurations should be ready and internet should be working fine over the same machine. Also note that it would be around 27-28 mb download size in total while installation.

Pre-requisites for the installation:

First of all, we need to finish installation/ update of all required packages in reference with zabbix installation.

yum install httpd php mysql mysql-server mysql-devel php-gd php-mysql php-bcmath gcc net-snmp net-snmp-libs net-snmp-utils net-snmp-devel curl-devel

Once finished with this, one need to check whether the crucial components are configured to start with the system and are working well.

# service httpd start
# chkconfig –add httpd
# chkconfig httpd on
# service mysqld start
# chkconfig –add mysqld
# chkconfig mysqld on

Possible issues and resolutions first:

Need to check whether things are working fine.

# mysql –u root

This should leave one to MySQL prompt, if not then need to check. In next, need to check whether httpd is working fine (Apache is properly installed and configured). Type the IP Address of the target Zabbix Installation Server in browser from some other computer, if you are able to see Apache page, then its fine otherwise you will be needed to check things like SELINUX.

How to check selinux status?

Execute the following command:

# sestatus

If its showing it enabled, then could disable it by

# setenforce 0

To permanently disabled the same, we need to do some editing in configuration file, otherwise it will be back with the next boot

# vi /etc/selinux/config

The file must look like (after setting SELINUX=disabled)

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted – Only targeted network daemons are protected.
# strict – Full SELinux protection.

Check if the browser started opening apache page after this, if yes, then we are done, otherwise should look down in /var/log/httpd/error.log for other possible reasons.

Installation and configuration steps:

Here I am assuming that you are using CentOS 5.x as base, otherwise the configurations might be altered.

# cd /usr/src
# tar zxf zabbix-1.4.5.tar.gz
# cd zabbix-1.4.5
# mysql -u root
# mysql> create database zabbix;
# mysql> quit
# cat create/schema/mysql.sql | mysql -u root zabbix
# cat create/data/data.sql | mysql -u root zabbix
# cat create/data/images_mysql.sql | mysql -u root zabbix
# ./configure –enable-server –enable-agent –with-mysql –with-net-snmp –with-libcurl
# make install
# mkdir /etc/zabbix
# cp misc/conf/* /etc/zabbix
# groupadd zabbix
# useradd -g zabbix zabbix
# chown zabbix:zabbix /usr/local/sbin/zabbix*
# cp misc/init.d/redhat/8.0/zabbix* /etc/init.d
# vi /etc/init.d/zabbix_agentd

change BASEDIR=/opt/zabbix to BASEDIR=/usr/local/sbin


# vi /etc/init.d/zabbix_server

Make the same changes as above.

# chkconfig –add zabbix_agentd
# chkconfig –add zabbix_server
# chkconfig –level 3 zabbix_server on
# chkconfig –level 3 zabbix_agentd on

Now, installing the web application….

# mkdir /var/www/html/zabbix
# cp -R frontends/php/* /var/www/html/zabbix
# chown apache:apache /var/www/html/zabbix/conf
# vi /etc/php.ini

Find resource limits section and change max_execution_time to 300

;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;;

max_execution_time = 300 ; Maximum execution time of each script, in seconds

Also make changes for date.timezone entry, it should be commented, uncomment it and set it accordingly like in case of India ..


At the end, start zabbix services

# service zabbix_server start
# service zabbix_agentd start

Add zabbix ports to be listened to the configuration of services.

# vi /etc/services

And put the following two lines at the very end of the file.

zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp

Zabbix Server console installation is ready to and web installation is ready to go from here.

After finishing all the above steps, now go to url http://IP_ADDRESS/zabbix (Here IP_ADDRESS is what you have given to the server Ethernet port)

It should ask for installation steps, if you have followed my steps exactly, then it must go like next, next only. After finishing all the steps, you will get a login prompt, user name will be admin here and password is blank. After login, go to profile link and change the password to whatever suits to you. Logout and login again. Click monitoring and then go to screens in second row. You should get five screens on the same page for the zabbix server itself. One screen must be having map only. Check that rest all showing you graphs or not. If yes, then server side work is done and you are ready to move towards adding clients.

Zabbix Agent Installation over Linux Clients:

First part is to download the appropriate zabbix agent package from the official page. I assume, your clients (Servers to monitor) are updated and have kernel at least 2.6.x (If not then choose the suitable package).

# yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel curl-devel (Optional)
# groupadd zabbix
# useradd -g zabbix zabbix
# cd /usr/src
# tar zxvf zabbix-1.8.tar.gz
# cd zabbix-1.8
# chmod 7555 *
# ./configure -enable-agent -with-mysql -with-net-snmp -with-libcurl
# make install
# chown zabbix:zabbix /usr/local/sbin/zabbix*
# mkdir /etc/zabbix
# cp misc/conf/* /etc/zabbix
# cp misc/init.d/redhat/8.0/* /etc/init.d
# chmod +x /etc/init.d/zabbix_*

Now, Change the binary location to /usr/local/sbin

# vi /etc/init.d/zabbix_agentd

In next, make the zabbix agent point to your Zabbix Server by putting Server’s IP Address in configuration file of agent

# vi /etc/zabbix/zabbix_agentd.conf

And as final step on client side, set up the services

# chkconfig –add zabbix_agentd
# chkconfig –level 3 zabbix_agentd on
# service zabbix_agentd start

Getting the graphs from data coming from agents:

You will see that Zabbix Server itself added in the WebUI. In place of creating a new monitoring scenario, first it’s easier to copy the same entries to the newly added Linux Servers.

Go to Hosts, create a new host with the name of your agent (whatever name you choose), select group as Linux Server, then put the right IP Address and set the tab below to it on IP Address and save.

After this, go to Items, from combo box at right top, select zabbix server, it will show up items already configured for zabbix server, you need to select all the items and press copy selected items to button at the bottom and then when it will show the list of all templates and hosts configured, choose the one, you just created.

From here, you have setup items to fetch data from agent, now how to use it. Go to graphs, from right top select zabbix server and copy all the graphs to newly created server. Graphs are ready from here.

Finally, make a screen to monitor. Make a screen of 2×2 and give it the name as per your choice. Once screen created, click edit. Then configure CPU Loads, CPU Utilization, Disk Space and Network Utilization graphs for the agent, you setup and you are ready to monitor your Linux Server.

Zabbix Agent Installation over Windows Clients:

I find Windows Installation easier in first part and little bit complicated in second part. First need to download the windows agent from here

Then install it and it will ask for server IP Address, give zabbix server’s IP Address. Now, go to WebUI of Zabbix Server, Create host/items/graphs/screens in similar ways and you are ready to go.

There are many features that are there in Linux Agent but nowhere in Windows one. One workaround is to use data fetched from Windows Performance Monitor (permon.exe).

For example: Network Utilization

Go to cmd, type typeperf –qx |find “Network” >c:\network.txt

Now, check the network.txt file created in C: drive, it would be containing the exact network resource/ variable name for bytes sent and bytes received.

Now, how to call it?

Go to C:\program files\zabbix agent\zabbix_agentd.conf

Add something like following lines at the end…

PerfCounter= Server1NetIn,"\Network Interface(Intel Pro Server Adapter)\Bytes Received/sec",60
PerfCounter= Server1NetOut,"\Network Interface(Intel Pro Server Adapter)\Bytes Sent/sec",60

Note that the value placed in inverted commas is exactly the same, which you must have obtained from that network.txt file. Restart the Zabbix Service from services.msc. Now, go to Zabbix Server WebUI, create an item in target Windows Server area with any name for Network and put Server1NetIn or Server1NetOut as key. Save item and you are ready to use it in your graphs 🙂

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine

Sarg-The Layman Reporting Tool For Squid

So, you got your Squid Proxy Server up and running, got your management impressed and moved into a controlled scenario. But is that really make full sense, if you still don’t know what exactly going on under Squid? I mean who is accessing what and for how much time and in what way etc. etc. Only after this knowledge, you would be able to know what to block next or what to allow!

Yes! the basic way is to go through /etc/squid/access.log, but considering the huge size of this access log file, its not convenient at all, neither the format of access.log itself that pretty to read or present. What we require is a tool that could tell us things like who’s accessing what and how much traffic has been passed through squid like stuffs? Here is our simplest solution: SARG – Squid Analysis Report Generation

Here are a few screenshots to give you an idea that what it can do for you

Report link over a period

Users statistics

What users are downloading

Which sites are being accessed

The last screenshot tells us that which sites a particular user/ IP address is accessing and the first-n-second screenshots tells us that how much traffic is passing through Squid and what is the distribution? Probably much of what we actually wanna know.

Here it comes that how to get it in action in layman’s way:

Getting SARG Installed: First you need your apache running means you must be able to get your apache page on hitting http://localhost and then proceed to get the RPM for SARG first. As I am taking the case of CentOS, so the way is to do


This will download this 306 kb rpm to your current directory and then you just need to do

rpm –i sarg-2.2.1-1.el4.rf.i386.rpm

Configuring SARG: It places a sarg.conf in /etc/httpd/conf.d to take care of sarg-reports web form, while the other sarg.conf places itself in /etc/squid, where you need to edit it and commenting the line deny from all, which actually enabling only localhost to see the reports and denying all others. After that you can either place allow from all or write lines for providing report access to certain defined IP addresses only. After that just type the below and you are ready to go:

service httpd restart

Running SARG: SARG automatically places its scripts in /etc/cron.daily,  /etc/cron.weekly, /etc/cron.monthly, which will keep on performing its job without any intervention required. You need not to do anything for it. Although if you want to generate a one-shot SARG report, then you can always use

sarg -ix

Hope you will like the way, it does the job of Squid reporting for you in most simplest yet most effective way. In next, I will try that how can these reports could be customized to make most of it.

photo of Nitish KumarNitish Kumar

Windows Deployment Services : Finally done

[tweetmeme source=”mrnitishkumar” only_single=”false”]

Add to Google Buzz

Sometimes, the most difficult things look easy, when they get finished. For me Windows Deployment Services was almost joined in the unfortunate list with TCExam; things, which irritated me a lot, while I was trying to learn them. I really remember the day, when I deployed RIS and it really taken lots of R-n-D to handle network drivers and also many manual entries as well. But it was done and then we moved with it pretty well for a while. The recent challenge arrived, when I was to deploy WDS from entirely scratch and that too within a timeline along with my all other works. The requirement was to create a kind of locked up image having necessary software/ drivers along with many vulnerable and un-necessary services disabled. I was to use Windows Deployment Services for the same.

WDS been a straight improvement over RIS in the same way as WSUS has been over SUS. Either its been image management or driver compatibility or speed or be it space requirements. Its one step ahead in every way. But unfortunately, it troubled me a lot due to minor things.

Initially I was much troubled with the network driver injection thing as I started with Riprep (like RIS days) and it refused to take every possible way to get it done. The issue was kind of more highlighted due to much time taken in experiments due to lesser RAM.

After giving up with all RIS things, I finally started from scratch with help of following article. The basics were requiring simply sysprep an Ideal System and use the image as install image and in addition, to inject network drivers in boot image via imagex from Widnows AIK. But after sysprep, my Image PCs will not getting started and were in continuous reboot cycle.

Much later, finally somehow, I pinpointed the trouble and it seemed to do something with disabling services; specially Telephony Services. I prepared an updated system along with required software/ drivers without disabling any services and then sysprep it and it worked. 🙂

Here I am going to give all the steps, whcih worked for me in the end (from Lucius Craig blog).

Step 1 – Installing WDS on your Windows 2003 Server SP2

  • Logon to the Server with Domain Administrator rights
  • Navigate to the control panel and click Add/Remove Programs
  • Click Add/Remove Windows Components
  • Scroll down and check Windows Deployment Services
  • Click Next and Finish (once installed WDS can be found under Administrative Tasks)

Step 2 – Configure Windows Deployment Services

  • Navigate to Start > All Programs > Administrative Tools > Windows Deployment Services (WDS MMC should appear)
  • Expand Server and right click [sever name] and click Configure Server
  • Click Next to start the Wizard
  • Check the Path if needed (I used D:\Remoteinstall because of disk space on system drive C:)
  • If you have DHCP Server on the same server, then For DHCP Options 60 Check both “Do not listen on Port 67″ and “Configure DHCP option 60 to “PXE Client” and Click Next. If not then leave it as it is.
  • For PXE Server Initial Settings select “Respond to all (known and unknown) client computers” and click Finish

Step 3 – Install OS and all needed Applications (excluding Windows Media Player 11)

  • Enable network boot option in BIOS 
  • Install Operating System – In my case I installed a Volume Copy of Windows XP Professional SP2
  • Join to the Domain and install needed Application and Updates
  • Remove from Domain

Step 4 – Setup Boot Image in WDS

  • Create a folder on the sever to copy two WIM files to (WinPE.WIM and Boot.WIM)
  • Insert a Vista Business DVD in to the DVD-ROM drive and browse the Disk for a file called Boot.WIM and copy to folder recently created folder
  • Navigate to Program Files\Windows AIK\Tools\PETools\x86\WinPE.WIM and Copy to recently created folder
  • Now I opened up WDS expanded Server and right clicked the Boot Image Folder and Clicked Add Image
  • Browsed to Boot.WIM  and click OK
  • Repeated for WinPE.WIM and click OK
  • Next, In WDS I right clicked WinPE and Clicked Capture Image
  • Finally, In WDS I created a Master Image Group called “Windows XP Image”

Step 5 – Sysprep the Master Image

  • To Run the sysprep I inserted the XP Professional SP2 Disk and Browsed to the file (in my case it was D:\Support\Tools\
  • I used WinZip to extract the file to a new folder I created called sysprep (C:\sysprep
  • Navigate to the C:\sysprep folder and launch setupmgr.exe
  • Click Next to Start the Wizard
  • Select “Create new” and click Next to continue
  • Select “Sysprep setup” and click Next to continue
  • Selct “Windows XP Professional” and click Next to continue
  • Select “No,do not fully automate this installation” and click Next to continue
  • For Gernerl Settings enter the Name and Organization, Display Settings (default), enter the Time Zone applicable and then enter the Product Key
  • For Network Settings select “Automatically generate computer name, Select “Use the following Administrator password (127 characters maximum ; case-sensitive” and enter local administrator password and confirm. Select Typical settings and finally select Workgroup.
  • For Advanced Settings specify Country or region, enter area code, Regional Settings select “Specify regional settings in the answerfile” and check ”Customize the default regional settings” Click Custom and verify and enter sysprep Identification String (example Windows XP Deployment for HP DX2480)
  • Click Finish and OK
  • Click Cancel to Close Setup Manager ( This is an annoying microsoft glitch)
  • Now runs Sysprep by navigating back to c:\sysprep and launch sysprep.exe
  • Click OK to Continue
  • The System Preparation Tool 2.0 windows should appear. Check “Use Mini-Setup and then Click Factory
  • Once PC shuts down press the power button to restart the PC (PC will take some time to reboot)
  • Once at the Desktop Click Reseal and OK to Shutdown the PC
  • PC should Shutdown (do not boot to windows you need to PXE boot and capture the image
  • Sysprep is Complete

Step 6 – Create Master Image for WDS

  • Boot up the PC that you want to image and press F12 to enter Boot Menu
  • Select Onboard Network Controller and press Enter
  • Press F12 again to Boot from network
  • Select Windows Vista PE (x86) and press Enter
  • From the command prompt type wdscapture.exe
  • Click Next to start the WDS Image Capture Wizard
  • In the Image Capture Source use the dropdown to select the volume to capture (in my case it was C:\) and enter an Image Name and Image Description. Once complete click Next
  • In the Image Capture Destination you will need to browse to a local Destination ( I had problems finding the WDS server when I checked “Upload image to WDS server:”)
  • Click Finish to begin capturing Image
  • Once I had the Image I restarted the Master-Image PC and Join to Domain
  • I copied the image file to a local directory on the WDS server
  • Once complete I opened WDS and expanded Servers> [Server Name] > Install Image
  • Right Click Install Image Group and Select  Add Install Image
  • Browse to the Image and Click OK to upload the Image to WDS

Step 7 – Image New PC

  • Press F2 to access the BIOS and make sure that PXEboot is enabled on the NIC
  • Press F12 to access the Boot Menu
  • Select “Onboard Network Controller
  • After DHCP issues IP address press F12 to continue
  • Select “Microsoft WindowsVista PE (x86)” and press Enter
  • Once wpeinit launches type the following:
    • Diskpart
    • Select disk 0
    • Clean
    • Exit
  • Type exit to let system restart
  • Press F12 and Boot from Onboard Network Controller
  • Press F12 to continue
  • Select “Microsoft Windows Longhorn setup (x86)” and press enter
  • Click Next to start the WDS wizard
  • Enter the domain administrator’s credentials and click OK
  • Highlight the Master Image and Click Next
  • Highlight Disk0 and Click Next – Installation will begin
  • After PC reboots the windows setup should appear click Next to begin
  • Select “Yes, I accept” to click Next
  • Enter the product Key and click Next
  • Enter Computer Name and click Next
  • Enter and confirm the local administrator password and click Next
  • Select No, don’t make this computer part of a domain and click Next
  • Click skip and slect No, not at this time and click Next
  • Click Finish
  • Once PC reboot confirm that you can logon to the desktop as a local administrator
  • Reboot in to the BIOS and disable Network PXE

You will be happy to know that its actually taking less than 30 mins to install a full image of Windows Professional Service Pack 3 along with all updates till 1st November 2009. 🙂 Here is a short video:


PROBLEM: Not able to PXE Boot to WDS – “WdsClient: An Error occurred while starting networking: a matching network card driver was not hound in this image. Please have your Administrator add the Network driver for this machine to the Windows PE image on the Windows Deployment Services server.”

CAUSE: Boot Image missing network driver

RESOLUTION: Need to inject the network driver in the Windows PE image. I used the procedures at James Bannan’s article as given below:

PROBLEM: Not able to capture second image

CAUSE: Till now, I am not sure that what causes this.

Solution: In place of using WINPE image for capturing boot image, I used Longhorn one (modified with drivers in it and it started capturing the image to local drive (not tried for uploading to WDS directly, as it don’t work most of the time, coz don’t get IP Address or network card don’t get initialize due to same network driver issue)

PROBLEM: WinPE quiting with giving blank Error msg with OK

CAUSE: Somehow I came to figure out and the reason was simple, lesser ram. WinPE requires at least 512 MB of RAM, which means you need to have at least 512 MB RAM in PC, you are going to install Windows XP by WDS.

Solution: Although I come to read that this 512 MB check could be bypassed, if you are using unattended installation, then it is told to be solved by changing one entry in xml file, but as I have not got it succeed in my case, so can’t comment much on it.


Although its not a bug, but as pointed out by GuillaumeD’s blog, I got to know that  it could be trouble, if your default installation is not in \Windows Folder. Although most of us will not bother about such a situation as there might be more and more obvious issues, but still I would like to put the solution found by the author.

To provide to wdscapture.exe the folder name of your installation, you have to modify the wdscapture.inf located in the \Windows\System32 of the WDS Capture wim file.

  1. Imagex /mountrw X:\RemoteInstall\boot\x86\Images\wdscapture.wim 1 E:\Mount
    X: represents the volume on which the WDS system folder is stored
    E:\Mount is a temporary empty folder used to mount the WIM file
    x86 represents the target architecture of the WDS Capture wim
  2. Edit the file e:\mount\Windows\System32\wdscapture.inf
  3. Modify the value of SystemRoot :
  4. Close the file wdscapture.inf (save the changes !)
  5. Unmount the WDS Capture wim : Imagex /unmount E:\mount /commit

How to use the available tools to modify Windows PE-based boot images:

This is a pretty important issue, because Windows PE is also used for the Windows Distribution System (WDS), Microsoft’s new software for deploying Vista across a large number of PCs via a network. Since WDS, by its nature, must work across various hardware platforms, it probably needs more drivers than the smallish set that comes with it.

Here’s how to get around the problem.

HOW TO: Inject Drivers into Windows PE 2.0

This tutorial assumes that you’re running Windows Deployment Services and want to update the default BOOT.WIM file to enhance platform compatibility, but the processes for injecting extra drivers into a WIM file are exactly the same for ANY WIM-based image.

You’ll need a full install of the WAIK, as it contains the necessary tools to manage WIM files. Note that its a download of more than 1GB. This can be done on any system, but if you’re running WDS it will install properly on the WDS server. Insert the DVD and select “Windows AIK Setup” and install WAIK.

WAIK InstallWAIK Install

Next you’ll need to create a folder to easily modify BOOT.WIM. I found it easiest to create a Temp folder, and then two more folders within that called Mount and Drivers. Then copy BOOT.WIM from the Vista DVD to the TEMP folder and rename it CUSTOMBOOT.WIM.

Now download the drivers you need, and extract them to \Temp\Drivers.

You’re not after DOS drivers – remember that this is Windows PE 2.0 so XP drivers are the best ones to use (or Windows Vista, if they’re available).

WinRAR is a great tool for extracting the contents of an EXE while maintaining the folder structure – this is very important as you need to be able to get at the INF driver files.

Once that’s done, go to the Start Menu, Microsoft Windows AIK, Windows PE Tools Command Prompt. This loads a command window with the PE tools IMAGEX, PEIMG and OSCDIMG loaded into the path, which makes life much easier.

PE Tools Command PromptPE Tools Command Prompt

Navigate to \Temp and type in:

imagex /info DRIVE:\Temp\customboot.wim

Where DRIVE is the appropriate drive letter. This checks the CUSTOMBOOT.WIM file and lists the images contained within it.

ImageX InfoImageX Info

There are actually two images, but the one we want is the Longhorn Setup image – number 2. Now type in:
imagex /mountrw DRIVE:\Temp\customboot.wim 2 DRIVE:\Temp\Mount

This mounts image 2 of CUSTOMBOOT.WIM into the \Temp\Mount folder in read/write mode. You can navigate to this folder and browse the contents and make any changes you like.

PE Tools - Mount ImagePE Tools – Mount Image

Now go back to the command window and type in:
peimg /inf=DRIVE:\Temp\Driver\FOLDER\*.inf /image=DRIVE:\Temp\Mount

Where FOLDER is the appropriate folder which contains the INF driver files. This injects the drivers straight into the mounted image. You can manually specify which driver is to be installed, or just use the wildcard to install all the drivers found in that folder. Repeat this process for all the drivers you want to install.

Once that’s done, type in:
imagex /unmount /commit DRIVE:\Temp\Mount
This unmounts the image from the \Temp\Mount folder and commits the changes you made. Do NOT forget the /commit statement or you’ll have to do the whole thing all over again. Not fun.

Now go back to the WDS console and right-click on the boot image, then select Disable. Right-click again and select Replace Image, then browse to \Temp\CUSTOMBOOT.WIM. This will replace the contents of BOOT.WIM with the updated CUSTOMBOOT.WIM. It doesn’t erase BOOT.WIM, and the boot image will still use the original file, but the extra drivers are now loaded into the Longhorn Setup image. Being able to replace the image means that you can maintain an offline master boot image, so you never need to directly work with the WDS boot image.

Unlike RIS where any such change required a restart of the service, WDS accepts this change on the fly. Connect your clients to the WDS server and they will use the updated setup image with the incorporated drivers.

At the end, I really want to thank Lucius Craig and James Bannan for their invaluable resources, which I am sharing with others now.

Cheers! WDS is ready to run now.  

Also check Rathenkomputindo’s Weblog. Could be very useful, if you are looking for screenshots.

photo of Nitish KumarNitish Kumar

Add to FacebookAdd to DiggAdd to Del.icio.usAdd to StumbleuponAdd to RedditAdd to BlinklistAdd to TwitterAdd to TechnoratiAdd to Yahoo BuzzAdd to Newsvine