Click to See Complete Forum and Search --> : Grub loader, Ubuntu & M$ Windiz XP
miketaylor
07-06-2006, 06:25 PM
OK, i have an old PC, with a bios that only likes hard drives <32gb. Thankfully, Ubuntu is friendly, and sees these drives for what they really are. So i have 5gb NTFS at the beggining of my HD, then a 6GB root file system, then 27gb ext2 /home and finally a 2gb swap. My plan was to share the ext2 filesystem between the operating systems.
I installed windows XP (ye, i know, but i have a weird printer...)
I partitioned etc and installed ubuntu
grub boots fine, ubuntu boots fine, but windows doesn't. I get an error, then a 0x00000007B error, after i see the windows logo, and then the blue screen lol typical. I know this is to do with the boot bit, but i am rather a noob with grub. Any help would be appreciated.
By the way, windows worked fine before i installed grub. I tryed repartitioning the disks, and installing most of the base system, then rebooting, and windows was ok. I assume that when i reinstall windows, i will loose my Grub? Also, the windows installer only sees a 32gb hard drive...
MiKe
saikee
07-07-2006, 06:55 AM
If I add the NTFS (5Gb), root (6Gb), home (27Gb) and swap (2Gb) together then your hard disk should be about 40Gb large.
If Ubuntu manages this then your Bios must like >32Gb disks. Linux gets everything hardware information from the Bios too.
You claimed the Windows installer only see a 32 Gb hard drive and suggested the PC is old. That prompts me to think a basic conflict commonly seen in older hard disks between Windows and Linux ----> that they see the same hard disk but with different settings for the geometry. This is to say the numbers of cylinder/head/sector are reported differently in WIndows and Linux. If this is the case then the partition table established in Linux was not read properly by Windows and you will have a permanent booting problem.
I don't know how to cure this one. To investigate you can press "c" in Ubuntu's Grub to drop yourself into a Grub prompt or while in Unbuntu root terminal issue a command "grub" to get a Grub shell. Thereafter issue the Grub command
geometry (hd0)
should get Grub reporting to you officially the number of cylinder/head/sector and the size of the hard disk as seen by Grub.
I am not sure how the equivalent information can be obtained in XP but the disk managemnt program does report the exact hard disk size. I usually get Partitioin Magic to report the hard disk geometry in XP.
Old hard disks, less than 80Gb, seem to have this issue for some distros and Fedora at one time had a big issue with it. Not too sure why but it is possible one operating system assumes LBA mode while the other does not. The setting in the Bios may also be the culprit too.
If XP and Ubuntu see the same hard disk with different geometries then a deeper investigation may be needed. It is possible to force Linux, using "fdisk" program, to impose your own cylinder/head/sector setting to align with that read by XP but I leave someone with more experience on the subject to enlighten you.
miketaylor
07-07-2006, 01:21 PM
i am 100% sure that my computers bios will not detect disks over 32gb. And my disk is 40gb, with a 32gb clip, but the ubuntu installer has always seen it as 40gb. I have just tried using two other hard drives, both 40gb too, and i have the same problem.
This may help: When i did the install originally, i out the ext3 root file system at the end of the disk, and when i loaded up grub it have me an error 18 i think, that the root hard drive isn't in the bootable section of the HD. But, still, windows is in the first 5gb, so it shouldn't complain about anything!!! I assume its a windows/grub conflict?
I am finding it hard to get good help, so i phoned M$, and they couldn't be of less help.
Also, i cannot boot windows, in safe mode, and when i try a command prompt it cannot list c:\
miketaylor
07-07-2006, 01:46 PM
When using the grub prompt, and do geometry (hd0) i again get an error 18 in hd2.
This is what it says (a summary):
C/H/S=1024/255/63 66055248 sectors
partition 0 unknown type 0x7
partition 1 ext2fs 0x83
partition 2 error 18
partition 3 ext2fs 0x83
saikee
07-07-2006, 07:54 PM
Grub report 66,055,248 sectors and a sector is 512 bytes. This confirms Grub could read only 33Gb from your disk.
Grub error 18 = Select cylinder exceeds maximum supported by Bios.
To me the 255 Heads and 63 sectors are normal for all large hard disks as mine are all the same.
Is it possible that during installation you have imposed total partition space beyond the ability of the Bios? Linux installer may follow your instruction but ending a nonbootable system.
Can you try to boot xp manually with the following commands in Grub prompt?
root (hd0,0)
chainloader +1
boot
Grub will respond to each line. After the root statement it should come back to report the partition is 0x7 has been detected, and it is NTFS type. If no response from the 2nd line that means Grub finds XP's boot loader OK. The last line is to fire it up.
miketaylor
07-08-2006, 09:07 AM
Is it possible that during installation you have imposed total partition space beyond the ability of the Bios? Linux installer may follow your instruction but ending a nonbootable system.
Yes, that is exactly what i have done.
Now i am installing winXP on another slave HD, and we'll see what happens...
miketaylor
07-08-2006, 06:41 PM
FIXED, xp on another HD, and now all seems well. Untill, that is, W XP breaks again...
Cheers!
saikee
07-08-2006, 07:35 PM
If you put XP and Linux on two different disks there is no risk of them seeing different disk geometry and the systems will be mutually exclusive. Each has its own partition table to work with.
You still need to ensure the hard disk limit is adhered to in Linux. Generally it is better to create partition manually using cfdisk. That way you could not exceed the limit of the hard disk as you will be working with whatever number of Gb as reported by cfdisk.
You will have no disk geometry problem too if the Linux can read the data in the XP disk.