Bug 4921

Summary: Installer blows away preexisting NTFS partition
Product: [Retired] Red Hat Linux Reporter: Edward Schlunder <zilym>
Component: installerAssignee: Jay Turner <jturner>
Status: CLOSED RAWHIDE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 6.0CC: srevivo
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-02-08 13:02:54 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Edward Schlunder 1999-09-05 04:43:11 UTC
I installed linux today, and to my dismay, my NT 4.0
partition mysteriously vanished!

Here is a list of what my partition table looked like
according to the Linux fdisk (during the installation, and
before I had changed anything or added a linux swap/native

Device Boot   start    end   blocks   ID  System
hda1          1        261   2096451  6   Dos 16 bit
hda2          262      784   4200997+ 5   Extended
hda5          262      389   1028128+ 6   Dos 16 bit
hda6          390      784   3172806  7   NTFS

During the installation, I deleted the hda5 (1gig) Fat 16
partition.  I used that space to create two new
partitions.  First I made a 23 meg (2 numbers on
that "start" "end" thing) linux swap space first.  Then,
with the remaining extra space I created a linux native

When I went to reboot the computer, everything was fine as
far as linux was concerned, but when I tried to boot into
windows NT, it claimed it couldn't find the krnl32.exe file
or whatever...

Naturally, that would be expected since I had deleted one
partition that came before the NT partition, and then
replaced it with two new partitions.  That of course screws
up the boot.ini file.  I did not edit it at that time.

Of course, my first though was, "Oh Crud!  Damn linux!"  Of
course, I quickly realized my error, and then booted into
Windows 98 (hda1 on the partition list), and then changed
my boot.ini file to point to the right partition number.
It was originally pointing to partition "3" because NT
looks at them and counts the primary (non-extended) one gig
as partition number 1.  Anyways, after changing the numbers
in the boot.ini to "4", I figured that should work

No dice.

So, I changed it to "2" in the boot.ini file thinking that
just maybe perhaps for some reason the Windows NT
partition "moved" somehow to the beginning of the extended
partition.  Of course, that makes no sense, and natuarally,
NT did not boot like it should...

So, this was getting pretty horrifying (to say the least).
Anyways, I used the windows 98 fdisk and tried to see if
the Win NT partition still existed at all.  Well, of course
it couldn't find it at all.  Thinking that perhaps the old
Windows 98 fdisk simply couldn't detect NT partitions, I
next tried using Partition Magic 3.0.  Now, I know P Magic
supports NT partitions because I have used it before.

Anyways, it said that my NT partition simply didn't exist,
and instead, right where it should have existed was a great
big 3 gig peice of "free space".

Anyways, seeing as how I didn't want to loose all my NT
data, I decided to go back into linux fdisk and see if I
could somehow "repartition" the NT "free space" back into a
real NT partition.

So, I used the linux fdisk and recreated it with exactly
the same "start" and "end" numbers that it used to have.

It worked!!

After changing my boot.ini file back from "2" to "4", it
worked just fine.  My data is still all intact, and I am
glad that the linux fdisk did not destroy all my data when
it re-wrote my NT partition to the partition table(like dos
fdisk would).

I'm not sure what that Linux fdisk did when I installed
linux, but I am 100% certain I did NOT delete the NT
partition while installing linux.  This wasn't user error.
In fact, I did it all over again to make sure it wasn't me
that was causing the error.

Comment 1 Jay Turner 2000-02-08 12:59:59 UTC
This problem has to do with the way that fdisk (and therefore Disk Druid)
handles deletions and additions within an extended partition.  When you deleted
hda5, your NTFS partition (previously hda6) became hda5 but stayed in the same
place on the disk (that is it stayed at cylinders 390-784)  When you added the
partitions for linux, you were creating hda6, hda7 and possibly other, but they
were all existing in the cylinders between 262 and 389 (i.e. physically before
the NTFS partition, but logically after)  This is what caused the problem you
saw.  In trying to walk the partition chain, you have to jump to the end of the
drive and then back to the middle.  This is something that Partition Magic
cannot handle and the NT Bootloader throws up its hands as well.

Really the only way this would work correctly for all accounts is to use a
program which would allow you to move partitions around on the disk (something
like Partition Magic will allow this)  In addition, we are currently looking at
the possibility of reworking this behavior in fdisk to see if we can come up
with a way to move the partitions.  I am adding this to a list of bugs to be
addressed in future releases.