Failed to install GRUB on a separate '/boot' partition on a fake RAID 0 (12.04LTS)
- by gerben
I'm having some problems getting GRUB configured for Ubuntu 12.04LTS on a fake  RAID 0. I can either get the GRUB rescue prompt at startup, or just a GRUB prompt but I cannot boot to Ubuntu manually. How can I configure the GRUB to actually use the Ubuntu install?
The steps taken:
Installing Ubuntu on fake raid
The Ubuntu installer cannot install Ubuntu on the drive. After defining the partitions to use it fails with "Error: ???", pressing OK terminates the installer.
Therefore, I used GParted to configure the partitions:  
/dev/mapper/sil_agadaccfacbg : (the RAID configuration, created partition):
/dev/mapper/sil_agadaccfacbg1:ext2, 200MiB, (with 'boot' flag)
/dev/mapper/sil_agadaccfacbg3:ext2, 67.75GiB, (which will contain
Ubuntu)
/dev/mapper/sil_agadaccfacbg2:extended, 1.00GiB, (for swap)
Contains:
/dev/mapper/sil_agadaccfacbg5: unknown
Because of the fake-RAID, I already mounted the destination partitions before running the Ubuntu installer:
> mkdir /mnt/boot  
> sudo mount /dev/mapper/sil_agadaccfacbg1 /mnt/boot  
> mkdir /mnt/ubuntu  
> sudo mount /dev/mapper/sil_agadaccfacbg3 /mnt/ubuntu  
In the installer I chose the following partition usage:
/dev/mapper/sil_agadaccfacbg1 ext2, mount at /boot (209MB)
/dev/mapper/sil_agadaccfacbg3 ext2, mount at / (72751MB)
/dev/mapper/sil_agadaccfacbg5 swap
Device for boot loader installation:
/dev/mapper/sil_agadaccfacbg, linux device-mapper (striped) (74.0GB)
This will install Ubuntu, but will fail to install GRUB (it seems to use /dev/sda no matter which one I choose)
Installing GRUB with dpkg-reconfigure
I followed this guide, but adapted it for two partitions:
  sudo mount /dev/mapper/sil_agadaccfacbg3 /mnt/ubuntu
  sudo mount --bind /dev /mnt/ubuntu/dev
  sudo mount --bind /proc /mnt/ubuntu/proc
  sudo mount --bind /sys /mnt/ubuntu/sys
  sudo mount /dev/mapper/sil_agadaccfacbg1 /mnt/boot
  sudo mount --bind /boot /mnt/boot
  sudo chroot /mnt/ubuntu
  dpkg-reconfigure grub-pc  
However, it does not ask where to install GRUB (I should choose /dev/mapper/sil_agadaccfacbg somewhere..)
After reboot I get the GRUB rescue prompt with message no such device
Installing GRUB with grub-install
After the same mount commands as above, I continued with:
> sudo grub-install --root-directory=/mnt/boot /dev/mapper/sil_agadaccfacbg  
This gives the following message:
  /usr/sbin/grub-probe: error: cannot find a device for /mnt/boot/boot/grub (is /dev mounted?)  
It does succeed when mounting just the boot partition :
  sudo mount /dev/mapper/sil_agadaccfacbg1 /mnt
  sudo grub-install --root-directory=/mnt/ /dev/mapper/sil_agadaccfacbg  
This finishes with:
  Installation finished. No error reported.
After reboot I get the GRUB console, with welcome text.
Attempting to manually start Ubuntu:
  ls
(hd0) (hd0,msdos3) : (Ubuntu install partition)
(hd0,msdos1) : (Ubuntu boot partition)
(hd1) (hd1,msdos1) : (Ubuntu live USB)
ls (hd0,msdos3)/
contains: 
- vmlinuz      - lib/        - tmp/
- initrd.img   - mnt/
- var/         - proc/
- boot/        - root/
- etc/         - run/
- media/       - sbin/
- bin/         - selinux/
- dev/         - srv/
- home/        - sys/ 
ls (hd0,msdos1)/
contains:
-grub/
-boot/
-initrd.img-3.8.0-29-generic
-vmlinuz-3.8.0.29-generic
-config-3.8
linux (hd0,msdos3)/vmlinuz
This returns "error: out of disk"
Installing GRUB on Ubuntu partition with grub-install
> sudo mount /dev/mapper/sil_agadaccfacbg3 /mnt  
> sudo grub-install --root-directory=/mnt/ /dev/mapper/sil_agadaccfacbg  
This finishes with message:
> Installation finished. No error reported.
After reboot get the message "error: out of disk" and the GRUB rescue prompt.
Configuring GRUB with grub-mkconfig
Attempting to run grub-mkconfig with different destinations results in the same message:
  /usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).
Remarks:
Initially I didn't use a separate /boot partition, but the GRUB install then also failed. Because some mention that a small partition at the beginning of the drive is necessary on old machines, I retried with a /boot partition
This is a single boot (no other OS's installed/used)