Closed myxuchangbin closed 2 years ago
我可以尝试处理 是centos还是debian,给我一个具体的系统版本,最后还的由你测试,我手上没xen的vps
我是在centos7下复现的
还有个地址是 https://elrepo.org/bugs/view.php?id=1142 提到的解决方案都是在系统下,编译环境我不知道要怎么配置啊
5.10的lts xanmod内核也不行吗 这个也不行我也没办法
我对内核编译这块不太熟,目前我的解决方法是:
1.在文件/etc/dracut.conf.d/virt-drivers.conf
中添加一行:add_drivers+="xen-blkfront"
2.安装kernel
3.执行命令lsinitrd /boot/initramfs-5.15.5.img | grep -E 'xen'
确认xen-blkfront
驱动在initrd
4.重启,正常启动
不执行上述就会无法启动
我找到一个阿里云的文档:https://help.aliyun.com/document_detail/59360.html
大佬是否可以考虑添加到tcp.sh
脚本中来修复此问题
这逻辑不好弄,我没机器也没法测试,你可以自己改tcp,测试没问题了再给我改 对了,你可以提供下能正常运行的内核的config,我可以参考参数改下,或者提供RPM文件连接也行 我目前能做的是可以尝试把CONFIG_XEN_BLKDEV_BACKEND和CONFIG_XEN_BLKDEV_FRONTEND改成y编译下让你测试
config参数:
cat /boot/config-5.13.13 |grep XEN
CONFIG_XEN=y
CONFIG_XEN_PV=y
CONFIG_XEN_512GB=y
CONFIG_XEN_PV_SMP=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVHVM_SMP=y
CONFIG_XEN_PVHVM_GUEST=y
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
CONFIG_XEN_PVH=y
CONFIG_PCI_XEN=y
CONFIG_KVM_XEN=y
CONFIG_NET_9P_XEN=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
CONFIG_TCG_XEN=m
CONFIG_XEN_WDT=m
CONFIG_DRM_XEN=y
CONFIG_DRM_XEN_FRONTEND=m
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_SND_XEN_FRONTEND=m
# CONFIG_MMC_SDHCI_XENON is not set
CONFIG_XEN_BALLOON=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GNTDEV_DMABUF=y
CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_XEN_GRANT_DMA_ALLOC=y
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PVCALLS_FRONTEND=m
CONFIG_XEN_PVCALLS_BACKEND=y
CONFIG_XEN_SCSI_BACKEND=m
CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_ACPI_PROCESSOR=m
CONFIG_XEN_MCE_LOG=y
CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_EFI=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y
CONFIG_XEN_FRONT_PGDIR_SHBUF=m
CONFIG_XEN_UNPOPULATED_ALLOC=y
cat /boot/config-5.15.5 |grep XEN
CONFIG_XEN=y
CONFIG_XEN_PV=y
CONFIG_XEN_512GB=y
CONFIG_XEN_PV_SMP=y
CONFIG_XEN_PV_DOM0=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVHVM_SMP=y
CONFIG_XEN_PVHVM_GUEST=y
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
CONFIG_XEN_PVH=y
CONFIG_XEN_DOM0=y
CONFIG_PCI_XEN=y
CONFIG_KVM_XEN=y
CONFIG_NET_9P_XEN=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
CONFIG_TCG_XEN=m
CONFIG_XEN_WDT=m
CONFIG_DRM_XEN=y
CONFIG_DRM_XEN_FRONTEND=m
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_SND_XEN_FRONTEND=m
# CONFIG_MMC_SDHCI_XENON is not set
CONFIG_XEN_BALLOON=y
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GNTDEV_DMABUF=y
CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_XEN_GRANT_DMA_ALLOC=y
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PVCALLS_FRONTEND=m
CONFIG_XEN_PVCALLS_BACKEND=y
CONFIG_XEN_SCSI_BACKEND=m
CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_ACPI_PROCESSOR=m
CONFIG_XEN_MCE_LOG=y
CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_EFI=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y
CONFIG_XEN_FRONT_PGDIR_SHBUF=m
CONFIG_XEN_UNPOPULATED_ALLOC=y
驱动文件:
lsinitrd /boot/initramfs-5.13.13.img | grep -E 'xen'
-rw-r--r-- 1 root root 74824 Dec 1 02:56 usr/lib/modules/5.13.13/kernel/drivers/block/xen-blkfront.ko
-rw-r--r-- 1 root root 65944 Dec 1 02:56 usr/lib/modules/5.13.13/kernel/drivers/net/xen-netfront.ko
lsinitrd /boot/initramfs-5.15.5.img | grep -E 'xen'
-rw-r--r-- 1 root root 70008 Dec 1 03:02 usr/lib/modules/5.15.5/kernel/drivers/net/xen-netfront.ko
没有问题的内核版本是<5.14,包括elrepo.org版本的同样存在这类问题,如果单独编译内核暂时解决不了的话,只有考虑修改tcp脚本来暂时缓解
从参数上看没什么问题啊 5.15.5还包含了5.13的参数 我从别处找到了进展,稍后关注release的包含test的内核
你可以测试这个Centos_Kernel_5.15.5_test_2021.12.01-1353里面的内核
测试了,驱动没有,启动失败了
lsinitrd /boot/initramfs-5.15.5.img | grep -E 'xen'
-rw-r--r-- 1 root root 70008 Dec 1 05:54 usr/lib/modules/5.15.5/kernel/drivers/net/xen-netfront.ko
不是 Centos_Kernel_5.15.5_test_2021.12.01-1327里面的 是Centos_Kernel_5.15.5_test_2021.12.01-1353里面的 一共有两个版本,新一点的理论可以,不行的话还得找找参数
1353刚测试了2遍,xen-blkfront.ko
文件依然不存在,但是系统正常启动了
另外看到 https://github.com/dracutdevs/dracut/commit/b292ce72
最新版本dracut也去修复这个问题了,不过目前大部分系统还得不到更新
xen-blkfront.ko是给外挂加载用的,你当然看不到 直接编译成xen-blkfront.o ,内置了 既然能用有空我改改代码下次自动编译就按这个来 这边我就关了,有问题再回复
最新Centos_Kernel_5.15.6_latest_bbr_2021.12.01-1824 已经包含 已经加入自动化
已测试xen虚拟环境下5.15.6可正常启动,感谢大佬支持!
自5.14版本以后initrd文件开始缺失xen-blkfront.ko驱动,这就导致在xen虚拟环境下安装kernel5.14+版本,会出现启动失败的问题 目前我知道的aws的ec2,lightsail,在直接安装的情况下都复现了这个问题。
手动解决方法:https://elrepo.org/bugs/view.php?id=1137 https://bugzilla.redhat.com/show_bug.cgi?id=2010058
大佬能否集成一下解决方法到脚本,或者可以直接修复一下内核安装文件