#589737 Unknown symbol error in grub2 : 'grub_xputs'

Package:
grub2
Source:
grub2
Description:
GRand Unified Bootloader, version 2 (dummy package)
Submitter:
Simon Vallet
Date:
2013-07-29 03:27:04 UTC
Severity:
important
#589737#5
Date:
2010-07-20 13:48:40 UTC
From:
To:
Hi,

after an upgrade of a mixed squeeze/sid system, grub2 doesn't seem to
load anymore -- I get the following message instead :

"The symbol 'grub_xputs' not found'"
Entering rescue mode

and get dropped to a rescue mode.

Also see https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/514269

Simon

#589737#10
Date:
2010-07-24 23:37:38 UTC
From:
To:
I'm experiencing exactly the same behaviour.

When the BIOS yields control to GRUB this is output to screen:

Perhaps worth noting is that I've got multiple SATA disks (5) in this
system.  During installation it proposed to do grub-install to *both*
/dev/sdb *and* /dev/sdc, which I declined, the latter being part of a
RAID 10 pool, and only the former being the bootdisk.

As of this moment I'm burning a livedvd to try and fix this from a
chroot.

#589737#15
Date:
2010-07-25 11:11:04 UTC
From:
To:
This, apparently, fixed it.

I.e. I booted using the livedvd, then mounted the root filesystem on
/mnt, --bind mounted /dev, /proc and /sys in /mnt, then chrooted to /mnt
and ran "grub-install /dev/sdb".  After that, I could use GRUB again.

#589737#20
Date:
2010-07-31 12:35:25 UTC
From:
To:
On Sun, 25 Jul 2010 13:11:04 +0200 Giel van Schijndel <me@mortis.eu> wrote:

I believe this bug is related to some problem in glibc, which is now
fixed.
actually broken in some way : grub-install fails here because it doesn't
identify ext4 partitions.

Which is why I'm currently booting off lilo :-| I totally volunteer to
test ext4 support in DI.

Simon

#589737#25
Date:
2010-08-15 11:31:31 UTC
From:
To:
Hi,

I'm running debian sid/squeeze on an eeepc 1000 with multiple flash
hard-drives.

I have a separate partition (sda1) for /boot. My /root (sda2) and /home
(sdb1) are also on separate partitions which are encrypted. [see below
partition table for reference]

The problem started when I recently accepted an update to install grub2
on my machine. After updating the software, I rebooted to the following
error:

Unknown symbol error in grub2 : 'grub_xputs'

I hope this helps anyone else with this problem. I have read  somewhere
that multiple drives will cause problems with grub2.

Here's what I did to remove the update and restore my system to the
previous grub-legacy.

1. Get the cd which you used to install your system or the current
'live' cd.
2. Reboot your system and boot from the cd media.
3. At the splash screen prompt move the indicator from 'Install' past
'Advanced' to 'Help' and press [enter].
4. Enter 'rescue' (without quotes) in command prompt
5. debian installer with blue screen will start. You should see 'Rescue'
in the upper left-hand corner of the screen (you will not partition any
drives in this mode). You will need to select language, location, and
keyboard (English, USA is default).
6. the installer will try to configure the network. You can skip through
this step or continue without configuring when prompted to do so.
7. You should be prompted to drop to shell in /root. You should choose
the partition which /root is mounted on... If your /root is encrypted
like mine, you will also be prompted for the passphrase in order to
mount the partition.
8. Once you have been dropped into terminal mode [note the '#' symbol at
the left-bottom of screen], mount the partition where your /boot files
are located. In my system, this is partition 'sda1'. Therefore type
(without quotes)#: 'mount /dev/sdXN' [where 'X' is the LETTER and 'N' is
the NUMBER of the boot drive on your system]
9. You will now remove the grub2 update and restore the working
grub-legacy so that you can boot into your system. You must note which
drive letter [NOT NUMBER] will boot your system (on my system, drive
'sdX' is partitioned into two drives. Drive 'sdX1' is the boot drive but
for these purposes, I am interested to install to the MBR (Master Boot
Record) of drive 'sdX' [again drive LETTER, not NUMBER -where 'X'
represents the drive letter which boots your system]

10. Type the following lines when prompted:

sudo aptitude purge grub2 grub-pc

sudo aptitude install grub

sudo update-grub

sudo grub-install /dev/sdX  [see #9 above, drive letter, not number]

11. reboot system
12. enjoy your operating system again

below is my partition table as an illustrative example:

Disk /dev/sda: 8069 MB, 8069677056 bytes
255 heads, 63 sectors/track, 981 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x294a294a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          16      120832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              16         853     6726656   83  Linux
Partition 2 does not end on cylinder boundary.

Disk /dev/sdb: 32.3 GB, 32279224320 bytes
255 heads, 63 sectors/track, 3924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014367

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        3925    31520768   83  Linux

#589737#30
Date:
2010-08-15 14:17:21 UTC
From:
To:
It would be very much easier (about 10 fewer steps) to simply ensure
that GRUB 2 is installed properly; this bug only occurs when it is
installed improperly.  You can fix your installation by running
'dpkg-reconfigure grub-pc' and making sure that the drive your system
boots from is selected.  For background information, see:

http://www.chiark.greenend.org.uk/ucgi/~cjwatson/blosxom/debian/2010-06-21-grub2-boot-problems.html

(In short: what is happening here is that at some point you or some
other piece of software told the GRUB 2 packaging to install GRUB
somewhere that isn't actually where your computer is booting from.  As a
result, it thought it had upgraded successfully but in fact did so
inconsistently.)

Please don't advise people to regress to GRUB Legacy unless there is no
alternative, and even in such cases we need to investigate why.  Support
for GRUB Legacy is negligible right now and is likely to vanish
altogether at some point.

Regards,

#589737#35
Date:
2013-07-29 03:25:45 UTC
From:
To:
Hi maintainer and others,

I ran into this when installing Debian off the netboot kernel/initrd last
night. I haven't attempted to reproduce the issue, but I think I ended up
with GRUB being configured on my install media instead of my root disk, or
something.

Specifically, I plugged a USB stick into an existing Wheezy system,
formatted it and mounted /dev/sdc1 on /mnt/sdc, ran "grub-install
--boot-directory=/mnt/sdc/boot /dev/sdc", and downloaded the netboot 
kernel and initrd from Wheezy "current" to it. (This all worked fine.) I
started up the installer by booting the USB stick on my new system, and
manually booting that kernel and initrd at the GRUB prompt.

I noticed during the installer that my USB stick was detected fairly early
in d-i, but I needed to run the "Detect disks" phase to get my root disk
(I also backed up the old disk contents via openssh-client-udeb, before
letting d-i format or install anything, which is why I noticed). My USB
stick was /dev/sda, and the root d/targetisk was /dev/sdb.

After installing and rebooting, I got the error mentioned in this bug when
booting off my hard disk, whether or not my USB install stick was plugged
in. If I plugged in my USB stick and booted from that, I got the menu I
expected, offering to boot up the newly-installed system, and that booted
fine. This is why I vaguely suspect some parts of GRUB got installed to my
USB stick instead of to the hard disk.

`dpkg-reconfigure grub-pc` got GRUB installed right on my new system, so
now it reboots fine.

If it's relevant, the old system (where I formatted the USB stick) was
Wheezy amd64, and the new system was Wheezy i386.

I might try reproducing this in a VM, but hopefully this is enough data to
be somewhat helpful.