FT2000+ arm64 openEuler 20.03 LTS SP3 crash: invalid or unsupported host archietcture for KVM: ARM64

2023-05-16

解决

添加参数--memory-only

完整指令

virsh dump --memory-only openEuler openEuler-memonly.dump

可选择gzip压缩

cat openEuler-memonly.dump | gzip > openEuler-memonly.dump.gz

 大小对比(注意,压缩过程非常耗时,考验IO及CPU单核能力)

故障过程

开启虚拟机

virsh start openEuler

导出内核转储文件

virsh dump openEuler openEuler.dump

虚拟机内安装kernel-debuginfo,crash

yum install crash kernel-debuginfo

拷贝openEuler.dump到虚拟机,执行crash调试,故障出现

 

验证看kdump自身可用性

根据以往经验:配置系统自身kdump,生成vmcore后,可以正常调试。此处是在宿主服务器上virsh dump出来的内核转储文件,出现此故障。

先验证一遍kdump产生的vmcore

查看kdump状态

手动触发一次crash

echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger

 

 重启后,产生了vmcore

crash 可以正常加载

 

由此,可以确定为virsh dump产生的转储文件内容不对。

file查看文件信息如下

尝试解决(成功 解决方案--memory-only)

查看help

 根据网上搜索的资料,启用--memory-only参数

 加上此参数后,导出的文件大小与内存限制相当

参考

Fedora 31 Linux 部署nfs服务_hkNaruto的博客-CSDN博客

客户端、服务器均安装nfs-utils, 采用nfs共享方式访问宿主服务器上的大文件

 crash加载测试

成功

 

 

附:crash源码分析

 从rpm源或者openEuler-20.03-LTS-SP3-source-dvd.iso中获取crash-7.2.8-3.oe1.src.rpm

解压,并手动打上patch

cp Packages/crash-7.2.8-3.oe1.src.rpm /tmp/
cd /tmp/
mkdir crash
cd crash
rpm2cpio ../crash-7.2.8-3.oe1.src.rpm | cpio -di
tar -xvf crash-7.2.8.tar.gz 
cd crash-7.2.8
patch -p1 < ../add-SDEI-stack-resolution.patch 
patch -p1 < ../fix-bitmap_len-calculation-overflow-problem-in-large.patch 
patch -p1 < ../lzo_snappy.patch 
patch -p1 < ../use_system_readline_v3.patch 
code crash-7.2.8

 

由于是ARM64平台编译,因此宏被定义,源码写死了只支持X86、X86_64

!machine_type("X86") && !machine_type("X86_64")

kdump产生的vmcore为什么可以?

推测未调用该方法。

附:一个可用的dump文件,类型为data

 

安装过程参考

FT2000+ openEuler 20.03 virsh创建qemu kvm虚拟机 启动qemu kvm_hkNaruto的博客-CSDN博客

参考资料

QEMU: virsh/qemu-kvm 总结_page_per_vq_mzhan017的博客-CSDN博客

DebuggingKernelWithQEMU - Ubuntu Wiki

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FT2000+ arm64 openEuler 20.03 LTS SP3 crash: invalid or unsupported host archietcture for KVM: ARM64 的相关文章

随机推荐