Ok, we need to start by getting the 2nd boot option fixed...
...following file is missing or corrupt: <Windows root>\system32\hal.dll
We need to get you into the MICROSOFT recovery console (not lenovo recovery)...
Do you have another windows machine with a cd burner? If so, get this:
http://vlaurie.com/computers2/downloads ... ole_cd.zip
extract it to a folder on the desktop
download this file from microsoft:
http://www.microsoft.com/download/en/de ... en&id=1000
it will be "WindowsXP-KB310994-SP2-Pro-BootDisk-ENU" (with .exe if you see file extensions)
move this to the folder you extracted recovery_console.zip to and rename it "BootDisk"
then in that same folder run RecoveryCD(.bat)
This will guide you through creating a Windows XP recovery console bootable CD, I would just post a link to a premade ISO, but there is a license agreement to be clicked on from MS (PM me if you just can't get the CD made).
Now, with this new bootable CD in the drive, you can boot into the MS recovery console and run that command from earlier.... "bootcfg /rebuild"
this part will fix the boot.ini (which the Windows XP part looks correct already)... Not sure where the "Fix XP" came from.
When booting from Linux, it doesn't appear that you have mounted the hard disk, had you accessed it from the "Places" menu yet? I believe if this is how you were accessing them they were auto mounted as read only.
As far as the boot.ini on the 2nd partition (/dev/sda2 above), the partition is hidden to windows(this is normal), it is made active when you press the IBM/Lenovo button during boot to access the IBM/Lenovo recovery.
your boot.ini for partition 1 with windows installed to c:\windows should be:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
either by mounting read/write in Linux, or booting to the MS recovery CD you made and running "bootcfg /rebuild" will fix the boot.ini.... if it doesn't boot after that, then you need to copy hal.dll to c:\windows\system32.
The only other fix is to find an actual windows XP cd, boot from it and do a repair install.