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

Re: AWS boot failure: symbol 'grub_calloc' not found



On Tue, Aug 11, 2020 at 06:42:24PM +0100, Phil Endecott wrote:
> I've just rebooted an AWS instance running buster and it
> has failed to restart, with the message "symbol 'grub_calloc'
> not found" shown on the console screenshot.

This situation has been encountered by at least one other person as
well:
https://www.reddit.com/r/debian/comments/i4q7m2/amazon_server_updated_to_buster_105/


> It's a fairly vanilla Debian installation originally from an
> official image and upgraded to buster.  Unattended Updates
> are enabled (as is the default).  Searching found this bug
> report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=966575
> Message 40 says that this occurs with the stable security
> updates, which presumably I have received.  I note also that
> message 95 says "This configuration error is normally the result
> of something like changing disks around without telling the
> GRUB packaging about it, so it continues to install to an
> old device without realising it isn't the one that your firmware
> is configured to boot from any more."  That could be relevant
> as I have at some point changed from an instance type where
> the root device was /dev/*hda to /dev/nvme*, and had to change
> fstab to use a UUID to make that work.  So it's possible that
> the grub update has attempted to update a non-existent /dev/*hda
> and left the nvme root device borked.

It is worth noting that newer AMIs will use UUIDs in fstab, rather than
physical device names, which will avoid the need to change fstab like
this.  It'll also avoid whatever situation is leading to this grub
issue, which seems to be related to upgraded grub installations.  You
might consider migrating your data to a "fresh" buster instance, rather
than one that has been upgraded.  You can do this easily by attaching
your root EBS volume to a new instance.

> I think I would be able to fix this on a physical computer
> but (i.e. by booting from a USB device, or net-booting, or
> moving the disk to another system), but I don't know what to
> do with an EC2 instance.  Can I start another instance and
> mount the borked instance's EBS root filesystem on it?
> "Idiot-proof" instructions would be great.

The reddit thread contains some pointers that should help you get going
again.  In particular, this comment:
https://www.reddit.com/r/debian/comments/i4q7m2/amazon_server_updated_to_buster_105/g0jy1bo/
You'll want to launch a new instance for the recovery process, and
attach the root volume of the instance you're trying to recover to it as
/dev/xvdf.

Let me know if you're still stuck.

noah


Reply to: