boot loader not installed (solved)

fyrbrds at netscape.net fyrbrds at netscape.net
Fri Oct 30 02:43:38 UTC 2009


 Ok, finally got it to work. In the midst of all the troubleshooting today, the final 9.10 was released. Since I had never even booted into the old install, I cut my losses and reinstalled with a freshly downloaded copy. This had the exact same problem and would not boot so my hopes that this would be fixed in the release version were not realized. Then I found this document:
http://grub.enbug.org/BIOS_Boot_Partition
It talks about setting aside space for grub to install itself on the raid in a special partition with the boot flag set. It says that if grub sees such a partition it will automatically install itself there thus overwriting whatever was there before. So here is what I did:
Fired up the live cd. Ran the partitioner directly. I wiped all the old partitions from the drive. 
I made an extended partition using the entire drive
I made a small ext4 logical partition (the instruction says no file system is needed but I took no chances) using the minimum 8MB
    The example command given on the howto page DID NOT WORK. Just right click the partition after it is created and select Flag->boot
Made an ext4 partition for the root fs.
Made a 8GB swap partition and a 8GB ext4 /tmp partition
I committed the changes and let the partitions be formatted
I started the installer
At the partitioning section I set the small 8MB partition as "unused" by highlighting it and clicking "Change"
I assigned the mount points for the other partitions and left the format unchecked since that was just done.
At the Summary screen that displays before the copy process starts, I clicked "Advanced." Here you have to select the boot partition.
  Here were two new options I did not have before
   /dev/mapper/nvidia_fhgbbaae (dmraid)

    /dev/mapper/nvidia_fhgbbaae (linear)
 I overrode (hd0) which had always failed, and selected /dev/mapper/nvidia_fhgbbaae (linear)
  for this choice I assumed that the dmraid option would depend on the raid being mounted properly and the linear method would keep it simple.
Then I clicked forward to let the installation commence. When it was finished I opened a file manager and looked in the new file system at /target/boot/grub/. Where it had always been empty before, now it had 13 files in it.
These included default, device.map, menu.lst, stage1, stage2, etc. I immediately recognized these as files other troubleshooting howtos had referenced. Also encouraging was the device.map containing this entry:
(hd0)    /dev/mapper/nvidia_fhgbbaae
It is possible that leaving the (hd0) in the advanced setting earlier would have worked with this value being set. It had never been set before. But there is no guarantee that it would not have chosen the dmraid option and that it would still have worked.

Here is the entry in  menu.lst that makes this work.
title        Ubuntu 9.10, kernel 2.6.31-14-generic
root        (hd0,5)
kernel        /boot/vmlinuz-2.6.31-14-generic root=/dev/mapper/nvidia_fhgbbaae6 ro quiet splash 
initrd        /boot/initrd.img-2.6.31-14-generic

Before rebooting, I opened a terminal for good measure and typed
# sudo update-grub

Then I rebooted and everything worked. The caveat is that my Vista boot loader is on hd1, which is the default in my bios. To boot linux I have to hit escape to manually select the boot drive. I can change that any time by modifying the order of preference. I only mention that in case someone follows this method and sets their raid as the boot drive as I did but forgets that they were actually booting from their Windows or old OS drive. Grub added an entry for Windows on the boot menu but I haven't tested it yet. After I do, I will switch the boot order.

I now have a fully functioning Ubuntu 9.10

Thanks for all who offered assistance especially Tom and Goh Lip. It was the documents you guys pointed out that led me to the fix. You also taught me a lot about grub on the way.  Thanks.

John




-----Original Message-----
From: Tom H <tomh0665 at gmail.com>
To: ubuntu-users at lists.ubuntu.com
Sent: Thu, Oct 29, 2009 10:58 pm
Subject: Re: boot loader not installed










>> SATA RAID is set up by the BIOS so you do not need to insmod anything.

> This is not true. While it is true that SATA RAID is setup within
> the BIOS, you still need drivers to tell the OS how to access the
> physical sectors across the individual drives. After installing
> Ubuntu on my SATA RAID, booting failed because the kernel says
> that it cannot locate the root file system. The error basically
> says the partition table indicates the root fs drive takes more
> sectors than are physically present on the disk. It is a 3 disk
> RAID5 with 3x 150GB WD Raptors. If I shift-pgup through the kernel
> output, it is seeing the 3 drives as sda, sdb, and sdd but not as
> 1 drive. During the live cd install, it saw the SATA RAID as a
> single 300GB drive and could read and mount the NTFS file system,
> that I let it overwrite to install Ubuntu on.

