unable to boot windows; partition label wrong


After installing suse on my laptop, creating a dual boot with XP Pro, when trying to boot windows it says that hal.dll is missing.
I tried to fix this issue with the recovery console to rebuild the boot.ini, however its asking for an administrator password and even when entering the correct password it wont take it.

Anyway, I think the problem is this:
There were two partitions in the original XP installation
Volume label RG1 -> C:
Volume label RG2 -> D:

After installing suse it is as follows:
Volume label RG1 -> D: (dev/sda5)
Volume label RG2 -> C: (dev/sda2)

I believe this to be the reason as to the windows boot problem.

So far, I used the partitioner to change RG1 back to C: and RG2 back to D:, however this didnt work as when running the windows installation it still states RG1 as D:

Now what? lol

i suppose i’m asking how to get sda2 to be sda5 (c drive) and have windows boot off it.

Did you originally have windows on the first partition and then somehow move it up the drive and put openSUSE in front of it? Please explain how windows got to be on the higher partition.

Need to add something. Tinkered around some more, seems that there is a sda1 which the partitioner calls an Extension partition, 82 gigs in size.
Then there is sda5 which right now seems to be the windows bootable partition, 82 gigs in size.
Now, hold on. I only have 1 hard drive, and its 120 gigs total.
Is it possible the installer had a hickup and made a 5th partition where it moved the entire sda1 into, and then somehow linked, mirrored, something from sda1 to sda5 and in turn switching up the C and D drive lettering and making windows unbootable?
And if so, how would this be fixed?

One idea I had were somehow merging sda1 and 5 to make it only sda1 and remove sda5 alltogether.
Linux should be fine as it is installed on its own 10 gig partition, with a 1.5 gig swap. Neither the swap or linux install partition should be harmed. Maybe the boot loader will get screwed up a bit when trying to boot windows but that should be able to be easily fixed.

Anyway… open for suggestions.

We need a look at your partition. So: Boot into openSUSE and open a console window and post here the dialogue you get in the console window when you enter this command:

sudo /sbin/fdisk -l

here it is

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x28275945

Device Boot Start End Blocks Id System
/dev/sda1 2 11315 90879705 f W95 Ext’d (LBA)
/dev/sda2 11316 12621 10490445 7 HPFS/NTFS
/dev/sda3 12622 12812 1534207+ 82 Linux swap / Solaris
/dev/sda4 * 12813 14593 14305882+ 83 Linux
/dev/sda5 2 11315 90879673+ 7 HPFS/NTFS

In all honesty, if the easiest fix is to whipe the sda1 and sda5 partition and just reinstalling windows to sda1, then that’s what i’ll do.
I’m quite happy so far with suse, and almost have it set up the way i want, so I dont want anything to happen to that lol.

But if there’s a fix for the issue, i’ll try that first.

Stranger than fiction! What have you done, I wonder. Anyway, it’s some variation on this what you said:

Is it possible the installer had a hickup and made a 5th partition where it moved the entire sda1 into, and then somehow linked, mirrored, something from sda1 to sda5 and in turn switching up the C and D drive lettering and making windows unbootable?
Sort of, yes. But never seen that before.

So before we proceed: how important are the first and second NTFS partitions and what’s on them?

To the best of my knowledge this is the only fix as Windows XP will never boot with this partitioning.

The first partition has to be primary and needs to be formatted with a windows filesystem (FAT or better NTFS) because Windows will put somne of its files needed for booting (also the missing hal.dll) onto that partition, even if it is installed on another (primary) partition.

By formatting sda1 and turning it into an extended partition, you effectively made this impossible.

The only thing you can try (but I don’t think this will help) is at least to mark sda2 bootable (YaST partitioner or fdisk) as Windows otherwise also will start whining.

swerdna: it is strange haha.
Nothing important on the first and second partition. The old C: drive was windows and whatever else I had on it, and the D: was a 10 gig partition with a ghost image of a clean windows installation, which I also have a backup of on an external drive (exactly for one of these situations haha).

Akoellh and Swerdna:
Ok, so, say I delete the sda1 and 5 partition, how do I make sure that once I do that that the linux sda3 and 4 wont jump to sda1 and the problem starts over lol. Well I suppose that cant really happen, maybe.

I think what I’ll do is just delete the partition 1 and 5, format it into NTFS, and then use the ghost image backup to restore windows.
Anyone have any comments as to why this might now work?

Also, what changes would I have to make to the Boot loader to recognize the now new windows sda1 partition and let me boot into it? Re-configuring the boot loader should fix that in no time, no?

Your whole partitioning is …erm … sorry … crap.

Even if you go back to sda1=primary it’s still not really good.

You will have the maximum of 4 primary partitions then and that’s it.

The entire Linux system (excluding swap) will be on one partition, no seperate /home (which is highly recommended) possible.

A far more useful partitioning would be to put Windows on the first, primary partition, and if you want also keep the second NTFS (sda2).

Then create an extended partition (you will have to delete at least linux/sda4 for that) and put logical partitions for / and at least /home in there.

If you want you could leave swap as a primary or also delete it together with sda4 and put it onto the extended partition.

It seems that you have two equal priorities, please confirm, or correct me:

  1. windows xp and openSUSE on the computer, multibooting
  2. doesn’t matter if you need to reinstall windows but you don’t want to lose the existing openSUSE installation


  1. Yes
  2. Yes (If possible)

I’m proceeding assuming there’s no separate home partition.

This could all simply fail.

The idea is that you use a Live CD like Knoppix or Gparted or openSUSE 11.1 (Gnome) Live or SystemRescueCd, something with Gparted partitioner on board. Plus a spare hard drive to act as a temporary storage unit.

Save your /home data to somewhere in case aof a tragedy.
You boot into openSUSE installation and get it ready to be imaged into storage.
Then in the Live CD you open Gparted partitioner and copy both of sda1 and sda2 (windows) and sda4 (Linux) to the spare hard drive for storage.
Then you set up partitions on sda to take these two stored operating system
Then transfer them
Then repair windows bootloader
Then repair openSUSE including the bootloader.

Something like that – are you game? If Yes, what live CD do you have and what secondary hard drive? (anything on it will go).

PS paste the contents of /etc/fstab too

I’m starting to think that maybe it would be easier to save the files i want to keep on an external hard drive, and just start over, deleting all partitions and setting it up new from scratch.

/dev/disk/by-id/ata-TOSHIBA_MK1234GSX_969J4517S-part3 swap swap defaults 0 0
/dev/disk/by-id/ata-TOSHIBA_MK1234GSX_969J4517S-part4 / ext3 acl,user_xattr 1 1
/dev/disk/by-id/ata-TOSHIBA_MK1234GSX_969J4517S-part2 /windows/D ntfs-3g users,gid=users,fmask=133,dmask=022,locale=en_US.UTF-8 0 0
/dev/disk/by-id/ata-TOSHIBA_MK1234GSX_969J4517S-part5 /windows/C ntfs-3g users,gid=users,fmask=133,dmask=022,locale=en_US.UTF-8 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0

if there was just a way to switch sda5 with sda2… lol

OK. No brain surgery then. Usually surgery works but it’s intricate.

So next time: clean the drive, install windows first and then during the install of openSUSE, make sure it creates good partitions, make sure it leaves sda1 (the new windows) alone

I think what I’ll do is just delete the partition 1 and 5, format it into NTFS, and then use the ghost image backup to restore windows

The best thing if sda5 is a ghost of something that once was up front on some drive is to store it somewhere, wipe the drive then put it up front on the sda drive and restore its windows bootloader then install openSUSE

Don’t need this any more unless you do brain surgery.