Question
Unable to boot from my droplet's hard drive (CentOS)
I have been at this for days without any solution. I’ve been back and forth with DO support, but they have been unable to help me.
My droplet is using CentOS 7 (RHEL). In the Recovery section in my Droplet’s settings, when I try to boot from the hard drive (selecting the ‘boot from hard drive’ option), I checked my DO web console and I get this error:
error: symbol 'grub_calloc' not found.
Entering rescue mode...
grub rescue>
I’ve had a dozen browser tabs open with websites and articles, and have exhausted Google trying every suggested solution I could find. A lot of the solutions were for Ubuntu, so I was trying to find the CentOS equivalent, or just try the steps anyway and hoped they worked. I have not worked with Ubuntu as much. These are the things I’ve done:
- Powered off/on the droplet
- Power-cycled the droplet
- Went into recovery mode, mounted the disk (option 1), then went to the chroot option (option 5)
From there I did these things that I’ve found all over the internet:
Checked my kernel by typing
umame -sr
It returned:
Linux 4.15.0-23-generic
Updated/upgraded the kernel (dnf update kernel, dnf upgrade kernel)
Tried installing an older kernel
Updated/upgraded grub (Grub2 on CentOS 7)
Reinstalled Grub
Ran this command to see all of the CentOS versions that are installed on the disk:
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
These are the two entries I have:
CentOS Linux 7 Rescue [long alphanumeric string] (3.10.0-693.17.1.el7.x86
CentOS Linux (0-rescue-[long alphanumeric string]) 7 (Core)
Attempted to mount the boot partition (it’s located on /dev/vda15).
I typed:
mount /dev/vda15
I got an error:
mount: can't find /dev/vda15 in /etc/fstab
Set the Boot Default in Grub. I only had two versions to choose from (see step 6).
I typed:
grub2-set-default 0
the powered down the droplet, switched to boot from the hard disk, then powered it up again. I still got the 'Grub Rescue’ screen. So I powered the droplet back down, switched to Recovery mode again, powered up, and tried the other boot option:
grub2-set-default 1
Rinse and repeat with the power up/down the droplet, and I still got the Grub Rescue screen.Tried
grub2-mkconfig
which was a popular solution everywhere, but this was the error I kept getting when I typed that:/usr/sbin/grub2-probe: error: failed to get canonical path of 'overlay'
I couldn’t for the life of me find that error anywhere on Google or any searches where other people had that same error. There was a similar one about it not being able to get the canonical path of ’/cow’, but I couldn’t determine if it was the same issue I was having.
I’m at a loss of what to do. I can’t seem to get my droplet to successfully boot from the hard drive. I am able to get into my files and things when I boot through the Recovery Mode, but I don’t want to keep my droplet set on Recovery Mode forever. I have a lot of websites connected to this droplet.
Is there anything I can do to fix this? Or will I have to completely destroy the droplet and rebuild? I just don’t want to lose everything. I have databases and things that I need to preserve. I already took a snapshot of my droplet as soon as this problem happened. I am hoping to be able to fix the hard disk’s boot sector and migrate my droplet data back.
Thank you in advance for all your help!!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
×