On Mon, 2005-01-31 at 00:06 -0500, Ron Watson wrote:
My, my, where to start. It's been, as the Chinese might say,
interesting. To summarize,
I started with a Win2k/Win98 dual boot system, the Win2k on a SCSI
drive, Win98 on IDE
primary master, CD/DVD primary slave, a data drive on secondary
master, and added a
new drive as secondary master to use fo Linux. Trying the Core 3 CD's,
anaconda crashed
I assume from you comments below you meant the new drive was secondary
slave.
on assert failures trying to detect drive geometry and partitions.
The
Core 2 complained,
but came up to DiskDruid, and I set up 20G /, 12G /home, 4G swap and
installed it. I
10G is more than enough for / in most cases. 1G is a very large swap,
the rest in /home would more closely fit what most people use.
My pc with 512mb ram almost never touches swap.
somewhat innocently let it put GRUB over top of the W2k boot loader
on /hda, and
after install, could not boot W2k/98 anymore. At this point I
solicited advice here and
received much cheerful and willing assistance, mainly these two
(below)....
First, I tried restoring the W2k bootloader, successfully, on /hda,
but could no longer
get to Linux. So I did the dd and saved the first block, then went
looking for BOOT.INI
on the W2k system. Hmmm, there wasn't one. So I started looking on the
net for info on
where it might be, and found some pointers to Micro$oft support pages
about it, which
mentioned that 'ntldr' uses BOOT.INI to load NT(W2k), and went looking
for ntldr,
finding it in \WINNT\ServicePackFiles\i386, and dropped the file there
and created
a BOOT.INI with the incantation noted below. Nope, that didn't do it.
Rummaging
around, I discovered I have a PartitionMagic 6.0 CD I had never used,
and thought maybe
this might help. For starters, it noticed partition table
irregularities on the Windows
drives, and helpfully offered to fix them. That at least got the Core
3 install to stop
crashing while examining drives.
<soapbox>
Just as an aside, my own opinion is that assert() has no place in
released code,
as useful as it may be on occasion in development. ESPECIALLY in code
looking
at read/write storage that could be in any state. Speaking as a
programmer, I take it
as a given that there are NO impossible conditions. It's just
defensive programming.
If quantum theory can assign a nonzero probability to a black hole
materializing
over my CPU, making assumptions about the state of a disk is glibly
optimistic,
I think.
</soapbox>
Anyway, PartitionMagic comes with BootMagic, their own boot loader.
So I tried
that, to no avail. I should mention here that the first sector of the
drive (what dd captured)
is apprently the drive geometry and partition table, so I'm thinking
this probably wouldn't
first sector is boot sector.
work anyway. I found this out the hard way by dropping it onto the
first sector of my /hdd
NEVER copy from disk to disk with dd unless the drives are exactly the
same (brand, model, etc). dd is powerful and does a bit for bit copy
and overwrites what is already there. You found this out the hard way.
In the scenario you were given, dd copies from disk to file which is OK.
And back from that file to the same disk and same location would be OK.
However disk to different disk is BAD.
Note, in the procedure below, I use the partition boot sector and not
the drive boot sector. Thus I do not deal with geometry/partition
table/ etc.
(Linux drive), and the system then thought it was an 8GB FAT32 drive
and became horribly
confused. I tried reconstructing my original partition table, without
success. Core 3's
anaconda went back to crash-n-burn, so I tried to see what
PartitionMagic could do with it.
It refused to touch the Linux drive, totally corrupted as it was. The
Win2k drive manager
was willing to delete the corrupt partition so I tried that. Sadly, I
forgot that help from
Redmond frequently has a high price, as I discovered it appears to
have blown away
the firmware on the CD/DVD on the secondary IDE channel that the Linux
drive is on.
Oopsie. Okay, it was a Samsung, and I wasn't all that happy with it
anyway. Went down
and got a new Plextor after I got an RMA for the Samsung. Put
everything back
together, Core 3 install came up ok, and installed Core 3. Updated to
2.6.10-1.741_FC3,
and now trying to decide if Thunderbird needs to get blown away, but
that's another
story.
THIS time, however, I had it put GRUB on the Linux boot drive (/hdd)
instead of the
master boot disk. Now at boot, the BootMagic comes up, offers Windows
and Linux,
and both actually work. Would this work with the normal W2k
bootloader? I don't
know, and since it works ok like this, I'll leave that as an exercise
for the reader. :+)
Probably not, since the W2k bootloader that comes up doesn't show
anything but
Win98 and Win2k for options. I can't figure out where they're storing
this info,
there doesn't seem to be BOOT.INI, it's not in the registry, duh. The
only file in the
whole system with the string "/fastdetect" is ntldr.
Ron;
Boot.ini is a hidden system file in W2K (usually c:\boot.ini) and can be
edited with notepad or wordpad
The drive geometry errors that caused problems for the initial install
were your real problem at the beginning.
Now those have been fixed you should be able to do a reinstall, put grub
on the MBR of hda, and it should give you the option of configuring for
booting the other installed OSes. It has always written a menu option
in /boot/grub/grub.conf for me to chainload each windows OS installed.
Alternatively you can use the boot.ini modification to boot Linux from
the win2K ntldr.
I have done this in the past, and it works easily. It used to be the
only way to dual boot with NT4.0 and linux.
the steps are:
----------------------------------------------------------------------
1. install linux. When installing specify the boot sector of the boot
partition for placing the boot loader. (this should be the partition
where you installed /boot)
If the initial install does not allow putting the bootloader on
the partition but forces it to the MBR, then within Linux,
before you do step 2 you can do the following
"grub-install /dev/hdd1"
Which will write the boot loader to the boot sector of the
partition before continuing with step 2.
2. use dd to create the file needed.
I will assume you put /boot on /dev/hdd1, so the command will be
"dd if=/dev/hdd1 of=linux.img bs=512 count=1"
3. Now put the file linux.img on c:\ of your win2k boot disk.
This can be done in many ways, but I use a floppy or usb drive for
that.
4. edit c:\boot.ini and add a line that reads
Linux = c:\linux.img
following the entries for win2k and win98
5. Boot from the win2k boot loader and it should provide the option to
boot linux as well as windows and just work.