1

I ran a yum update on a Centos 7 server that previously worked well, then tried to restart it with the command reboot.

The server is a google cloud compute instance.

It would not come up.

The output on the serial console is:

BdsDxe: loading Boot0003 "CentOS Linux" from HD(1,GPT,C8B5C89A-17ED-480E-B9F6-0E811C16FEE3,0x800,0x64000)/\EFI\cent
os\shimx64.efi                                                                                                     
BdsDxe: starting Boot0003 "CentOS Linux" from HD(1,GPT,C8B5C89A-17ED-480E-B9F6-0E811C16FEE3,0x800,0x64000)/\EFI\cen
tos\shimx64.efi                                                                                                    
                                                                                                                   
UEFI: Attempting to start image.                                                                                   
Description: CentOS Linux                                                                                          
FilePath: HD(1,GPT,C8B5C89A-17ED-480E-B9F6-0E811C16FEE3,0x800,0x64000)/\EFI\centos\shimx64.efi                     
OptionNumber: 3.                                                                                                   
                                                                                                                   
!!!! X64 Exception Type - 0D(#GP - General Protection)  CPU Apic ID - 00000000 !!!!                                
ExceptionData - 0000000000000000                                                                                   
RIP  - 00000000BF2E6D5C, CS  - 0000000000000038, RFLAGS - 0000000000010006                                         
RAX  - 00000000BFF67E50, RCX - 000000000000001F, RDX - 00000000BFF39F28                                            
RBX  - 00000000BF352FB0, RSP - 00000000BFF39E50, RBP - 00000000000023C0                                            
RSI  - 00000000BFF39F28, RDI - 0000000000000068                                                                    
R8   - 00000000BDB79018, R9  - 000000000000211E, R10 - 00000000BDC59010                                            
R11  - 00000000BFF39E9A, R12 - 00000000BE6E63E8, R13 - 00000000BF339018                                            
R14  - 00000000BEE21018, R15 - 0000000000000068                                                                    
DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030                                            
GS   - 0000000000000030, SS  - 0000000000000030                                                                    
CR0  - 0000000080010033, CR2 - 0000000000000000, CR3 - 00000000BF401000                                            
CR4  - 0000000000000668, CR8 - 0000000000000000                                                                    
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000                                            
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400                                            
GDTR - 00000000BF3EEA98 0000000000000047, LDTR - 0000000000000000                                                  
IDTR - 00000000BEE1F018 0000000000000FFF,   TR - 0000000000000000                                                  
FXSAVE_STATE - 00000000BFF39AB0                                                                                    
!!!! Find image based on IP(0xBF2E6D5C) /build/work/af60adde42b1d1ad5be2a01e4924bb905248/google3/blaze-out/k8-opt/g
enfiles/third_party/edk2/ovmf_x64_csm_debug_workspace_dir/ovmf_x64_csm_debug_edk2_files_dir/Build/OvmfX64/DEBUG_CLA
NG38/X64/OvmfPkg/8254TimerDxe/8254Timer/DEBUG/Timer.dll (ImageBase=00000000BF2E5000, EntryPoint=00000000BF2E6AB5) !
!!!                                                                                                                

I have no idea what I did wrong.

How can I avoid experiencing this in future? :)

Peter Evans
  • 133
  • 2
  • 10

1 Answers1

1

There was a issue from CentOS affecting the VM instances in GCP it was reported in the status dashborad [1].

You need to follow this steps to got back your VM instance running:

  • 1.-Stop the bad instance (it can't boot up anyway).
  • 2.-Edit it to remove the boot disk.
  • 3.-Edit another good instance (shim package hasn't yet updated) in the same zone, to attach the boot disk from the bad instance as additional disk.
  • 4.-lsblk to find out the device name of the attached disk, eg: /dev/sdb.
  • 5.-mount the efi partition, eg: mount /dev/sdb1 /mnt
  • 6.-copy the old efi files from the good instance:
    • cp -f /boot/efi/EFI/BOOT/BOOTX64.EFI /mnt/EFI/BOOT/BOOTX64.EFI
    • cp -f /boot/efi/EFI/centos/*.efi /mnt/EFI/centos
  • 7.-umount /mnt
  • 8.-Detach the disk and re-attach it back to the bad instance as boot disk.
  • 9.-Boot the bad instance, and now it can come up.

[1] https://status.cloud.google.com/incident/compute/20009

Edgar Gore
  • 41
  • 2