diff --git a/mxgrub/mxgrub b/mxgrub/mxgrub index 330298d..6b2beb6 100755 --- a/mxgrub/mxgrub +++ b/mxgrub/mxgrub @@ -42,6 +42,23 @@ sub check_mbr { } +sub check_grub_installation { + my $fingerprint='[ab]*.mod'; # this 'scans' just a dozen, and not 200 files. + my $sum_lib = ` cat /usr/lib/grub/i386-pc/$fingerprint | md5sum `; + my $sum_boot = ` cat /boot/grub/i386-pc/$fingerprint | md5sum `; + my @root_dev = root_dev(); + + warn << "EOF" if $sum_lib ne $sum_boot; + + Note: GRUB version installed in /usr differs from GRUB version used to boot. + + Consider updating the boot-loader with: + + grub-install --boot-directory=/boot $root_dev[1] + +EOF +} + # /usr/include/sys/sysmacros.h # MMMM.MMMM MMMM.MMMM MMMM.MMMM MMMM.MMMM mmmm.mmmm mmmm.MMMM MMMM.MMMM mmmm.mmmm @@ -256,6 +273,8 @@ sub cmd_initramfs { sys('bash','-c','cd /project/admin/initramfs;find .|cpio -H newc -o | gzip > /boot/grub/initramfs.igz'); } +check_grub_installation + our ($opt_list,$opt_update,$opt_initramfs,$opt_test); GetOptions(