Sunday, 14 June 2009

Walkthrough - Install Win XP by booting through PXE

My brother has an old Fujitsu Siemens b series lifebook (B2175). (Probably one of the first netbooks). It had Win 2000 on it initially then we installed Ubuntu on it. Now we wanted Win XP on it as we had increased the memory in it.

Problems

The B2175 doesn't boot to USB, it doesn't have a floppy drive and it doesn't have a CD drive.

The only way to install anything on it is through PXE.

Solution

  1. Download my custom zip file package. It contains everything required to install Win XP through PXE except for the Win XP installation files ;-)
  2. Unzip the file to C:\ drive. After unzipping you will have a folder called 'root' and a file called smartdrv.exe on the c drive.
  3. Copy the i386 folder from your windows xp cd to a folder that is shared on your local network. In my case I copied the i386 folder to \\xpcomputer\video .
  4. Copy the file smartdrv.exe from c:\ to your share folder i.e. \\xpcomputer\video
  5. In the root folder there will be a file called 'Tftpd32-3.33-setup.exe'. Run the file to install a TFTP server onto you computer.
  6. After installing the TFTP server. Start the TFTP server.
  7. Change current directory to 'c:\root' in the TFTP server program
  8. Under DHCP Server tab set the following (assuming your router's ip address is 192.168.0.1):
    ip pool starting address to 192.168.0.40
    Size of pool 10
    Boot file pxelinux.0
    WINS/DNS Server 192.168.0.1
    Default router 192.168.0.1
    Mask 255.255.255.0
  9. Click save and then choose the 'settings' button and make sure that 'PXE compatibility' is checked.
  10. Now boot the destination machine into PXE. After PXE boots up you should see the following screen. Choose 'network boot' and press enter.


  11. On the next screen choose option number 2 - boot with emm386 (max memory). (I tried option 1 but this caused the windows xp setup to fail with the message 'not enough memory' on my system).
  12. After some more loading text, you will get to the following screen. You must choose 'Config' before the 10 second countdown.

  13. On the next screen choose 'Global' from the list of choices. This will let you alter host settings that will be required later on.

  14. On the next screen choose 'Lmhosts'.
  15. Click 'Ok' on the warning message you receive as it is not applicable to our situation.
  16. In the next screen you can edit the systems host file. This is where you can define the ip address and the name of the server where the windows installation files are held. This is important as without these settings the system will not be able to see the server. Please note that in this example there is a [tab] between 192.168.0.225 and xpcomputer.
  17. Save the file by typing ALT+X and click 'back' and then 'exit' on the next screens.
  18. Now we need to go back into the setup to allow the system to finish its network settings. This is done by typing in 'msnet' at the prompt as below and then clicking 'Ok' on the screen after
  19. You will now see 4 prompts which should disappear one by one with default settings. The last of the 4 prompts is titled 'Network Identification'. You will need to click 'Ok' to accept the default settings on this prompt. After this you will be prompted for a password. Just press [enter] for a blank password.

  20. Now type 'msnet' at the prompt and choose 'map' to go into the network drive mapping utility.
  21. In the 'Map drive' prompt type in a drive letter and type in the network path of where the windows i386 folder is located. Click 'Ok'
  22. Click on exit to go back to the command prompt. Make sure it says 'The command completed successfully' to confirm that the network drive was mapped correctly.
  23. Now run smartdrv.exe from the mapped drive by typing in z:\smartdrv.exe at the command prompt.
  24. Next start the windows xp installation process by typing in z:\i386\winnt.exe .
  25. On the first screen of the windows xp installer it will ask for the location of the installation files. Make sure that this shows z:\i386
  26. Now you can continue with the windows xp as normal.
Please note:

I have run this setup on a home network with normal settings. I wouldn't set this up on a corporate network unless you know what you are doing as the TFTP server may interfere with DHCP settings or other settings.

I referenced the following page in order to create this walk through.
http://r00tsecurity.org/forums/index.php?showtopic=9338

If you have any comments about this walk through or are having problems then post a comment.

46 comments:

Anonymous said...

Thank you! This was very useful post especially for me.

Sony said...

No problem,
Glad to see it helped you

David A. said...

Wow, I searched everywhere for a tutorial. All of the others, including from Microsoft itself, were so complicated and called for Microsoft Server 2003 or Vista. This has been the easiest-to-follow walkthrough I have found. Thanks for your time and for posting this.

Sony said...

@David A

Glad to hear it has helped you and thanks for your comment.

Starscream said...

Hi

When I re-boot the destination machine, it keeps getting a PXE-E53 "No boot filename received".

Does anyone have any ideas on how to rectify this?

thanks

Sony said...

Not sure about your set up but is there any other dhcp server on the network.

If so then disable it or make sure it is not conflicting.

Also make sure all the files have correctly extracted into the source folder.

Hope this helps

wentzr said...

you mentioned ubuntu so i was hoping this would provide an answer as to how to initiate this from ubuntu, not another winxp machine.. i have a laptop which has no cd drive, external usb/fw drives do not show up as bootable devices in my bios, but USB sticks do. (go figure).. I have a mac, and a linux box w/ ubuntu installed here, I don't want to install win on my ubuntu box just so i can install winxp on my laptop... can you point me in the right direction as to how to initiate the PXE boot from a Ubuntu 9 machine??

Thanks a lot!!

Sony said...

Found this site which shows how to setup a tftp server on Ubuntu. After setting up the tftp server on Ubuntu the rest of the walk through should be fairly similar.

Thanks for your comment

Anonymous said...

Thanks..!! It was really helpful..!!

Anonymous said...

I am getting a PXE timeout.

router = 192.168.1.1
PC server = 192.168.1.100
client = 192.16.1.101

Anonymous said...

Hi There, Thanks for your help.

I seem to be getting stuck between steps 18 and 19.
After I type MSNET I get an unrecognized network driver error, it then asks me to select one from the list but the driver (Realtek V5.05) for the model number I'm using is not listed (Lifebook B-3010).

Any ideas?

Sony said...

I have had the same issue with the lack of network drivers for some laptops.

I'm not sure how to add extra drivers but will do a bit of research and see if I can find anything.

Anthony said...

I have a PXE-E32: TFTP open timeout
on the client and on my log, this line frequently recurs. I've made sure all the settings are correct.


TIMEOUT waiting for Ack block #1 [29/11 21:11:48.500]

Paulo Santos said...

Hi,

Great job we done Sony

When i boot from a Dell workstation via PXE server, I get the autoexec.bat stopped due to "EMM386 not installed - XMS manager not present"

Any idea what can be the cauze and how to solve it ?

Anonymous said...

DUDE thats a wonderful post, but I asked one thing, can I boot my laptop with my desktop pc without any router. I have laptop Extensa 6700z and its CD-Rom is out of order, so plz help me, can I boot my laptop with desktop pc using your given post.
Regards,
Shahrukh Zafar (BE)

Sony said...

@Paulo
Haven't seen that error before. I did a quick search on google and could only find this thread that could be related to your problem

http://forums.techguy.org/earlier-versions-windows/19883-solved-expanded-memory-driver-emm386.html

@Anon
The way to do this is by using a special network cable called a cross over cable. This way you don't need a router betwen the linked computer.

http://windows.microsoft.com/en-US/windows-vista/Connect-two-computers-using-a-crossover-cable


http://www.home-network-help.com/crossover.html

Anonymous said...

Great post! Most helpful and practical.

Anonymous said...

Hi there let me say what a great clear instructions.

Just like to add some additional notes that may help others
I have a Toshiba Protégé R100, No external CD, floppy drive can not boot from USB

I tried an IBM portable bay drive in the PCMCIA slot, no good
And then tried a formatted Compact Flash in the PCMCIA slot, no good
The laptop just would not boot.
But your instructions gave me a way in to the laptop. I got in to the bios with ‘esc’ then f1. I changed the boot order to Cd-ROM, LAN, and HDD.

The comment about copying the ‘i386 folder to a shared folder ‘\\xpcomputer\video’
Not everyone will know this is a mapped network drive. Via ‘tools’
Also the folder the i386 folder is in has to be shared and you have to enable file sharing of the source PC.

I had a desktop win XP machine as my source, this and the Toshiba were both connected to my BT home hub. (The hub act as a DHCP server).
I followed all your steps but when I run WINNT, I got an error about windows requires 399Meg disk space and the destination disk is compressed message’

The primary boot partition was NTFS . So it could not see a C: Anyway having now access to the DOS Prompt. I was able to run FDISK, delete all the partitions, and created new ones (two partitions C & D). But to see the changes I had to re-boot again. So I went round the loop to get back to the dos prompt and was able to format the C: and D:

In the instruction running WINNT installs over the network can be temperamental and takes a long time so could fail. So I copied the copmplete ‘i386’ directory and sub directories to to the destination laptop. Change to the Z: where the i386 directory is, and run ‘xcopy /e i386 d:\i386’ it prompted for file F or directory D, Hit D. (this takes a while) Also copied over and run from the D: smartdrv - copy smartdrv.exe d:\smartdrv.exe. Went to the D:\i386 run WINNT. Now installed
A BIG THANK YOU

Anonymous said...

For the lack of network drivers this post solved my problems :
http://www.pcreview.co.uk/forums/would-inject-network-driver-into-bartdisk-ima-t3787093.html

Anonymous said...

DID NOT WORK!

I have a toshiba NB305 as target computer. I compiled a network adapter driver for it, injected it into bart's image - went alright, I can connect to the target, but when I tell it to run SMARTDRV.exe it says "bad command". I can switch to the drive "X:" but if I run "dir" command it says there is nothing there...

Anybody else had this problem?
Any ideas?

sebi said...

Dude, your TFTP executable has a nice little virus attached. Thanks,AVG, for finding it! I highly recommend downloading the file from its website (just google TFTPD).

Otherwise, thanks for your nice explanation!

Sony said...

Hello Sebi,

Sorry to hear you had a virus alert from my package. I downloaded the package on a computer with ESET on it and it scanned clean.

All I can think is that it was a false positive in AVG

I hope the guide was useful anyway

Anonymous said...

Same problem. I can not run SMARTDRV.exe. it says "bad command". I can switch to the drive "X:" but if I run "dir" command it says there is nothing there...
Someone can I help me?

Thanks in advance

Anonymous said...

It works fine for me now.
You just have to see more on the sharing of winxp folder than you can rune SAMRTDV.EXE and see also all the repertories in winxp folder. http://support.microsoft.com/kb/304040

F_O_X said...

More Information:

If you were asked for password after step number 21

Just do the following:

On the Windows 7 computer, go to “Control Panel\All Control Panel Items\Network and Sharing Center\Advanced sharing settings” and ensure that the following items are turned ON:

Network Discovery
File and printer sharing

And this one is OFF:

Password protected sharing

Thanks for your tut :)

