URL: <http://savannah.gnu.org/bugs/?25008>
Summary: grub2 cannot read soft-raid partitions Project: GNU GRUB Submitted by: cengique Submitted on: Thu 04 Dec 2008 05:30:45 AM GMT Category: Booting Severity: Major Priority: 5 - Normal Item Group: Software Error Status: None Privacy: Public Assigned to: None Originator Name: Originator Email: Open/Closed: Open Discussion Lock: Any Release: 1.96 Reproducibility: Every Time Planned Release: _______________________________________________________ Details: Hi, I have a striped soft-raid system with an Nvidia SATA controller. Legacy GRUB didn't handle it too well, either, but at least it could boot into the first linux partition. GRUB2 cannot even see the partitions in the disk. My current workaround is copying the kernel and initrd to a usb flash drive and boot with grub2 from there. Once dmraid runs the kernel can find the mapped raid volume. To demonstrate the issue, when I open a grub console at boot time and fo 'ls', I get (hd0) (hd0,1) (hd1). I can list the files in (hd0) which points to the USB drive. When I 'ls (hd1)' it says it's a 'partition table'. But addressing partitions always results in something like 'invalid partition'. I have the following modules in core.img: 'linux raid ext2 gpt pc biosdisk'. Am I missing something? The 'linux' module was missing somehow before and it didn't allow me to run the linux and initrd commands. I don't know how the setup scripts can make such a mistake. I hade to manually create the core.img, craft my own manual grub.cfg and run grub-install and grub-setup manually, too. I am really impressed with the promise of GRUB2, but unfortunately it's been pretty rough for me with GRUB2 so far. Finally, here's my configuration: Debian unstable, with the grub-pc package from 2008-11-20. # uname -a Linux salon 2.6.23.9testing #2 SMP PREEMPT Thu Feb 7 10:39:46 EST 2008 i686 GNU/Linux but running on an Intel Core 2 Duo processor (64 bit). lspci output: 00:0e.0 RAID bus controller: nVidia Corporation MCP51 Serial ATA Controller (rev a1) contents of /dev/mapper created by dmraid: # ls /dev/mapper/ nvidia_ceebaiib1 nvidia_ceebaiib5 nvidia_ceebaiib7 nvidia_ceebaiib nvidia_ceebaiib2 nvidia_ceebaiib6 partition table for the striped raid volume nvidia_ceebaiib: # fdisk -l /dev/mapper/nvidia_ceebaiib Disk /dev/mapper/nvidia_ceebaiib: 500.1 GB, 500118585344 bytes 255 heads, 63 sectors/track, 60802 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x9df59df5 Device Boot Start End Blocks Id System /dev/mapper/nvidia_ceebaiib1 1 1825 14659281 83 Linux /dev/mapper/nvidia_ceebaiib2 * 1826 16485 117756450 7 HPFS/NTFS /dev/mapper/nvidia_ceebaiib3 16486 60801 355968270 f W95 Ext'd (LBA) /dev/mapper/nvidia_ceebaiib5 16486 19526 24426801 7 HPFS/NTFS /dev/mapper/nvidia_ceebaiib6 19527 21351 14659281 83 Linux /dev/mapper/nvidia_ceebaiib7 21352 60801 316882093+ 7 HPFS/NTFS grub.cfg: ### BEGIN /etc/grub.d/00_header ### insmod raid set default=0 set timeout=5 insmod lvm set root=(hd0,2) search --fs-uuid --set 9370b0bb-092a-4a6f-b68d-c5f7b87390ef if font /usr/share/grub/ascii.pff ; then #set gfxmode=640x480 set gfxmode=800x600 insmod gfxterm insmod vbe if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't # understand terminal_output terminal gfxterm fi fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### set menu_color_normal=cyan/blue set menu_color_highlight=white/blue ### BEGIN /etc/grub.d/10_linux ### menuentry "Debian GNU/Linux, linux 2.6.23.9testing" { insmod lvm set root=(hd0,2) search --fs-uuid --set 9370b0bb-092a-4a6f-b68d-c5f7b87390ef linux /boot/vmlinuz-2.6.23.9testing root=/dev/mapper/nvidia_ceebaiib1 ro initrd /boot/initrd.img-2.6.23.9testing } menuentry "Debian GNU/Linux, linux 2.6.23.9" { insmod lvm set root=(hd0,2) search --fs-uuid --set 9370b0bb-092a-4a6f-b68d-c5f7b87390ef linux /boot/vmlinuz-2.6.23.9 root=/dev/mapper/nvidia_ceebaiibp1 ro initrd /boot/initrd.img-2.6.23.9 } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### # This file is an example on how to add custom entries ### END /etc/grub.d/40_custom ### grub commands ran (/mnt/tmp is where the usb stick is mounted): grub-install --root-directory=/mnt/tmp /dev/sdg2 grub-setup -d /mnt/tmp/boot/grub/ -v -r '(hd2,2)' -m /boot/grub/device.map '(hd2)' The usb stick is currently (hd2), but during bootup it becomes (hd0). That's why I used two different device.map files during the setup and install steps. Please let me know if I missed something. Thanks. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?25008> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-grub mailing list Bug-grub@gnu.org http://lists.gnu.org/mailman/listinfo/bug-grub