Linux - "Boot Partition Too Big" (700points!)

Okay here is the deal

I have a gateway laptop with 12GB harddisk. I installed Windows 98 on a C partition with 1GB, I installed Windows 2000 on the D partition with 8.5GB.

What is left over is for Linux. However, when I tried to install redhat 6.1, it won't  allocate the 1.8GB space for the / because I keep getting the error message "Boot Parition Too Big, Can't Allocate".

What the hell does that mean, and how do I fix it?

I even tried to format the system. Who ever could answer this will get a full 700 points!

Answer must be given in full step by step detail format.

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Big disks are pain in the ass. I had a problem installing NT, because
it was after 98 and Linux and NT partition was far than 4GB (2^32)
from the start of the disk. NT loader couldn't do a "jump" to the boot sector
which was that far. Maybe it is somehow connected.
Anyway, have you tried both the fdisk and disk-druid? I personally
prefer fdisk, since it gives you more options...naturaly :)
During setup, when you allocate the partitions, do this.
1st. Create a linux swap partition of roughly the size of your system RAM.
2nd. create a Linux native partition of approximately 16MB at mountpoint /boot
(there is a drop down list above the window with a range of mount points pre-entered, just select from there)
3rd. Create anothe Linux native partition at mount point / , the size of which(to be safe) being 1MB LESS than what is reported to be free at the bottom of the screen.
This will solve your problem.
smilepakAuthor Commented:
Okay, the answer sound good, however I will accept it if you are able to answer this.

I do not want to repartition my drive again.

Currently I have

C: WIn98 (1GB)
D: Win2000 (8B)
E: Fat32 (2GB)

I am planning to remove E and put linux in there.

Anyway to do that without repartition my drives and formating my system

Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

You can use FIPS to adjust the size of partitions...I wholeheartedly do not recommend this unless you are well versed in Disk partition structures...Partition Magic can also perform this feat however I have heard of some partition table corruption occuring. You really should repartition your drive...There is a very good HOWTO for triple boot systems check your RedHat CD...
Want to cheat?   Try this at your own risk!

If you can get redhat installed, skip/bypass/ignore the LILO step, but be sure to create a boot floppy, to be used until you can finish the procedure...

# rename the /boot directory out of the way, it will come in handy later...
mv /boot /bootsave

# Create an empty directory for use as a mount point
mkdir /mnt/win98

# Assuming drive c: is /dev/hda1...
mount /dev/hda1 /mnt/win98

# Create a directory to hold the boot files...
mkdir /mnt/win98/linuxboot

# Copy the files we need...
cd /mnt/win98/linuxboot
cp -r /bootsave/* .

# Make a link so that it sure looks like we have a /boot directory with the files we need.
ln -s /mnt/win98/linuxboot /boot

# We should have a /etc/lilo.conf file that looks something like this (modify as needed, especially the versions):





# The moment of truth...
lilo -C /etc/lilo.conf

# Pray, then reboot.

Note:  In lilo.conf, I'm assuming that /dev/hda3 is your Linux partition, so to make this example work, be sure your swap file is /dev/hda4, otherwise modify lilo.conf to make it work.

I did this. It worked for me.  I admit it's a cheesy solution.  If someone has a better idea, I'm interested.  
One of the big problems is that linux(when using LILO) needs a boot partition on cylinder <=1024 This is a limitation of the boot loader...You can create a boot disk and install it else where but the RedHat Gui Install won't work for doing that you have to run the installer in custom mode...That is why I suggested the HowTO for a triple boot system...It walks you through Step by step on how to create a triple boot system...It even gives pointers on partitioning...
I don't understand your problem. During setup (Redhat6.1), while you are busy with the partitioning, you must delete the 2GB partition (E: under dos) it should be listed as the highest partition number.
You will have entries like hda1, hda2, hda3 etc.
The 2GB drive E: partition should be the last hdax, but just check this by looking at the size.
You just delete that partition, and then add the partitions as I described in my previous answer.
You MUST delete the FAT32 partition, Linux will not run on it, it needs to make it's own file system, ext2.
However, you can do all this while you are busy with setup, no need to use fdisk or fips etc. The only reason you would like to use fips, is if you have one disk with windows already installed on the partition and you don't want to lose windows.
But as I understand your question, you WANT to use your E: partition for Linux, therefore, you just delete it and recreate it with the ext2 filesystem. This step will not remove the data from the rest of your drive or other partitions already created...
PS, once you have done this, your next question will probably be "How do I boot up to the other two os'"
I don't know if you will have enough points to post that question, so let me know if I can provide that answer to here as well, I mean 700 points is alot, and I am willing to accept it for both answers:)
smilepakAuthor Commented:
I did delete the e:

When i tried to create / parition for linux it say "Boot Partition Too Big"


I'll give it a few more days. If no one could answer it. I'll give it to psimation since he seem to answer the most :)

If you try what I suggested, you will not have to worry about "Boot Partition Too Big" message, and you will be able to boot Linux, Win98, or Win2K.  

My / partition is 3G, and it's the master IDE drive on the SECOND bus!  It might be too big, but Linux isn't really booting from there, even though it's the / filesystem!

If you can somehow skip past the error, the size of the boot partition will eventually become irrelevant.  If you use my suggestion, the actual boot files would be located on /dev/hda1, not your / filesystem (even though Linux will place them there during the install).  

My suggestion was to get those files moved to a place where they were unlikely to be affected by the large disk problem.   To me, the first partition (even though it's Win98 format) is the way to go.    You can make all of this work.  

The only part where I agree with psimation is that your linux partition should be ext2 format, and you will also need a swap partition.  Space for both of these comes from deleting the E: (/dev/hda3) partition, which leaves C: (/dev/hda1) and D: (/dev/hda2) intact.  Since you intended to re-cycle the E: partition for use with Linux, I figured you knew it would have to be deleted, so Linux could allocate the space for both an ext2 and a swap partition.

I was hoping someone would show a better solution, but I have yet to see one.  The #1 drawback with my suggestion is that you would have to boot once from floppy and run
lilo -C /etc/lilo.conf  again if you ever relocated the boot files (as might happen if you do a Win98 defrag on C:  ).  

I believe that part of the trick is that "/" does not have to be a bootable partition at all, so long as the boot FILES have been recognized by the lilo utility and they live on a partition that IS bootable.

Even if you do everything psimation says, your boot files are going to start 9G into the drive, which may become a problem in itself.

If you <must> create multiple ext2 partitions to work around the error message, I would create four of them:

500mb  on /
1000mb on /usr
300mb  on /var/log
200mb  on swap

This also solves the problem, but instead of creating a trivial partition on /, you just allocate the space a little differently.  Most people need more space on /usr than anywhere else.  

Your partition table would be something like this:

1000mb C: /dev/hda1 fat32?
8000mb D: /dev/hda2 fat32?
 500mb    /dev/hda3 ext2
1500mb    /dev/hda4 extended
1000mb    /dev/hda4 ext2
 300mb    /dev/hda5 ext2
 200mb    swap
Oops - Correction...

Your partition table would be something like this:

1000mb C: /dev/hda1 fat32?
8000mb D: /dev/hda2 fat32?
 500mb    /dev/hda3 ext2
1500mb    /dev/hda4 extended
1000mb    /dev/hda5 ext2
 300mb    /dev/hda6 ext2
 200mb    /dev/hda7 swap

Note the extended partition really acts as a container for the 3 "real" partitions that make all of this possible.
OK, I'm going to say it one last time.
The reason why it says your boot partition is too large is because you are allocating everything to "/"
Please just do like I said in my original answer,
create a "/boot" partition of 16MB of type linux Native FIRST
SECOND create a partition, without mount point of type Linux Swap of size approximately the same as your RAM.
LASTLY, Allocate the rest of the free space to a partition with mount point "/" of type Linux native of size 1MB LESS than what is reported to be availabe.
If this does not work, ( which I have never seen), then you MUST have a hardware failure of some kind.
What i am telling you here is exactly how I did on my system as well, I too got the same error, so I'm not just sucking this from my thumb.

Even if smilepak does everything you say, the error message will stay the same, UNLESS the "boot" flag for the "/" partition is set to FALSE!  This may or may not happen all by itself, but I would not be suprised if "/" defaults to "true".  Either that  or smilepak could be tempted to make it bootable just because it might look like the right thing to do.

I could be wrong on this, but if smilepak chooses to make a /boot partition, isn't is also necessary to set to "boot" flag on that partition to TRUE?

Another missing piece of the puzzle is the need for an extended partition for anything beyond 4.  See my previous response for details.  If you already have Win98, Win2K, /, /boot, and swap then you need 5 partitions on that disk, so you create an extended partition and place some of the partitions inside that space.

At least we all agree that booting from the / partition is not necessary, and can be avoided in a variety of ways. It all boils down to a choice of making your own /boot partition <or> using a pre-existing partition.
The Hardware-HOWTO, revised 20 March 1999 states "The boot partition must lie in the first 1024 cylinders due to PC BIOS limitations."  The comment from mmips says essentially the same thing.  

How is that going to happen if we leave C: and D: as they are, and create /boot which starts 9G into the disk?

Unless the 1024 cylinder restriction  is history, you will have to either:

(1) Repartition the whole drive, because you need some of that precious real estate that is now drive C:

(2) Follow my original suggestion, which is to use a directory on drive C: to hold your boot files and to convince Linux to use them.  

I had the same problem with a 14GB Hard disk. During installation process my Linux Mandrake 6.0 complained about big partitions.

I bypassed the problem this way:

1) HD partitioned with 'fdisk' instead of using Mandrake semi-graphical tool.

2) created a boot diskette (Mandrake lets you do so during installation process)

3) LILO not installed

To boot my Linux box I simply put the boot diskette in the drive. It takes 50 sec. for diskette read but all works fine.

If the boot diskette is missing at computer start a normal (win?) would occur.

enjoy your Linux box
1. I would agree that fdisk might make the partitioning process a little easier.  BTW, you will almost certainly need to do a "Custom" install, no matter whose concept you implement.

2. You need a boot disk anyway.

If all else fails this would work.  In fact, if all else fails, this floppy configuration is precisely what you will have.   It's not really an answer.
smilepakAuthor Commented:
Well, I was able to do this. I used Parition Magic to create the parition, but after the install i still get the error message and wasn't able to boot w/o the floppy.

Oh well. I guess all the information composed here will be good for future use by anyone who might need it :)

I did mentioned earlier I will give it to psimation because he answered a lot in here and there hasn't been a great answer yet. So if psimation doesn't submit an answer to get the points by monday. I will give it to who ever.


You have Partition Magic you say? Why don't you try moving your C: and D: drive 16Mb upwards? In this way you make space for psimation's /boot partition at the beginning of the drive, well below the 1024th cilinder. That should circumvent the boot problem in a safe-from-Windows way.

BTW, the problem with windows defrag in dcavanaugh's solution can solved by making the files in c:\bootlinux hidden or archive. One of these attributes makes defrag leave the files alone, if I remember correctly.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Linux Networking

From novice to tech pro — start learning today.