Sony said...


Hi F_O_X,

Thanks for the contribution

Pokemonfan said...

I keep getting "PXE-E53 No Boot File name received." on my client computer. I have set up tftp just like you did, except changing IP Addresses when necessary. Please help

randomperson said...

i get to msnet part but it cant auto load my pci card for somereason. any help would be nice. i have a lifebook b6230.

Sony said...

@pokemonfan

That seems to be a file name issue. Can you confirm that the name of the file and the paths to all files are correct. Other than that I'm not sure.

Sony said...

@randomperson

This looks like a driver issue. I'm not familiar with the B6230 model although it looks similar to the model we used.

Sorry I can't be of more help.

Anonymous said...

Awesome Tutorial, Only one thing I think is missing, If your NIC dosn't match the few packed drivers, its simple to build a new bartdisk.IMA

http://www.nu2.nu/bootdisk/network/makedisk/

How to rebuild a new BartDisk

http://sourceforge.net/projects/vfd/

A virtual floppy drive to build it as a IMA

Adrian Castro said...

I cant get through on number 18.

PCI detection has not found a listed PCI adapter. Switching to manual.
my laptop is HP 520.

I already tried the manual still can't get through.

Should I install Ethernet driver? How?

Can you give me some advice.

Thanks!!!

Murtud Lubadus said...

