阿里云的FreeBSD公共镜像已为内核添加了补丁,已满足系列V及以上的实例规格族的启动需求。具体的实例规格族可通过DescribeInstanceTypeFamilies接口的Generation参数查询。
以下情况可能导致系统无法正常启动,您可以通过FreeBSD内核源码打补丁编译内核的方式,避免或解决系统无法启动的问题。
使用非阿里云提供的FreeBSD镜像及相关自定义镜像创建ECS实例时,系列V及以上实例规格族的ECS实例可能出现无法正常启动的情况。
使用FreeBSD公共镜像创建ECS实例,并使用了freebsd-update等更新内核补丁,可能会导致系列V及以上实例规格族的ECS实例无法正常启动。
本示例以FreeBSD 12.1为例,介绍如何使用FreeBSD内核源码打补丁编译内核。
1.下载并解压FreeBSD内核源码。
wget https://mirrors.aliyun.com/freebsd/releases/amd64/12.1-RELEASE/src.txz -O /src.txz cd / tar -zxvf /src.txz
2.下载补丁包。
本示例中,为virtio驱动打补丁包0001-virtio.patch。
cd /usr/src/sys/dev/virtio/ wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/0001-virtio.patch patch -p4 < 0001-virtio.patch
3.复制内核文件,并编译安装内核。
make -j 表示指定编译时的并行数,需要根据您执行编译的环境配置来决定。例如,1 vCPU环境建议设置-j2,即vCPU核数与变量N的比值为1:2。
cd /usr/src/
cp ./sys/amd64/conf/GENERIC .
make -j2 buildworld KERNCONF=GENERIC
make -j2 buildkernel KERNCONF=GENERIC
make -j2 installkernel KERNCONF=GENERIC
4.编译完成后,删除源码。
rm -rf /usr/src/*
rm -rf /usr/src/.*
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。