FreeBSD 配置经验

本文详述了FreeBSD的配置经验,包括在UEFI下引导、GRUB2引导、无线网络配置、服务管理、包管理(pkg与Ports)以及系统版本升级。对比Linux,FreeBSD具有独特的授权协议、开发模式和社区规模。安装配置过程中,介绍了如何选择和刻录镜像,以及在UEFI模式下的引导设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

FreeBSD开源自由Unix Like操作系统。
FreeBSD继承自BSD(Berkeley Software Distribution)系列,是正统的Unix分支,但由于法律原因,FreeBSD不能称为Unix

相比LinuxFreeBSD更加贴近传统Unix的设计风格。

Linux 的差异

授权协议差异:

  • Linux使用GPLv2许可证,许可证兼容性较差,内核二次开发需要继续开源代码,直接导致一些使用其它许可证的开源技术无法并入Linux内核,如ZFS文件系统
  • FreeBSD使用BSD许可证,许可证宽松,有多家公司基于FreeBSD进行商业性的二次开发,如ApplemacOSSonyPlay Station 3/4

开发模式差异:

  • Linux项目仅仅包含内核开发,上游工具链由不同的团队维护,同时有众多基于Linux内核的发行版
  • FreeBSD项目是完整的操作系统,包含内核、设备驱动、工具链、文档等,关注度和商业宣传不如Linux,开发团队规模较小,对于新

社区规模差异:

  • Linux商业宣传优秀,社会关注度高,开发团队庞大,对于新硬件、新技术有较好支持
  • FreeBSD开发团队规模较小,开发进度较慢,对新硬件的支持较为缓慢

安装与配置

FreeBSD官方FTP站点提供了镜像下载,地址为ftp://ftp.freebsd.org/pub/FreeBSD
ISO-IMAGES目录下即为正式发布版本的镜像,选择匹配的CPU架构和版本即可。

镜像命名规则如下:

FreeBSD-[版本号]-RELEASE-[CPU架构]-[镜像类型].img/iso

镜像类型分为以下几类:

  • bootonly 后缀名为iso,仅供启动引导使用
  • disc1 后缀名为iso,基本镜像,包含基本软件包
  • dvd1 后缀名为iso,包含大量常用软件包
  • memstick 后缀名img,刻录使用镜像,包含基本软件包
  • memstick-mini 后缀名img,刻录使用镜像,包含核心软件包,最小化安装使用

后缀名iso的镜像用于虚拟机启动,后缀名img的镜像用于刻盘安装。
刻录镜像使用dd指令,并需要添加部分参数,以amd64架构的memstick-mini镜像为例,刻录指令如下:

# dd if='FreeBSD-[版本]-RELEASE-amd64-memstick-mini.img' of='/dev/[磁盘id]' bs=1M conv=sync

UEFI 下引导 FreeBSD

FreeBSD 10开始引入UEFI启动支持,FreeBSD 10运行在UEFI模式下需要下载独立的带有uefi名称的镜像版本。
FreeBSD 10.3为例,对应的amd64刻录镜像名称为FreeBSD-10.3-RELEASE-amd64-uefi-memstick.img
FreeBSD 11开始,镜像均支持UEFI启动,不再区分是否带有uefi

引导UEFI模式安装的FreeBSD需要下载iso格式的镜像,解压后提取/boot/boot1.efi文件。
ESP分区中创建FreeBSD目录,将boot1.efi文件拷贝到其中。
UEFI BIOS中手动选取boot1.efi文件作为系统引导项,重启即可在UEFI模式下引导安装完成的FreeBSD系统。

使用 GRUB2 引导 FreeBSD

grub.conf文件中为FreeBSD创建启动项,指定FreeBSD启动文件boot1.efi的位置,配置如下:

menuentry 'FreeBSD' {
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    chainloader /EFI/FreeBSD/boot1.efi # FreeBSD efi文件的实际路径
}

使用boot1.efi文件引导FreeBSD相比直接通过GRUB2启动BSD内核的方式更加简单,无需复杂的引导配置。

无线网络配置

命令行环境下配置无线网络推荐使用wpa_supplicant工具。
FreeBSD源内提供的wpa_supplicant工具默认未生成配置文件,需要自行在/etc路径下创建wpa_supplicant.conf
wpa_supplicant.conf配置模版如下所示:

network={
    ssid="无线网ssid"
    psk="密码"
}

默认无线网卡名称为ath0。将无线配置写入/etc/rc.conf中:

wlan_ath0="wlan0"
ifconfig_wlan="WPA DHCP"

之后启动网络服务:

# service netif start

连接未加密的无线网络,不需要使用wpa_supplicant.conf,直接在/etc/rc.conf中添加:

wlans_ath0="wlan0"
ifconfig_wlan0="ssid [无线网ssid] DHCP”

服务管理

FreeBSD采用传统的BSD风格的init系统,服务项在/etc/rc.d目录下。
可以使用service命令来管理服务:

# service [服务名称] [start | stop | status]

开机自启动的服务,以及一些系统配置存放在/etc/rc.conf文件中。
例如,需要开机自启动ssh服务则可以将sshd_enable="YES"加入rc.conf文件中。

常见的一些服务配置:

hostname="MacBook" //主机名称
ifconfig_em0="DHCP" //网络DHCP
ifconfig_em0_ipv6="inet6 accept_rtadv" //ipv6
sshd_enable="YES" //ssh服务
ntpd_enable="YES" //时间同步服务
powerd_enable="YES" //电源管理服务
dumpdev="AUTO" //内核错误转储服务

包管理

FreeBSD同时提供了基于源码编译软件包的Ports系统和基于预编译二进制包的pkg包管理。

pkg

FreeBSD 10之后引入了新的pkg工具用于管理软件包,常用指令类似与yum/apt/dnf

# pkg install [软件包名称]
# pkg search [软件包名称]
# pkg remove [软件包名称]
# pkg autoremove [软件包名称]
# pkg info //查询所有已安装的软件包
# pkg info [软件包名称] //查询某个软件包的具体信息(包括软件包的文件组成,依赖关系,来源等)

Ports

Ports系统提供了官方源内所有软件包的源码树,编译安装前能够定制编译参数,控制依赖项。
Ports源码树位于/usr/ports目录之,首次使用前需要初始化Ports树,执行:

# portsnap fetch extract

之后更新Ports树执行:

# portsnap update

编译Ports树下某个软件包的源码只需进入对应的源码目录中,执行以下步骤:

  1. make config 进入交互式界面,配置编译依赖
  2. make 执行编译操作
  3. make install 编译完成后执行安装操作
  4. make clean 安装完成后清理编译生成的临时文件

使用源码编译的软件包安装后同样受到pkg包管理器的管理。

系统版本升级

FreeBSD并非滚动发行版,系统有严格的版本划分。
FreeBSD升级系统版本需要使用升级工具freebsd-update
升级到指定版本,执行指令:

# freebsd-update -r [版本号-发布状态] upgrade

FreeBSD 10.1正式版,执行指令:

# freebsd-update -r 10.1-RELEASE upgrade

之后系统会开始下载升级所需要的补丁,下载完成之后,执行更新指令:

# /usr/sbin/freebsd-update install
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值