domenica 11 ottobre 2015

HOWTO: Moving a Windows (XP) installation from a broken PC to a new one... using Virtualbox.

Move one hard disk from a broken PC to a new one, usually, does not suffice in order to get back our OS installation; the problem is the lacking of pre-installed drivers for chipset and peripherals (the new PC ones) that prevents the system boot.

Few days ago my father's motherboard broke. I had no time to: install a new operating system and reconfigure tons of programs,I decided to try a desperate recover of the old installation.

And.. I had an idea.

Using virtualbox in order to boot up my father's OS and prepare the old installation to the migration to the new hardware; I hoped that the old OS already had the drivers for the old emulated hardware.
In order to boot the old installation, Virtualbox can use a physical device like virtual device for a virtual machine, this is not a well known feature.

The Performed Task

I recovered the old windows XP SP3 installation, moving it from a broken Asus k8n motherboard, equipped with Athlon x2 4200+, to an Asus p5n-d with Core2Duo Q9300.
The system hard disk was a 1TB WD green model.
The Virtualbox system host was my mighty laptop, equipped with the Intel 4720HQ CPU, and Linux Mint operating system.

The Procedure

I'll refer to my laptop as PC-host.

Preparation

  • Take out the system hard disk (HD) from the broken PC
  • Connect HD to PC-host (for example via an external USB adapter)
  • Find out the assigned HD device name: dmesg or fdisk -l  linux commands (in my case it is /dev/sdb)
  • Mount the HD partitions and backup the data
  • Unmount the  HD partitions (mandatory)
  • give device access to the virtualbox user (for example via chmod 777 /dev/sdb)

Virtual machine setup

Create a new Windows XP (32bit) virtual machine(VM), but do not create ANY virtual disk, configuration details:
  • Chipset PIIX3
  • 2GB RAM
  • I have forgotten I/O APIC On, but I think this has no effect with winXP
  • Network NAT, PCnet-FAST III (Am79C973)
  • Pointing device: PS/2 Mouse
Create a virtual disk that connects to the block device:

This example is for my use case, Linux operating system and HD device /dev/sdb

VBoxManage internalcommands createrawvmdk -filename "myFatherDisk.vmdk" -rawdisk /dev/sdb

Add myFatherDisk.vmdk virtual device to the VM (you do it in the Virtualbox storage panel)

Recover and prepare OS

  • Boot the VM
  • Press F8 during boot in order to enter Safe Mode
  • Wait device driver installation to complete
  • Reboot
  • The VM might work fine, let's skip windows genuine registration
  • let's download the new motherboard/device drivers (in my case from ASUS page)
  • install the new drivers into VM
  • Disconnect HD from PC-host
Untested: you can also try disabling the WPA to avoid problems during migration, I think you can re-enable later. Or you can find a solution by your own (please read the next section about).

At this point you have the old OS already working as VM inside a new hardware (PC-host).

Move the HD to the new hardware

  • Connect HD to the new motherboard
  • Boot from HD
  • Press F8 during boot in order to enter Safe Mode
  • My case: Windows genuine activation request prevent you from proceeding and installing drivers; usb devices are not working yet, you need a connected ps2 keyboard in order to skip activation(*)
  • Wait device driver installation to complete
  • reboot
  • Clean installation, reinstall broken software (I reinstall video driver, just in case), install secondary lacking drivers, clean registry (for example via CCleaner)
  • Reboot few times :-D
  • Activate your windows
My father's new PC is ready!

Notes(*)

I was unable to skip the windows genuine activation when booting with the new hardware, this prevents the driver installation.
In order to skip it you need a working keyboard or mouse, but the new USB hub device is not initialized, yet.
Luckily I had an old ps2 keyboard and the motherboard connector.

There may be alternative (untested) solutions:
  • you can force the hardware device initialization first, by using the sysprep windows utility.  A possibile solution, may be using sysprep before disconnecting HD from PC-host and connecting to the new hardware. I have not deepened this road. Please refer to the instructions of the  syprep utilty.
  • Disable  windows genuine activation service, and re-enable it later.

In the event that you have a smarter solution to this problem, please share it with me.

Have fun



 

   

giovedì 6 agosto 2015

Alita - Gally - Gunnm Motorball wallpaper (16:9)

Alita-Gunnm- is one of the best manga characters ever.
I was not able to find out a decent 16:9 Alita wallpaper, so I forged a very nice 4:3 wallpaper to 16:9.
I hope you'll like this extended version.
Note:
I have modified a wallpaper that was floating around for a while,I have found the original artist with an image search: the Benlo original paint is on devianart.

Download the wallpaper here:




sabato 6 giugno 2015

NFS over OpenVPN over ADSL(or slow connection), best settings



In recent years I have often used NFS shares through OpenVPN, with a 7Mbit ADSL connection, and I have always faced a great slowness in directory listing (takes a lot of seconds to do ls or update the file manager view) and file transfers.
For the sake of completeness, I'm using Linux Mint 17.. it's a Debian like distro.

I have read lot of posts and I have tried the reasonable subset of suggested solutions, I'm going to provide a configuration walkthru; this is the summary of the best tips:
  • use a NFS packet size smaller than littler MTU size (default is 8Kbytes, new values should be littler than 1500bytes, few guys suggest 1024bytes)
  • use NFS TCP connection type; do not use UDP on ADSL/WANs
  • use the NFS async option
  • do not set very small timeouts, left the default 60 secs (timeo=600) or.. I have tried with success 10secs (timeo=100) too
  • with the hard mount option, let's add the intr option

For linux users,  here is a little fstab configuration example for soft mounts:

servername:/shared/     /mnt/foldername/  nfs     rw,suid,dev,soft,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0

and here, for hard mounts:
rw,suid,dev,intr,exec,nouser,async,noauto,timeo=100,user,rsize=1024,wsize=1024,tcp 0 0

I have also used rsize/wsize = 1350.
These findings have been obtained with the typical mambo-jambo, fire&forget, try&see experimental procedure.
  • Yes, I have read the manuals (they suck)
  • yes, I have chosen only the reasonable subset of internet tips
  • yes, I have tried  lots of permutations 
 BUT 
I am far from a statistically significant sample :-).
 
These changes have improved my NFS usability, doubling the download speed for a single file and raising a lot the browsing responsiveness.
NFS over vpn+adsl is still dramatically slow (at the moment I am transferring files at about 150 KB/sec, and this is far better than without the proposed changes).
Please consider that my 7Mbit ADSL has a download bandwidth of 800KB/sec.

I hope that these tips are going to work in your case too..

Have you find out a better solution? Other magical NFS options? Please share, tips are welcome.
Have fun