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
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.
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.
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
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
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,
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.