On Wed, Aug 10, 2011 at 8:01 PM, robert<address@hidden> wrote:
Ok. Here's the problem.
Running a debian-based o/s, in /etc/grub.d/40_custom (set to rwx-r_x-r_x)
I have this:
#!/bin/sh
exec tail -n +3 $0
menuentry "Sysrescue" {
set root=(hd1,2)
linux /sysrcd/rescuecd subdir=sysrcd
initrd /sysrcd/initram.igz
}
then
$sudo update-grub
well and good. "Sysrescue" shows up in the grub boot menu
However, when I select that menu item, I get:
error: hd1,2 cannot get C/H/S values
error: you need to load the kernel first
but, when I boot to a grub prompt and issue the following commands:
grub>set root(hd1,2)
The syntax is "set root=(hd1,2)" not "set root(hd1,2)" (not to mention
that it's more reliable to search by UUID). This could be the source
of the difference between executing the menu entry and using the grub
shell (by having a typo that causes $root not to be changed you are
likely allowing it to keep its current value, which is likely the
correct one and "(hd1,2)" is incorrect). Even if that is not the exact
difference you are almost certainly typing something different at the
grub shell compared to what is in your grub.cfg as there should be no
difference in the way they these lines would be interpreted (other
than needing to run "boot" explicitly at the grub shell).
grub>linux /sysrcd/rescuecd subdir=sysrcd
grub>initrd /sysrcd/initram.igz
grub>boot
everything goes swimmingly. machine boots to the requested o/s
any suggestions?
Thanks in advance.
Robert