windows XP requires its boot manager be on a primary partition
That is a common thinking but wrong, I’m booting XP with all files on a logical partition with no problems. Have done so with sp1 and up. Having said that, I would not recommend it due to XP will not run a clean or repair install with out a primary partition. Also not sure if the Recovery Console will have problems or not.
Would suggest using ‘testdisk’ to change XP back to a primary partition.
If you wish to keep XP on a logical partition, you will need to edit XP’s boot.ini file along with your menulst addition.
multi(0)disk(0)rdisk(0)partition(4)\WINDOWS=“XP” /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS=“XP” /noexecute=optin /fastdetect
not 100% sure which one is correct, but likely partition(4).
sda5 is the ntfs partition (windows) and it runs from cylinder 2 to 7833. But that’s also curiously wrapped in the extended partition (sda1). So sda1 is the first primary partition, an extended partition that is now wrapping what used to be the first primary partition. Kind of OK but really weird.
The other three Linux partitions occur at higher cylinder counts as the other three primary partitions, sda2, sda3, sda4.
I think that might be confusing Grub. Alternatively I think windows can’t boot from a boot.ini in a logical partition in an extended partition.
I’d be deleting the openSUSE installation and partitions and changing windows partition back to a primary partition as suggested by LostFarmer. Then I’d very carefully install openSUSE again after making sure there was completely empty space after the windows partition for the installer to use, and I’d check the partitioning proposed by the installer before allowing it to proceed.
@LostFarmer: very interesting this booting win xp from a logical partition. Can you post your fdisk here and also the boot.ini file from the win partition. I’d like to reproduce the situation you have (or similar) on a spare drive just for interest.
Disk /dev/hdc: 41.1 GB, 41110142976 bytes
255 heads, 63 sectors/track, 4998 cylinders, total 80293248 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xedf7edf7
Device Boot Start End Blocks Id System
/dev/hdc1 63 10249469 5124703+ 12 Compaq diagnostics
/dev/hdc2 10249470 37801007 13775769 f W95 Ext'd (LBA)
/dev/hdc3 * 37801008 40965749 1582371 83 Linux
/dev/hdc4 40965750 80276804 19655527+ c W95 FAT32 (LBA)
/dev/hdc5 10249533 37800944 13775706 c W95 FAT32 (LBA)
hdc1 is a restore partition from a different comp
hdc3 is a linux boot with both grub legacy and grub 2 files only
hdc4 is only a storage partition
hdc5 is XP on a fat32 partition but NTFS will normally be easier.
The MBR is from ‘testdisk’ , not grub. I have grub-legacy installed at hdc3 and grub-2 at hdc2.
I do have a second hdd with several XP’s ,98’s and 2 linux’s.
To test you will have to copy/clone from a working XP and if the hdd was used with XP the hdd ID # in the MBR will have to be zeroed out. (use dd to zero all mbr except partition table)
I have partition(1)–(3) to find out just which one worked and have not removed them.
1linux.bin Documents and Settings mbr.bin pagefile.sys
aminf342.exe found.000 mbr…dsk Program Files
ati hiberfil.sys msdos.sys Recycled
autoexec.bat ibmtools ntdetect.com sp3
boot.ini io.sys ntldr System Volume Information
config.sys linux.bin p4p800.rom windows
OK so correct me if I’m wrong: The MBR has code to pass you to hdc3 which activates Grub — and grub’s menu.lst contains a chainloader hand-off to hdc5 where boot.ini resides – and you use the fourth entry in boot.ini [multi(0)disk(0)rdisk(0)partition(4)] to boot windows, is that right?
I believed what you said earlier. Just needed to discover whether I could do it too or if your experience came about through unusual circumstances that I couldn’t reproduce. The expression “and it worked” was more a statement of glee that it’s quite straightforward.
I’ve thought it likely a bug for quite a while but wasn’t very interested. Now that it has caught my interest, I will try to reproduce it on a test machine and see if there are specific actions that make it happen.
In principle, once you have got to boot.ini, there is no reason why not boot XP from a logical partition. When I was doing dual boot with NT years ago *, I had DOS on C: with boot.ini - but NT was on logical partition D:. The only reason boot.ini was on C: AFAICS is that this is where the DOS-Windows MBR expected it to be. For fun I copied the MBR using dd to my linux partition and I used to use Lilo [predecessor to GRU] to boot NT from that MBR. So is GRUB doing something reasonably clever with the DOS-Windows MBR? If you knew what you were doing it would be a small hack.
The other thing I could do was point NT’s boot.ini to a file which was a dd copy of the disk MBR and start Lilo from that and just boot lilo and the NT boot.ini bootmanager from each other in turn as many times as I wanted. So it could be that Microsoft have cahnged their booting to provide 2 MBR’s - firstly, 1 to boot the boot.ini manager and secondly a fuller MBR to boot post NT windows. If the boot.ini manager was not required than only the latter boot sector would be installed.
I tried to get it to reproduce the bug but can’t.
Not to surprised as it seems troublesome but not to often.
I decided to do some more testing, using a GHOST image replaced XP on hdc5 and could not get it to complete boot. Booted only to the light blue with dark blue top bottom screen. Upon more testing found out that hda4 FAT32 was the problem. Changed the file type 0C to 1C (hidden) and that fixed the problem. It seems if there are any primary partition of FATxx or NTFS then they must be hidden or XP will try to finish the boot up on any lower order partitions and fail. After a couple boot ups changing hda4 back to 0C did not cause any problem.
Likely will not know if the OP fixed their problem.