help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: no boot


From: robert
Subject: Re: no boot
Date: Thu, 11 Aug 2011 08:53:22 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10

On 08/10/2011 10:26 PM, Jordan Uggla wrote:
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

My previous post set up a hypothetical using hd1,2. I have corrected that to reflect the exact parameters of the problem ... so ... hd1,5 it should be.

<<<set root(hd1,5)>>> was a 'typo' in my previous e-mail. I am issuing the command correctly. I boot to grub from a thumbdrive and enter:
grub> set root=(hd1,5)
grub> linux /sysrcd/rescuecd subdir=sysrcd
grub> initrd /sysrcd/initram.igz
grub> boot

and THAT works, the machine boots to the requested o/s

however, as mentioned earlier, THE VERY SAME lines in my generated grub menu produce:
error: hd1,5 cannot get C/H/S values
error: you need to load the kernel first

Here's a copy-paste of the relevant lines from grub.cfg:

### BEGIN /etc/grub.d/40_custom ###
exec tail -n +3 $0
menuentry "Sysrescue" {
set root=(hd1,5)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}
### END /etc/grub.d/40_custom ###


/etc/default/grub contains:
#GRUB_DISABLE_LINUX_UUID=true
so apparently update-grub uses UUID. however, grub.cfg DOES NOT contain UUID. should I explicitly place UUID in file /etc/grub.d/40_custom?? if so, what is the syntax?

any further suggestions?

thanks.
robert



reply via email to

[Prev in Thread] Current Thread [Next in Thread]