我yum update
在之前运行良好的 Centos 7 服务器上运行了一个,然后尝试使用命令重新启动它reboot
。
该服务器是谷歌云计算实例。
它不会出现。
串行控制台上的输出是:
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) !
!!!
我不知道我做错了什么。
我怎样才能避免将来再遇到这种情况?:)
答案1
CentOS 存在影响 GCP 中 VM 实例的问题,该问题已在状态仪表板 [1] 中报告。
您需要按照以下步骤恢复虚拟机实例的运行:
- 1.-停止损坏的实例(无论如何它都无法启动)。
- 2.-编辑它以删除启动盘。
- 3.-编辑同一区域中的另一个良好实例(shim 包尚未更新),将坏实例的启动磁盘作为附加磁盘连接起来。
- 4.-lsblk 找出所连接磁盘的设备名称,例如:/dev/sdb。
- 5.挂载 efi 分区,例如:mount /dev/sdb1 /mnt
- 6.-从良好的实例复制旧的 efi 文件:
- 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.-分离磁盘并将其重新连接到坏实例作为启动磁盘。
- 9.-启动损坏的实例,现在它可以启动了。