ADM Blog

Install Windows XP on your Asus Eee PC using a USB flash drive

This method of running and installing a Windows from a USB flash drive works on all computers not just Asus Eee PC's.

To complete this tutorial you'll need:

- a 32bit version of Windows XP or Windows Vista installed on your computer



- Bootsect

- a Windows XP instalation CD or image

Extract all the zip archives, copy the PeToUSB content into the USB_prep8 folder. Inside the USB_prep8 folder double click the executable named usb_prep8.cmd

The window that opens will look like this:

Click to enlargePress any key to continue.

Your next window will look like this:

Click to enlargeThese settings are preconfigured for you and all you need to do now is click the Start button.

Once the format is complete, DO NOT close the window. Just leave everything as it is and open a new command prompt from your start menu (type cmd in the Run box)

Inside the command window, go to the directory you have bootsect.exe extracted and type (see note bellow first)

bootsect.exe /nt52 R:

Note: R: is the drive of my USB stick. Open Windows Explorer and see what letters yours is assigned to and change the command accordingly. When running the bootsect.exe command, you must close all windows/programs that are displaying/using the content of the USB stick to allow the boot sector writer to lock the device and write the sector correctly.

This part writes the correct boot sector to your USB stick and allows the pc to boot from the stick. Without this noting works.  If all went well with the command, you should see "Bootcode was successfully updated on all targeted volumes"

Now you can close this command prompt and the PeToUSB window (but make sure not to close the usb_prep8 one by mistake)

The window you see now should look like this:

Click to enlarge

Now you need to enter the correct information for number 1, 2 and 3

- Press 1 and then enter. A folder browse window will open for you to browse for the location of your XP setup files (cd rom drive, mounted image or a folder somewhere on your system)

- Press 2 and enter a letter not curently assigned to a drive on your PC (try x or someting at the end of the alfabet)

- Press 3 and enter the drive letter of your USB stick

- And finally, press 4 to start the process

The script will ask you if its okay to format the virtual tempdrive (the one at step 2). This is just a temp drive the program creates and mounts to cache the windows installation files. You can safely press Y to continue

Once it's done formating, press enter to continue again, you can now see the program copying files to the temp drive it created. This will take a while (browse other articles from my blog till then :) ) but once this is done, press enter to continue again.

Next you will see a box pop up asking you to copy the files to USB drive (yes/no options). You want to click yes here.

Once the script has completed once again a shit long copying process, another window asking if you would like the USB drive to be preferred boot dive U:. select Yes on this window too.

Now select yes to unmount the virtual drive.

Ok we are done the hard part, close the usbprep8 window.

Now make sure your EEE pc is configured with USB as the primary boot device.
Insert your USB drive and boot up the EEE.

On the startup menu you have two options, select option number 2 for text mode setup.

From this point on it is just like any other windows XP installation delete/recreate the primary partition on your EEE pc and format it using NTFS. Make sure you delete ALL partitions and recreate a single partition or you will get the hal.dll error message.

Once the text mode portion of setup is complete it will boot into the GUI mode (you can press enter after the reboot if your too excited to wait the 30 seconds)

Once the GUI portion of setup is complete you will again have to boot into GUI mode this will complete the XP installation and you will end up at you XP desktop. It is very important that you DO NOT REMOVE THE USB STICK before this point. Once you can see your start menu it is safe to remove the usb stick and reboot your pc to make sure everything worked.

This method has advantages over all current no cdrom methods of installing XP to the EEE. You do not have to copy setup files in DOS to the SSD and install from there. It gives you access to the recovery console by booting into text mode setup, and it gives you the ability to run repair installations of XP if you have problems later on.

I hope this worked out for you and please post feedback to the comments section.



Reset system password for EeePC

If you managed to lose your Eee PC password, you can reset it with a pretty simple hack without resetting it with the built-in "Restore Factory Settings" and lose everything on your drive.

The first step in recovering your password is to remove the login password request so you can access your system.

Removing the login password request

To remove the password request, you have to delete a configuration file from your file system. You can do this by entering the single user mode.

1. Entering boot loader of the Eee PC

boot window for eee pc

Turn on your Eee Pc and as soon as the first screen appears (the one with the "Press F2 to run setup") pres and hold pressed the f9 key, until the Grub main screen will appear.

Click to enlarge

Your options are:

  • Normal Boot
  • Perform Disk Scan
  • Restore Factory Settings

2. Booting Single User Mode

Select Perform Disk Scan and press "e" key to edit the line. Now select the second line (the one that begins with "kernel") and pres "e" again

Click to enlarge

The cursor will blink at the end of the line. To enter the single mode you have to replace the string XANDROSSCAN=y with XANDROSBOOTDEBUG=y. Make sure you typed it correctly.

Click to enlarge

Now press enter and then press "b" key to boot single mode user.

3. Removing the configuration file with BusyBox

