Hi!
I have 2 hard drives (/dev/sda and /dev/sdb): one is for booting linux (/dev/sdb) and the other one is a backup (/dev/sda) (I rsync regularly the entire content of the first disk on the other one). It’s on BIOS Legacy.
If I try to boot, it stops: here is the error:
error: 'grub_calloc' symbol not found.
Entering recovery mode ...
grub rescue>
If I disconnect physically the backup drive, it boots normally.
Each disk has a 2 partitions inside (for the system and the other for the personal documents):
- for the disk where I boot from: /dev/sdb1 and /dev/sdb2.
- and same for the backup (since it’s a copy): /dev/sda1 and /dev/sda2.
sudo fdisk -l
Disk /dev/sda: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: ST2000LM015-2E81
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb152024b
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 204802047 204800000 97.7G 83 Linux
/dev/sda2 204802048 3907028991 3702226944 1.7T 83 Linux
Disk /dev/sdb: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: ST2000LM007-1R81
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xb152024b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 204802047 204800000 97.7G 83 Linux
/dev/sdb2 204802048 3907028991 3702226944 1.7T 83 Linux
I want to boot from /dev/sdb1.
os-prober
sees 2 OSs, but only /dev/sdb1 is the good one, the other is the backup (/dev/sda1)
$ os-prober
/dev/sda1:Manjaro Linux (20.1):ManjaroLinux:linux
/dev/sdb1:Manjaro Linux (20.1):ManjaroLinux1:linux
I’m trying to reinstalling grub:
# manjaro-chroot -a
Here, manjaro-chroot
gives me the choice of the 2 OSs: I choose ManjaroLinux1
. Then,
# grub-install /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
and then:
# update-grub
Generating grub configuration file ...
Found background: /usr/share/grub/background.png
Found linux image: /boot/vmlinuz-5.9-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-5.9-x86_64.img
Found initrd fallback image: /boot/initramfs-5.9-x86_64-fallback.img
Found linux image: /boot/vmlinuz-5.8-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-5.8-x86_64.img
Found initrd fallback image: /boot/initramfs-5.8-x86_64-fallback.img
Found linux image: /boot/vmlinuz-5.7-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-5.7-x86_64.img
Found initrd fallback image: /boot/initramfs-5.7-x86_64-fallback.img
grub-probe: error: cannot find a GRUB drive for /dev/sdc1. Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdc1. Check your device.map.
Found Manjaro Linux (20.2) on /dev/sda1
Found memtest86+ image: /boot/memtest86+/memtest.bin
done
Here is my fstab
:
$ cat /etc/fstab
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
/swapfile swap swap defaults 0 0
UUID=4e4bc30b-3313-4c61-a1b4-3b179cc4dd08 / ext4 defaults,noatime 0 1
UUID=65d454f2-7a4e-4dc7-8db3-7b2c46127759 /mnt/backup ext4 defaults,noatime 0 2
UUID=f0f92cf9-b49b-4c56-98fa-bfcea2106e7d /mnt/rsync_system ext4 auto,nofail,noatime,rw 0 2
UUID=0fa734b2-de67-4bea-a460-61e1d4c77782 /mnt/rsync_backup ext4 auto,nofail,noatime,rw 0 2
So it installs grub correctly on /dev/sdb (and detects the other OS on my backup disk /dev/sda1).
How can I fix this error and make it boot normally?
Thanks
EDIT: SOLVED! I don’t know what’s happened… I’ve physically reconnected the backup hard drive and now it’s booting normally without the previous error message.
Apparently there’s a bug with a new update on Grub
, but I don’t know why reconnecting the disk solved this.