cannot boot: GRUB error symbol 'grub_puts' not found

Bug #509797 reported by Boyd Waters
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
grub2 (Debian)
New
Undecided
Unassigned
grub2 (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: grub2

Large, custom-built PC (Intel Core i7-860, P55 SATA) with 8 SATA hard disks (5 on Intel ICH10 SATA, 3 on a Silicon Image 3124 controller).

Clean install of Ubuntu Lucid Alpha 2 from the Lucid-alpha2 amd64 cdrom. Installed onto the 5th SATA hard disk, the last SATA port on the motherboard SATA controller. Palimpset Disk Utility sees all disks fine, this disk is /dev/sde. No error report from the installer.

Reboot, after BIOS stuff I get a text console and a GRUB error message:

symbol 'grub_puts' not found
grub-recover >

Googling around suggests some insmod instructions to try. They don't work. The 'grub_puts' symbol is in the kernel.img file, and in normal.mod, but attempts at loading these with insmod does not work, get the error message again.

Examining the generated grub.cfg script from the LiveCD, it looks OK:

set root=(hd4,1)
search --no-floppy --fs-uuid --set eb3c6557-9941-4919-a7cc-fbbe029b72a1

That's the correct UUID for my Ubuntu installation.

There is little or no documentation for recovering from a failed GRUB2 setup.

Seems that GRUB2 cannot handle a PC with more than one hard disk.

ProblemType: Bug
Architecture: amd64
Date: Tue Jan 19 19:10:56 2010
DistroRelease: Ubuntu 10.04
LiveMediaBuild: Ubuntu 10.04 "Lucid Lynx" - Alpha amd64 (20100113)
Package: grub-pc 1.98~20100101-1ubuntu1
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-10.14-generic
SourcePackage: grub2
Tags: lucid
Uname: Linux 2.6.32-10-generic x86_64

Revision history for this message
Boyd Waters (waters-boyd) wrote :
Revision history for this message
Felix Zielcke (fzielcke) wrote : Re: [Bug 509797] [NEW] cannot boot: GRUB error symbol 'grub_puts' not found

Am Dienstag, den 19.01.2010, 19:24 +0000 schrieb Boyd Waters:
> symbol 'grub_puts' not found
> grub-recover >

These things only happen when grub-install gets run on a device which is
not the one your BIOS boots from.
But since you said this is a fresh lucid install I can only image you
had on some other disk GRUB already installed and that old GRUB gets now
loaded by your BIOS and not the new one from the lucid install.

Either try changing your BIOS boot order or follow this guide:
http://grub.enbug.org/Grub2LiveCdInstallGuide
and also run sudo dpkg-reconfigure grub-pc inside the chroot
--
Felix Zielcke
Proud Debian Maintainer and GNU GRUB developer

Revision history for this message
Boyd Waters (waters-boyd) wrote :

Great, thanks for the quick response and the Grub2LiveCdInstallGuide!

I am booting from the Lucid-alpha2 LiveDVD.

ubuntu@ubuntu:~$ sudo mount /dev/sde1 /mnt
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /sys /mnt/sys
ubuntu@ubuntu:~$ sudo mount -t proc none /mnt/proc
ubuntu@ubuntu:~$ sudo chroot /mnt /bin/bash
root@ubuntu:/# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-10-generic
Found initrd image: /boot/initrd.img-2.6.32-10-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Gentoo Base System release 2.0.1 on /dev/sdc2
Found Mac OS X on /dev/sdd3
done

(So it found the other bootable volumes, but doesn't report anything about the Ubuntu installation on /dev/sde1...)

root@ubuntu:/# grub-install /dev/sde
Installation finished. No error reported.
root@ubuntu:/# exit
ubuntu@ubuntu:~$ sudo umount /mnt/sys
ubuntu@ubuntu:~$ sudo umount /mnt/proc
ubuntu@ubuntu:~$ sudo umount /mnt/dev
ubuntu@ubuntu:~$ sudo umount /mnt

OK, I'm restarting now... I will report back.

Revision history for this message
Boyd Waters (waters-boyd) wrote :

WORKSFORME!

Great, thanks again for the install guide.

But I want to emphasize how I got into this mess: re-using a hard disk on a multi-disk system, I install Ubuntu Lucid from the LiveDVD. It prompts me for the disk to use etc, and I ask it to *completely erase* the hard disk /dev/sde and install a *clean* new version of Ubuntu. This installation process *completes with no errors*, then prompts me to reboot, and **my system is unusable**. So I work eight hours for that.

I quite understand that this is pre-release software. I want to help make it better, but I am new to Ubuntu. Where should I suggest a change to the procedure -- documentation? grub installation scripts?

I am willing to test any proposed fixes.

Thanks!

Revision history for this message
Boyd Waters (waters-boyd) wrote :

I ran update-manager and it (re)-installed grub-pc. The post-install scripts for this Debian package run grub-install to the first available hard disk. It does NOT ask for an appropriate boot disk. So I think that is the source of the problem.

I will try to look into this script and see if I can spot the problem. I am not familiar with Debian packages (yet) but this should be easy to find.

Revision history for this message
Felix Zielcke (fzielcke) wrote : Re: [Bug 509797] Re: cannot boot: GRUB error symbol 'grub_puts' not found

Am Donnerstag, den 21.01.2010, 22:30 +0000 schrieb Boyd Waters:
> I ran update-manager and it (re)-installed grub-pc. The post-install
> scripts for this Debian package run grub-install to the first available
> hard disk. It does NOT ask for an appropriate boot disk. So I think that
> is the source of the problem.
>
> I will try to look into this script and see if I can spot the problem. I
> am not familiar with Debian packages (yet) but this should be easy to
> find.

That question is a normal debconf prompt, which gets only asked once.
But it gets preseeded by grub-installer (not grub-install!) to
completely avoid the question if grub2 gets installed by it.
If you want to see it (again) you have to run
sudo dpkg-reconfigure grub-pc.
--
Felix Zielcke
Proud Debian Maintainer and GNU GRUB developer

Revision history for this message
Alex (biz-scouras) wrote :

Yesterday (28 Jan 2010) I ran apt-get upgrade on a Debian unstable distribution. Finally got to reboot this morning and I get a similar problem to that posted at the URL below, which Felix has already responded to (just found this after posting the also-affects bit). Am hunting for my Debian install CD and will report back with whether I was able to fix it and what my actual system configuration is.

http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/96883799631d6eca/884f4cec02d44544?show_docid=884f4cec02d44544

Revision history for this message
Alex (biz-scouras) wrote :

It appears to have been a failed upgrade from grub to grub-pc? I attempted solutions from several websites, but nothing worked. In particular, grub-probe -d /dev/sda always failed to detect which filesystem it is (ext3) and prompted for a module. There was an ext2 but no ext3 and I couldn't figure out which module to specify to grub-mkinstall.

Once I realized it might be an upgrade problem, I instead did apt-get install grub-legacy. The machine booted, did some fscking, rebooted, and now appears to be working fine.

Linux version 2.6.30-1-amd64 (Debian 2.6.30-6) (<email address hidden>) (gcc version 4.3.4 (Debian 4.3.4-1) ) #1 SMP Sat Aug 15 18:09:19 UTC 2009

Revision history for this message
Boyd Waters (waters-boyd) wrote : Re: [Bug 509797] Re: cannot boot: GRUB error symbol 'grub_puts' not found

Alex:

Did you ever try Felix's http://grub.enbug.org/Grub2LiveCdInstallGuide
? I was able to get grub-pc (grub2) to work for me after following the
"rescue" instructions in that guide.

It's good to know that installing grub-legacy can get the system
working again, but that's not a working grub2 installation.

Revision history for this message
Alex (biz-scouras) wrote :

Yes, I tried precisely those instructions. As I mentioned, it was failing at the

grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda (try grub-install --recheck /dev/sda if it fails)

because grub-probe couldn't understand my ext3 filesystem. He of course specifically mentions this problem, but I couldn't get it to move past it.

It's certainly not grub2, but it doesn't really matter to me. This machine only runs a single version of linux. There's the occasional kernel upgrade I suppose, but that's nothing grub-legacy can't handle. I never intended to get grub2 specifically; this just all started with an apt-get upgrade that installed a couple hundred packages and I guess a grub2 upgrade was included.

I imagine the problem is some inconsistency in how i set up the OS. It took me several tries to get the unstable debian installed (because I needed some fancy X.org/RandR features from it) and maybe I missed some packages/compilations. Plus there was that time I tried to apt-get upgrade perl and something crashed and I had to toy around with dpkg to get the database straightened out.

Computers. Can't live with 'em...

Revision history for this message
Colin Watson (cjwatson) wrote :

This bug was probably caused by the problem described in bug 496435, which is now fixed in Lucid.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.