开发者社区> 问答> 正文

FreeBSD系统如何打补丁编译内核?

FreeBSD系统如何打补丁编译内核?

展开
收起
游客fj3owmkk3vxpk 2021-12-19 00:02:38 2438 0
1 条回答
写回答
取消 提交回答
  • 阿里云的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/.*

    2021-12-20 08:54:16
    赞同 展开评论 打赏
问答分类:
来源圈子
更多
收录在圈子:
+ 订阅
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
问答排行榜
最热
最新

相关电子书

更多
Debian GNU/Linux 安全合规之路 立即下载
Decian GNU/Linux安全合规之路 立即下载
从 Linux 系统内核层面来解决实际问题的实战经验 立即下载

相关镜像