0

I discovered after updating and rebooting a centos system that it still shows an old grub menu and the new kernel(s) are not there.

After bootup the links from /etc/grub2.cnf were broken. I recreated these with

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg

This fixed the links and I can see the grub config files looks good (in my limited experience, I have not tried to validated the content of the files), but the menu was not updated. In other words on the next reboot I am again presented with a very old boot menu with some anient kernel versions, only one of which is even still on the system.

On further googling I discovered that the /boot/efi partition is a thing and it should be mounted. It is listed in the /etc/fstab file:

# grep efi /etc/fstab
UUID=E911-FC5F          /boot/efi               vfat    umask=0077,shortname=winnt,nofail  0 0

I created a directory /mnt/efi and tried to mount it to check the file system but get an error stating that vfat is an unknown file system type

[root@app03 etc]# mount -t vfat /dev/sda1 /mnt/efi
mount: unknown filesystem type 'vfat'

I even tried with the mount options from the fstab file:

[root@app03 etc]# mount -o umask=0077,shortname=winnt,nofail --verbose /dev/sda1 /mnt/efi
mount: unknown filesystem type 'vfat'

I tried to load the vfat module but still get the same error

[root@app03 etc]# blkid /dev/sda1
/dev/sda1: SEC_TYPE="msdos" UUID="E911-FC5F" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="895f6027-a800-4f20-8d36-6b5c2f740d90" 
[root@app03 etc]# lsmod |grep vfat
[root@app03 etc]# modprobe vfat
[root@app03 etc]# lsmod |grep vfat
[root@app03 etc]# locate vfat
/usr/lib/modules/3.10.0-1062.18.1.el7.x86_64/kernel/fs/fat/vfat.ko.xz
/usr/lib/modules/3.10.0-1160.53.1.el7.x86_64/kernel/fs/fat/vfat.ko.xz
/usr/lib/modules/3.10.0-1160.76.1.el7.x86_64/kernel/fs/fat/vfat.ko.xz
/usr/lib/modules/3.10.0-1160.88.1.el7.x86_64/kernel/fs/fat/vfat.ko.xz
/usr/lib/modules/3.10.0-862.6.3.el7.x86_64/kernel/fs/fat/vfat.ko.xz
/usr/sbin/fsck.vfat
/usr/sbin/mkfs.vfat
/usr/share/man/man8/fsck.vfat.8.gz
/usr/share/man/man8/mkfs.vfat.8.gz
[root@app03 etc]# mount /dev/sda1 /mnt/efi
mount: unknown filesystem type 'vfat'
[root@app03 etc]# grep vfat /etc/filesystems 
vfat
[root@app03 etc]#

Looking at the partitions doesn't help me much:

[root@app03 etc]# fdisk -l /dev/sda
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sda: 479.6 GB, 479559942144 bytes, 936640512 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disk label type: gpt
Disk identifier: BBDE0244-EE22-420F-A32E-DC5CB3CF3540


#         Start          End    Size  Type            Name
 1         2048       411647    200M  EFI System      EFI System Partition
 2       411648      2508799      1G  Microsoft basic 
 3      2508800    936638463  445.4G  Linux LVM       

I'm stuck at this point. I gather I need to re-install the grub using a command such as grub2-install --efi-directory=/boot/efi /dev/sda but as long as /boot/efi is not mounted I fear it will only make matters worse.

In this case /dev/sda1 is the EFI system partition and /dev/sda2 is the /boot partition.

Questions:

  1. Can I re-create the EFI partition? Is this neccesary? Would it even help at all?
  2. Can I use the /dev/sda2 partition in stead and install it there?
  3. I have five of these application servers and the problem exists only on one of them - how could this even happen?

In case it helps, on another server where it works as expected I see the following:

[root@app02 ~]# lsmod |grep vfat
vfat                   17461  1 
fat                    65950  1 vfat
[root@app02 ~]# mount -v |grep vfat
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
[root@app02 ~]# df -h |grep efi
/dev/sda1                         200M   12M  189M   6% /boot/efi

2 Answers 2

2

Has the system that claims to not support the vfat filesystem type been hardened somehow? For example, do any of the files in /etc/modprobe.d/ include the line:

install vfat /bin/true

If so, then the system may have been hardened using instructions that had not been fully updated for systems booting in UEFI style. Comment out that line, and try mounting the EFI System Partition to /boot/efi again.

0
0

I think your problem is that your update only partially worked (because the EFI wasn't mounted), but that put you in a limbo between updated kernel in some places and not others. Try booting from a USB drive, chrooting into the now compromised system, and updating again from within the chroot.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .