Otto we are not on the same page, perhaps this will help. This is (perhaps) my (MIS)Understanding that from having written and worked with such bootloaders but not personal expertise with GRUB That Grub is organized in a manner such as -
Phase 1 - Grub MBR 512 byte initial boot loader - knows how to get to Phase 1.5 only. Phase 1.5 - Grub OS Loader Part one (OS filesystem selector) Knows? os fs structures Phase 2 - Grub OS Loader Part Two (OS loader, knows particular OS FS structures) Phase 1 the GRUB MBR DOES NOT KNOW THE OS FILE STRUCTURES. It is too small a program to hold that level of knowledge It deals in RAW DISK ONLY through the ROM BIOS disk IO code mechanism. Loaded and executed by the ROM BIOS boot strap code. GRUB Phase 1.5 and/or Phase 2.0 IS the piece of GRUB That knows about the OS File structures, etc as you have stated. loaded and executed by Grub MBR/Phase 1/ Mike and I are working on the Premise that Phase 1 (MBR) can not find the Phase 1.5 (OSFS) image on DRIVE A in order to load it. The drive and offset info are hard coded low level device references from a HARDWARE, not OS perspective, IE. IT does not know what a /dev/hda is. It only knows "select Drive 0, Start loading 20 sectors starting at LBA 14,208 (or Cylind 10, track 5, sector 4) into low ram and execute the program. The initial fresh GRUB INSTALL stuffs Phase 1.5/Phase 2 images into /boot, converts their partition relative locations into physical drive offsets and stores the info the MBR needs into the MBR image when it builds them. What we are trying to say is that something happens when Ashley removes the drive such that the BIOS and/or the Hard Drive A no longer maps to either Drive 0 or the Image being at LBA 14,208. Therefore the MBR Phase One boot loader fails to be able to load in the Phase 1.5 Loader. However this is an ASSUMPTION, we could be loading in Phase 1.5 and dieing before it spits out any text. But Mike is not seeing any output from Ashley's tests that would indicate that Phase 1.5 actually loaded. We are not executing the piece of Grub that needs to know about FS structures or OS versions at this point, just the piece that loads that piece. the device.map has no references to /dev/hdb. The scsi devices are in the same state as when he had a single drive and the original two drive setup. The only variable is the addition or removal of drive B and reconfiguring the Drive A drive select jumper from Master-Slave to Single drive configurations. So the question becomes why does the removal of a single drive not related to the boot process cause the boot process to fail? Unless we can prove that Phase one is successfully loading Phase 1.5 and that phase 1.5 is actually failing, we can only go on the assumption that Phase 1, the MBR, is failing to load Phase 1.5 into memory. The only reason this type of failure would happen if Suddenly the hard coded device references in the MBR no longer map as they should to either the drive's ide bus address or if the stored LBA/CTS information no longer maps to the same physical disk area because something in the BIOS that tells the MBR/BIOS disk io routines what the drive looks like and how to read data off of it has changed. So the MBR actually reads the wrong disk blocks off the hard drive and grub then crashes trying to execute an invalid Phase 1.5 image. In any case, this is really a dead thread at this point, being all theory and no real proof. If Ashley wishes to persue this for the common good, he needs to take all of this to the Grub Developers Group and have them help him figure out what is really going on here. It may be an issue that may need to be addressed in a future Grub Version release so that no one else gets burnt Grub in the future. > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Otto Haliburton > Sent: Monday, August 04, 2003 1:00 PM > To: [EMAIL PROTECTED] > Subject: RE: GRUB failure > > > This is why you need to read the manual. GRUB does know the file > structures for the OS it boots the kernel for otherwise it > chain loads > the boot loader for the other OS's. Remember what GRUB stands for. > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:redhat-list- > > [EMAIL PROTECTED] On Behalf Of Kenneth Goodwin > > Sent: Monday, August 04, 2003 11:51 AM > > To: [EMAIL PROTECTED] > > Subject: RE: GRUB failure > > > > > > > > > > BIOS loads and starts the code from master boot record, > > but code in > > > > MBR fails to load stage1.5 which is located at a fixed > > position on > > > > hda. At that point, GRUB does not even know about > > > "directories" yet, > > > > since it is this later stage that would give native > > access to ext2 > > > > fs. The reason that GRUB fails to access hda can be > > that > > > BIOS uses a > > > > different method to access the drive, while GRUB maybe > > gets a wrong > > > > drive Id and hence fails to find hda. > > > > > > > > However, Ashley has mentioned that this computer has > > been working > > > > fine with a single drive for several months until hdb > > was added. > > > > Only when hdb was removed, it started to malfunction. > > So, if it's > > > > not a BIOS thing that confuses GRUB, I don't see why > > GRUB > > > would fail > > > > loading from hda. > > > > > > You haven't gotten the point of the question. GRUB is in > > > the MBR from > > > the install. It has a location to get to the GRUB > > directory to load > > > stage1 (we know that stage1 and stage2 and all other > > things > > > are in the > > > GRUB directory look them up yourself). So it locates the > > > GRUB directory > > > to load stage1 then why would it now lose that location > > to > > > load stage2. > > > > > > GRUB MBR DOES NOT KNOW LINUX DIRECTORY STRUCTURES > > GRUB MBR DOES NOT KNOW EXTFS Filesystems > > > > > > ALL IT KNOWS is an PHYSICal offset into the disk to start > > reading from and a count > > of bytes to read. This is very low level stuff. where it is > > reading from on the drive > > is not where the phase 1.5 is. (Or phase 1.5 is having a > > similiar issue itself > > > > > > -- > > redhat-list mailing list > > unsubscribe mailto:[EMAIL PROTECTED] > https://www.redhat.com/mailman/listinfo/redhat-list -- redhat-list mailing list unsubscribe mailto:[EMAIL PROTECTED] https://www.redhat.com/mailman/listinfo/redhat-list -- redhat-list mailing list unsubscribe mailto:[EMAIL PROTECTED] https://www.redhat.com/mailman/listinfo/redhat-list