> The install recognized the raid5 as /dev/mapper/nvidia_fhgbbaae1.
> Using the tips you gave, I figured out how to mount this file
> system and chroot. I used this procedure as listed in the install
> guide:
> mount -t auto /dev/mapper/nvidia_fhgbbaae1 /media/raid -o
> acl,user_xattr
> mount --bind /dev /media/raid/dev
> chroot /media/raid

> One obvious problem is that the folder /dev/mapper/ does not exist
> on this file system and there is no device nvidia_fhgbbaae. This
> device should contain /dev/mapper/nvidia_fhgbbaae1 mounted as /
> /dev/mapper/nvidia_fhgbbaae5 mounted as swap
> /dev/mapper/nvidia_fhgbbaae6 mounted as /tmp
> /dev/mapper/nvidia_fhgbbaae7 mounted as /home

> None of these mappings exist on the root fs. Also, as you pointed
> out, the install for some reason decides not to install grub when
> it deals with a SATA RAID. This seems to be the case whenever it
> detects one even when it is not the install drive. I did a second
> install on a different drive as I pointed out. It is a single
> drive with space partitioned after my Vista partition. Ubuntu
> still did not install grub on this drive during that install
> either. The command you suggested:

> # dpkg -l grub-pc
> ...
> un grub-pc <none> (no description available)

> I did the install as you suggested. aptitude update aptitude
> install grub-pc grub-common this worked. The /boot/grub directory
> is now populated, before was empty. It has a grub.cfg I got from
> http://grub.enbug.org/LVMandRAID modified to look like this:
> set timeout=20
> set default=0
> menuentry "Linux on RAID" {
> insmod dmraid
> set root=(nvidia_fhgbbaae1)
> linux /vmlinuz root=/dev/mapper/nvidia_fhgbbaae1
> initrd /initrd.img
> }

> Then I ran:
> # grub-install /dev/mapper/nvidia_fhgbbaae1
> grub-probe: error: no mapping exists for `nvidia_fhgbbaae1'

> This config still does not boot. The kernel cannot find the root
> fs. during the live cd session I can see dmraid_45 when I do
> lsmod. As long as this module is loaded, the kernel can see the
> array and can mount the fs. I need the help of a grub expert to go
> further. What is missing?

The insmod commands in grub.cfg are loading grub 2 modules not kernel
modules, afaik. The grub 2 modules are listed in /boot/grub and there
is no dmraid.mod module there (so your "insmod dmraid" must not be
doing much). There are kernel modules for dmraid. In my config:
CONFIG_BLK_DEV_DM=y
CONFIG_DM_MIRROR=y
CONFIG_DM_RAID45=m
CONFIG_DM_ZERO=m

SATA RAID is called fake/software/bios/... raid because unlike real
hardware raid is not actually activated by the hardware,
pre-bootloader, independently of the os; afaik, because I have never
had the pleasure/headache of getting my hands on a dmraid box.

So the installer is seeing your dmraid disk because dmraid is
installed on the Live CD and activates the raid volumes.

grub-install calls grub-mkdevicemap and then grub-probe early on so
your "no mapping exists..." error must mean that grub-mkdevicemap is
not creating a "(hd0) /dev/mapper/..." entry and grub-probe cannot map
"/dev/mapper/..." to a grub device.

Are your "nvidia_" entries listed when you chroot to
"/dev/mapper/nvidia_" and run "ls -l /dev/mapper"? (They should since
you are running "mount -o bind /dev..." before chrooting.)

Are your "nvidia_" entries listed and ok when you chroot to
"/dev/mapper/nvidia_" and run "dmraid -r"?

Are your "nvidia_" entries listed when you chroot to
"/dev/mapper/nvidia_" and run "cat fstab"?

I have just looked at the procedure whose url I had emailed you and,
had I written it, I would have run "mount -o bind /dev
/media/raid/proc" and "mount -o bind /sys /media/raid/sys" as well as
"mount -o bind /dev /media/raid/dev" before chrooting.

Assuming that you are able to run "grub-install" successfully, I would replace
insmod dmraid
by
insmod raid
insmod mdraid
insmod lvm
insmod ext2
in grub.cfg before trying to boot from your dmraid set but I would
have the insmods both before and within the "menuentry" stanza in the
same way way the grub.cfg that is generated by grub-mkconfig has
"insmod ext2" at both these stages, even if it is probably overkill.

You could at a later stage reduce the insmod(s) to the one or those
that actually enable dmraid in grub.

-- 
ubuntu-users mailing list
ubuntu-users at lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-users



 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-users/attachments/20091029/86909eb8/attachment.html>


More information about the ubuntu-users mailing list