FreeBSD是一款类Unix操作系统,提供了先进的网络、性能、安全和兼容性等功能。本文主要介绍FreeBSD操作系统各个版本在阿里云平台上的兼容性和支持情况,以及如何跨大版本升级FreeBSD系统。
FreeBSD在阿里云控制台的支持情况
操作系统 | 镜像ID | 是否支持密码创建实例 | 是否支持密钥创建实例 | 是否支持控制台修改密码 | 是否支持控制台修改密钥 | |
FreeBSD 13.0 | freebsd_13_0_x86_30G_alibase_20220324.vhd | 否 | 是 | 否 | 否 | |
FreeBSD 12.3 | freebsd_12_3_x64_30G_alibase_20220331.vhd | 否 | 是 | 否 | 否 | |
FreeBSD 12.1 | freebsd_12_1_x64_30G_alibase_20201022.vhd | 否 | 是 | 否 | 否 | |
FreeBSD 11.4 | freebsd_11_4_x64_30G_alibase_20210319.vhd | 是 | 是 | 是 | 是 | |
FreeBSD 11.3 | freebsd_11_3_x64_30G_alibase_20200803.vhd | 是 | 是 | 是 | 是 | |
FreeBSD 11.2 | freebsd_11_02_64_30G_alibase_20190806.vhd | 是 | 是 | 是 | 是 |
FreeBSD在阿里云控制台的支持情况示例说明:
FreeBSD 11.4
创建ECS实例时,登录凭证支持设置密码和密钥对。
ECS实例创建完成后,支持修改密码。
FreeBSD 13.0
创建ECS实例时,登录凭证仅支持选择密钥对,不支持设置密码。
ECS实例创建完成后,不支持修改密钥。
FreeBSD 11/12在阿里云运行的支持情况
FreeBSD 11/12系统在阿里云V代以上机型运行需要内核相关补丁的支持,否则无法找到系统盘导致系统无法正常启动。阿里云的FreeBSD公共镜像已为内核添加了补丁,满足系列V及以上的实例规格族的启动需求。具体的实例规格族可通过DescribeInstanceTypeFamilies接口的Generation
参数查询。
以下情况可能导致系统无法正常启动,您可以通过FreeBSD内核源码打补丁编译内核的方式,避免或解决系统无法启动的问题。
使用非阿里云提供的FreeBSD镜像及相关自定义镜像创建ECS实例时,系列V及以上实例规格族的ECS实例可能出现无法正常启动的情况。
使用FreeBSD公共镜像创建ECS实例,并使用了freebsd-update等更新内核补丁,可能会导致系列V及以上实例规格族的ECS实例无法正常启动。
说明您可以使用freebsd-update将内核升级到FreeBSD 13的内核版本。具体操作,请参见跨大版本升级FreeBSD系统。
本示例以编译FreeBSD 12.4源码为例,介绍如何使用FreeBSD内核源码打补丁并编译内核。
下载并解压FreeBSD内核源码。
wget https://mirrors.aliyun.com/freebsd/releases/amd64/12.4-RELEASE/src.txz -O /src.txz cd / tar -zxvf /src.txz
下载补丁包。
本示例中,为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
复制内核文件,并编译安装内核。
make -j<N>
表示指定编译时的并行数,需要根据您执行编译的环境配置来决定。例如,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
编译完成后,删除源码。
rm -rf /usr/src/* rm -rf /usr/src/.*
FreeBSD 13在阿里云运行的支持情况
FreeBSD 13及以上系统不需要安装补丁。FreeBSD 13系统已经合入了支持阿里云V代以上机型运行需要的内核相关补丁,相关内核补丁如下:
FreeBSD 13系统合入以上补丁后,还需要添加kern.maxphys=65536
内核参数,即可正常运行。具体操作如下:
echo "kern.maxphys=65536" >>/boot/loader.conf
阿里云官方FreeBSD 13系统的内核版本为13.0-Release-p8
,已包含以上2个补丁,并配置了相关的内核参数,您可以直接使用。
跨大版本升级FreeBSD系统
本示例以FreeBSD 12.3升级为FreeBSD 13.1为例,介绍如何跨大版本升级FreeBSD系统。
执行内部升级命令。
freebsd-update upgrade -r 13.1-RELEASE
命令执行完成如下图所示:
按照提示执行安装命令。
/usr/sbin/freebsd-update install
命令执行完成如下图所示:
执行以下命令,配置loader.conf。
echo "kern.maxphys=65536" >>/boot/loader.conf
执行以下命令,重启实例。
警告重启实例会造成您的实例停止工作,可能导致业务中断,建议您在非业务高峰期时执行该操作。
reboot
执行以下命令,查看版本。
uname -r
回显信息如下,表示FreeBSD系统已成功升级为13.1版本。
相关文档
有关FreeBSD的更多信息,请参见FreeBSD官方文档。