Thanks for posting this tutorial, however, at step 10, by laptop obtains the IP address but instead of the Network Boot menu, it display the following:
PXE-T01: File not found
PXE-E3B: TFTP Error - File not found
PXE-M0F: Exiting NVIDIA Boot Agent

Any fix for this?

Regards,
brh

Anonymous said...

just tried it and my pxe boot gets stuck at loading default and it stops there any suggestion thanks
Live2Ride_88@h0tm@il.com

Anonymous said...

This is the only one place i could find the necesary archives and a tutorial with photos. other´s people tutorials in the web are just copy paste.thank you.

Anonymous said...

Well fuck me, this method is sexy, thanks a lot, you saved me a shitload of problems.

Andrei C said...

I'm getting an error when i try to run smartdrv.exe : Bad command or file name.
I do not understan, my files are full permision and the computer (which i'm try to install windows) can see the map Z

Anonymous said...

ok guys
find the soluce for injecting a new driver

give exemple
open ima file into as exemple poweriso
i selected smc9432.cab into ima lib ndis
i selected my dos and ini file driver and rename as 9432.dos and 9432.ini
in the case ini file was named protocol and did not contend the right txt
change it by replacing by original 9432.ini file from 9432.cab
after u must recreate the cab
on xp can be done using iexpress found into system32 dir
replace 9432.cab into ima lib ndis with your new cab
so your driver can be charged using smc9432 select option menu

ok now i ask how to configure options from it ?
got a 33 error unable to bind

tnx for tuto

Anonymous said...

ps dont forget to change name info into sif and oemsetup info !!!

Anonymous said...

Andrei C said...

I'm getting an error when i try to run smartdrv.exe : Bad command or file name.
I do not understan, my files are full permision and the computer (which i'm try to install windows) can see the map Z
10 November 2014 16:43

just a little clue...
in fact u must share as this
select dir
property
share
select user as everybody and ADD BEFORE SHARE

for the admin CAPCHA ARE BORINGS FOR PEOPLE WITH BAD EYES

Anonymous said...

Now you can continue with the windows xp as normal.

not really
xp dont find my local drive so msg is windows needs 547mb etc... install cant continue

add tips pse

Anonymous said...

ok found it
u must copy fdisk and format win98 into share directory
after fdisk
do partition
set active
reboot
and format !!

began copy

Anonymous said...

regards for this tuto who really helps me to install xp on a 701 eee pc

Sony said...

Thank you all for your comments. I'm glad this post is still useful.

Special thanks for improvements done to the process through the great comments by all the anons

Anonymous said...

give all the process in french
saw the comments not clear 3 months later !!

installation xp sur 701 via pxe

besoin

* cd xp
* machine cliente
* machine server
* cable croise ou autre moyen reseau ethernet
* tfpd 32
* librairies root.zip
* poweriso ou identique
* winrar
* iexpress
* cdes fdisk et format win98

prerequis

copier l'integralite du cd xp dans un repertoire i386 sur c:\
decompresser root.zip dans un dossier root sur c:\
deplacer smartdrv.exe de root dans i386
mettre tous les drivers du 701 dans un dossier driver701 sur c:\
decompresser tfpd32.zip dans un dossier servtfpd sur c:\

***************************************************************
* il va falloir apporter une grosse modif ici *
* car le driver n'est pas installe dans le package par defaut *
***************************************************************
ouvrir bartdisk.ima avec poweriso ou autre
aller dans lib=>ndis
selectionner et copier le smc9432.cab sur le bureau
extraire Lan_XP_071011.zip qui contient le driver lan pour l'asus 701
aller dans lan=>ndis2
copier L2 ndis2 v1.0.613.1 sur le bureau
faire une sauvegarde du contenu (une etourderie est vite arrivee)
ouvrir et
renommer protocol.ini en smc9432.ini et l2.dos en smc9432.dos
ouvrir et modifier oemsetup.inf en changeant l2.dos par smc9432.dos
il faut maintenant refaire le cab
pour ca on va utiliser iexpress se trouvant dans system32 de windows
enfin on va remplacer le smc9432.cab de bartdisk.ima par le notre
si vous avez ferme votre gestionnaire d'iso reouvrir bartdisk.ima
et remplacer dans lib=>ndis smc9432.cab
(faire une sauvegarde avant de l'ancien cab)

lancement et installation

configurer la machine cliente a booter sur pxe en allant sur le bios du 701
par F2 lors du démarrage *** option boot onboard lan boot rom enable ***
inhiber tous les onboard device sauf LAN
boot device priority
1 le ssd
2 removable dev
3 disable

exit and save !!

la machine reboot et met un message de configuration shift + F10
*** attention ca passe rapidemment reperez la sequence sur le clavier avant ***
*** verifier que le protocol est sur pxe ***
mettre boot order sur int 19h
save par F4

lancer tfpd32
dans setting ne garder que syslog tfpd server et dhcp
dans tfpd changer le dir en c:\root
changer l'interface pour celle vous reliant au reseau
dans dhcp
configurer l'adresse de debut puis le nb d'adresses (pool)
puis l'ip du serveur le masque
dans boot file mettre pxelinux.0

si tout est ok en lancant la machine client vous devriez
avoir une ip attribuee dans l'onglet dhcp de tfpd32

et voir un menu network boot
et boot normal

laisser sur network boot
le menu de windows 98 apparait
lancer l'option 1

un menu running network client apparait
choisir config
puis global
puis lmhost
vous allez donc ouvrir le lmhost en modification
il faut entrer l'ip de la machine server ainsi que son nom separe par
une tabulation
exemple 192.168.1.4 GHOSTDB
regarder le nom et l'ip avec ipconfig
puis alt+X pour sauvegarder
puis menu global settings back
puis exit

vous devez arriver a une invite de commande
on entre msnet (attention qwerty)
puis on choisit notre driver smc9432
puis invite demandant le mot de passe
on valide a "blanc"
on retape msnet (attention qwerty)
puis option du menu map
on va y donner une lettre de "mappage"
et le chemin ou les fichiers de windows sont places donc c:\i386 soit donc \\GHOSTDB\i386
puis exit

apres lancer smartdrv
fdisk
partitionner et rebooter
puis apres la procedure formatter le disque
puis cd i386 et winnt

ouf

Anonymous said...

anon is the same lol
dba@aliceadsl.fr