Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Originally posted by aus9 if you are still tracking this..
the results of your grub hd tab only appear to have 3 drives and you have 4.
Yup, I suppose thats because disks sda and sdb are raided by BIOS ICH5R, think is right that GRUB sees it as 1 disk.
2) the ntldr way, which I can't test because I don't have XP says you may have an issue when you had no separate /boot partition.
by letting /boot be a subfolder of / you may have introduced the cylinder 1024 issue as per this
When I select Linux from the boot menu, I get a frozen "GRUB" (or an "L" in the case of LILO)
True, will try to mount a sep. /boot partition under 1024 cyl.
Make sure you created the linux.bin file correctly with the dd command. If you think you ran the command correctly, the problem may be that your /boot partition is beyond cylinder 1024 and your BIOS can't reach it. At system startup, the Windows boot loader lists the choices from boot.ini. When you select Linux, the boot loader then loads the 512-byte linux.bin file, and then BIOS tries to access the /boot partition to run GRUB. Some BIOS implementations can only address the first 1024 cylinders of a hard drive, which corresponds to ~8.5 GB. How do you fix this? Create your /boot partition before cylinder 1024; i.e. before ~8.5 GB.
Will do
3) I don't have SUSE either so can not accept any thanks as we did not solve it...yet.
Can you try looking at your bios and enabling LBA mode? to see if that resoves your ntldr issue?
IDE drive has 2 option : LBA auto or disabled, it is set to auto and show LBA supported
4) the LILO way with ntldr is likely to have the same issue?
Yep, in 1st post LILO was used, had the 99 99...
5) but you could always struggle along with a true grub boot floppies sloooow I know.
box is rack-mounted, not so convenient, hehe
6) finally, if you do re-install please make a /boot partition below cylinder 1024 in case you want to try the ntldr way again
Hoping to get a fix from SuSE
Thanks for outputs and your patience and sorry grub is not the answer.
Thanks for your help also and your patience with my complex drive config
7) can you post the message from suse support in case someone can give you a work around? You may need a separate post to get a result.
Floppy Disk
To install the driver update from floppy disk, proceed as follows:
Download the file parted.img.gz and save it to a directory of your choice, for example, in /tmp.
Insert a floppy disk and use the following command to write the image to the medium:
gunzip -c parted.img.gz >/dev/fd0
Caution: The previous content of the floppy disk will be lost.
ok
Insert the installation CD/DVD (important: if you use an AMD-64 system, insert the 32-bit side of the DVD). Boot the first installation CD or DVD up to the point where you can choose one of the different installation variants.
using the boot.iso CD image
Press F6. A message asking you to keep the driver update ready will be displayed.
ok
Use the arrow key to select the menu item "Installation".
ok
Enter the boot parameter "fixpart=1" and press ENTER.
ok
When the message "Please choose the Driver Update medium" is displayed, insert the driver update disk you created and press "OK".
ok
In the following menu, select "floppy" and confirm with "OK".
ok, but no new driver is found because previous step already loaded it...
After completing the driver update, press "Back".
ok, then I get a prompt : Please insert CD1
As I dont have CD1, I get an error : CD1 not found continuing with manual installation
The following dialog for repairing the partition table displays your hard disk (usually /dev/hda) and the status of the partition table (broken). Select the hard disk and click "OK" to repair the partition table.
not ok, I never get this dialog
After repairing the partition table, exit the menu with "Back". Press the key combination CTRL-ALT-DEL to reboot the computer and remove all media from the drives.
Now you should be able to boot both Windows and Linux.
Originally posted by sylv1 Unfortunately yes, I did this several times but :
Floppy Disk
To install the driver update from floppy disk, proceed as follows:
Download the file parted.img.gz and save it to a directory of your choice, for example, in /tmp.
Insert a floppy disk and use the following command to write the image to the medium:
gunzip -c parted.img.gz >/dev/fd0
Caution: The previous content of the floppy disk will be lost.
ok
Insert the installation CD/DVD (important: if you use an AMD-64 system, insert the 32-bit side of the DVD). Boot the first installation CD or DVD up to the point where you can choose one of the different installation variants.
using the boot.iso CD image
Press F6. A message asking you to keep the driver update ready will be displayed.
ok
Use the arrow key to select the menu item "Installation".
ok
Enter the boot parameter "fixpart=1" and press ENTER.
ok
When the message "Please choose the Driver Update medium" is displayed, insert the driver update disk you created and press "OK".
ok
In the following menu, select "floppy" and confirm with "OK".
ok, but no new driver is found because previous step already loaded it...
After completing the driver update, press "Back".
ok, then I get a prompt : Please insert CD1
As I dont have CD1, I get an error : CD1 not found continuing with manual installation
The following dialog for repairing the partition table displays your hard disk (usually /dev/hda) and the status of the partition table (broken). Select the hard disk and click "OK" to repair the partition table.
not ok, I never get this dialog
After repairing the partition table, exit the menu with "Back". Press the key combination CTRL-ALT-DEL to reboot the computer and remove all media from the drives.
Now you should be able to boot both Windows and Linux.
there may be another way by using blocklist commands. you may need to do some reading but let me share the little I know.
1) after checking your bios order get your grub device map to match....a gimme
2) mount your XP manually and if successful put it in your /etc/fstab if you like
open terminal su to root password
mkdir /mnt/xp
mount -t ntfs /dev/ sda1 /mnt/xp
3) I assume XP is formatted in 512 blocks thats 512 byte sizes.
one file of exactly 512 bytes fills one block and no residual so its 1 block
one file of exactly 513 bytes fills one full block and residual into another block so its 1 + 1
then find each file on your xp that is SUPPOSED to boot your system.....more reading for you heh heh
then convert them to blocks.
4) now the theory is, if XP jumps from MBR to file one then to file two hopefully the blocklists will be
0 is start and 0 +1, means start at zero and go one block = all of mbr
1 + 20 means start at beginning of 1 and read the next 20 blocks.
I hope I have it anyhow.
5) then instead of your grub line for XP being chainloader +1 it becomes
chainloader 0 +1, 1 + 20, 21 + 200
well you get my drift.....we are jumping to mbr for sda, reading all of it then jumping to the next block after mbr, (in windows speak called the hidden sector) then reading all of that and then jumping to another area and reading all of that.
6) this is really messy. How do we know we have sequential blocks? You may have to use dd command to read the output
mbr is easy.....dd if=/dev/sda bs=512 count=1
the next block if it is truly to be used
dd if=/dev/sda bs=512 seek=1 count=X means we are counting in blocks of 512 bytes jumping (seek) 1 block then outputting X blocks.
When you read man dd it mentions the of= option but we don't need it as we print to screen.
How will you know that the output is what you need I have NO idea. heh heh.
A block list is used for specifying a file that doesn't appear in the filesystem, like a chainloader. The syntax is [offset]+length[,[offset]+length].... Here is an example:
0+100,200+1,300+300
This represents that GRUB should read blocks 0 through 99, block 200, and blocks 300 through 599. If you omit an offset, then GRUB assumes the offset is zero.
########end of quote
comment if you have a sequential list to read
0 + 100 is better that 0 + 1, 1 +99 for mbr and hidden sector plus
Good news finally managed to get the parted fix dialog :
The following dialog for repairing the partition table displays your hard disk (usually /dev/hda) and the status of the partition table (broken). Select the hard disk and click "OK" to repair the partition table.
Bad news, the status of the windows disk partition table (sda & sdb) are both OK....
Good News
I have tested the below solution on my linux and it now rests upon your broad shoulders to prove it works for you, heh heh
linux slackware 10 amended /boot/grub/menu.lst
title mbr
rootnoverify (hd0)
chainloader 0+1
Upon reboot it took me back to my splash yippee. Now the explains.
tried rootnoverify (hd0,0) and it gave me error 13...not happy
the syntax of the chainloader is chainloader SPACE zero plus one WITHOUT GAPS so its not 0 + 1 ok?
upon reboot I also tried some stuff in a terminal. When I got the commands correct the grub prompt appeared without error messages. Thats how I found out about the no spaces. However my correct version did not work in a booted terminal which I assume is because I am booted.
2) That simplifies all that horrible blocklist stuff to this
title xp
hide (hd0,0) # your /boot partition for linux
rootnoverify (hd1) # the whole drive to get mbr
makeactive
chainloader 0+1
3) post results please. I am still concerned about your fourth drive being a linux drive so if it fails first time use the E for edit functions at the menu line to amend hd1 to hd2 or hd3 please
Actually I just had another thought about your partition table error for suse 9.1
when I open a terminal and type su and root passwd then grub the command
geometry (hd0)
gives output C/H/S of 1027/255/63
Then as I already knew that was correct for me I did this
geometry (hd0) 1027 255 63
there is one space gaps between each string. And the output was the same as you would expect. ie no error messages
Translating to your situation you will need a rescue cd that can accurately report your chs if you don't already know it.
eg fdisk /dev/hda assuming your suse is first drive IDE change to /dev/sda for scsi
then you do the grub geometry command with the correct values and only then do you do
root (hd0,0) # your suse drive /boot parttion
setup (hd0) to embed the grub with a possible changed blocklist or address of where the stage2 and stage1.5 files are
And then you redo the ntloader boot.ini stuff
of course with all the other stuff I have forgotten your bios order, and types so change the guilty if not right.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.