Now you'll enter BusyBox, a small Linux-based system, with an ash shell. With this shell you'll have to delete the configuration file (requireLogin) located in /home/user/.AsusLauncher/. This way you'll remove the login password request !

Once in the BusyBox shell, execute the following commands:

for the Eee PC 701 or Eee PC 904 HD:

- mount /dev/sda2 /mnt-user/

- cd /mnt-user/home/user/

- rm .AsusLauncher/requireLogin

- exit

for the Eee PC 900:

- mknod /dev/sdb b 8 16

- mknod /dev/sdb1 b 8 17

- mount /dev/sdb1 /mnt-user/

- rm /mnt-user/user/.AsusLauncher/requireLogin

- exit

Click to enlarge

... press return to reboot and to enter your Eee PC without the login request ;) This was the the hardest part. Keep reading

Resetting the old password setting a new one

Now you're able to read and edit your files, but you can't administrate your Eee PC; you have to set a new password

Open the terminal (browse for it or just press CTRL+ALT+T) and type:  sudo passwd user

Press enter and type the new password. Do the same for the root password by typing: sudo passwd

As promised, you're playing again with your Eee PC without any data loss! Have fun ;)


Right click and custom context menu in Flash/Flex

Anyone know you can customize your flash context menu with ContextMenu class. But what if you want to really get rid of that and use your on context menu or just use the functionality of the right button of the mouse ?

The idea is fairly simple:

1 - Use Javascript in the HTML container page to disable the right-click on top of the SWF.
2 - Capture the event and pass it to a function that communicates with Flash via the External Interface
3 - In Actionscript the function called from Javascript does whatever you need to display your own custom context-menu.

Why would anyone want to do this?

Well, there are several very important reasons:

1. Games – the power of AS3 has brought Flash to the world of digital entertainment. At last it is possible to focus on the idea of your game rather than on how to improve the laggy experience. One thing that is still missing – right click functionality. We had this forever in desktop games, now it is time to let your casual RTS, RPG and FPS creations conquer the web.

2. User Experience – 2 buttons are better than 1. Every experimentalist's dream is to be able to have more input options, not just one button. I can bet someone would soon create a stunning interface using this new functionality

3. RIA – Rich Internet Applications. My clients are often asking if it is possible to remove embeded Flash Player menus from their applications and replace them with their company’s branding stuff.

And the answer is : YES! You can hack it to use custom right-click functionality in Flash and Flex.

Here is the demo and because you won't be able to right click it to View the Sources :) here they are

Javascript source code looks like this:

var RightClick = {
	init: function () {
		this.FlashObjectID = "RightClickDemo";
		this.FlashContainerID = "flashcontent";
		this.Cache = this.FlashObjectID;
			 window.addEventListener("mousedown", this.onGeckoMouse(), true);
			 document.oncontextmenu = function() { document.getElementById("RightClickDemo").rightClick(); }
		} else {
			document.getElementById(this.FlashContainerID).onmouseup = function() { document.getElementById(RightClick.FlashContainerID).releaseCapture(); }
			document.oncontextmenu = function(){ if( == RightClick.FlashObjectID) { return false; } else { RightClick.Cache = "nan"; }}
			document.getElementById(this.FlashContainerID).onmousedown = RightClick.onIEMouse;
	killEvents: function(eventObject) {
		if(eventObject) {
			if (eventObject.stopPropagation) { eventObject.stopPropagation(); }
			if (eventObject.preventDefault) { eventObject.preventDefault(); }
			if (eventObject.preventCapture) { eventObject.preventCapture(); }
		    if (eventObject.preventBubble) { eventObject.preventBubble(); }
	onGeckoMouse: function(ev) {
		return function(ev) {
		if (ev.button != 0) {
			if( == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {
			RightClick.Cache =;
	onIEMouse: function() {
        // stupid ie fix
        if (document.getElementById(RightClick.FlashObjectID + 'x'))
            document.getElementById(RightClick.FlashObjectID + 'x').id =  RightClick.FlashObjectID;
		if (event.button> 1) {
			if( == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID) {;
			RightClick.Cache =;
	call: function() {

On the Flash side is as simple as this code (AS3):

private function init() : void
    ExternalInterface.addCallback("rightClick", onRightClick);
private function onRightClick():void
    var mx:int = stage.mouseX;
    var my:int = stage.mouseY;
    if(my > 0 && my < stage.stageHeight && mx > 0 && mx < stage.stageWidth)
        // show a custom context menu or do someting here

On Opera this will not work, the browser forces the context menu to appear and blocks mouse events by default.

Few things you shouldn't forget to make this work

- 2 extra parameters you have to add to the flash object in your html

- add to the body onload event RightClick.init(); function

Note: If you download the sources, you'll see in the html that the "object" tag has an extra 'x' character in the id. that's important to make it work in ie.