FreeBSD 入门研讨会
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
作者:ROLLER ANGEL
我与 Front Range BSD 用户组 合作,已连续几年在 SCaLE(Southern California Linux Expo)上教授《FreeBSD 入门》(Getting Started with FreeBSD)研讨会。我之所以这样做,是因为我深知 FreeBSD 工具的强大,也乐于通过研讨会分享自己的经验。
每次授课后,我都会收获新的见解,对自己的 FreeBSD 配置方案进行验证,同时也能得到学员们的反馈,持续改进研讨会内容。最近的一次授课是在 SCaLE 19x,而在此之前,我也曾在 SCaLE 17x 和 18x 进行过类似的分享。
学员们陆续走进会场,映入眼帘的是投影屏幕上《FreeBSD 入门》的标题幻灯片——由 FreeBSD 基金会的市场协调员 Drew Gurkowski 设计。这次演示还通过 YouTube 进行了直播,链接如下: 📺 观看直播
往年,研讨会通常由 FreeBSD 基金会的执行董事 Deb Goodkin 进行开场介绍,而这一次,Drew Gurkowski 出色地完成了这一任务。
在研讨会中,我们的目标是确保学员能够克服困难,顺利完成安装过程。由于现场没有专门的实验室设备,我们使用 VirtualBox 创建和配置虚拟机,然后在其中安装 FreeBSD。
基本流程如下:
插入虚拟光盘:将 FreeBSD 安装 ISO 挂载到虚拟机的光驱。
从光盘启动并安装 FreeBSD:引导虚拟机从光盘启动,然后将 FreeBSD 安装到虚拟硬盘。
完成安装后执行 shutdown -p now
关机:这样可以移除虚拟光盘,避免下次启动时再次从光盘引导。
后续引导时改为从硬盘启动。
在这一阶段,我们会进行短暂的休息,我会利用这段时间帮助尚未跟上的学员。
在研讨会中,我遇到的最常见问题主要与虚拟机的错误配置*有关。例如:
I/O APIC 选项被禁用:有人在 VirtualBox 的系统设置中关闭了 “Enable I/O APIC”,导致无法正确启动。只需勾选此选项即可修复问题。
虚拟机架构设置错误:有学员将虚拟机类型设为 32 位,而 FreeBSD 需要 64 位。改为 64 位后,问题迎刃而解。
输入错误的包名和配置:在排查问题时,即使是个小小的拼写错误,也可能导致系统无法正常运行。
新问题:随着 Apple M1/M2 处理器的普及,一些学员无法在 Mac 设备上使用 VirtualBox,因为 VirtualBox 不支持 Apple 的 ARM 架构。
此外,我们还遇到了会场 WiFi 带来的小问题:
由于 DHCP 提供的 DNS 设置有问题,我们不得不手动修改 /etc/resolv.conf
文件中的 nameserver 配置,以保证网络连接正常。
每年的 SCaLE 研讨会都让我受益匪浅,我不仅能帮助学员入门 FreeBSD,也能从他们的反馈中不断优化课程内容。将来,我希望能继续完善这一研讨会,让更多人了解并使用 FreeBSD!
接下来的步骤是演示服务器与桌面之间的界限有多么模糊。只需安装几个软件包并修改一些配置文件,桌面环境就能立即启动。我们只需运行 startx
命令,就可以让 FreeBSD 启动图形桌面。
当学员们意识到他们已经自己搭建了完整的桌面环境,并且不需要特定的发行版或 FreeBSD 衍生系统来运行 X Window 系统窗口管理器时,这一刻是非常令人兴奋的。例如,我们使用了 XFCE,但也演示了如何轻松安装和配置 KDE Plasma 5、Lumina 和 GNOME 等其他窗口管理器。
在窗口管理器运行后,学员们可以与 GUI 应用程序进行交互,例如网页浏览器、编程 IDE、文件管理器等,进一步体验 FreeBSD 作为桌面操作系统的能力。
在研讨会中,我还专门介绍了构建自定义软件包仓库(package repository)的过程。这很重要,因为如果学员遇到需要自定义 ports 的情况,他们应该知道如何避免混合使用 ports 和二进制软件包的常见问题。
我们使用的工具是 Poudriere,它让构建自己的软件包仓库变得非常简单和直观。
在学员们开始熟悉命令行输入后,我们引入了 Ansible,这是一款用于配置管理的工具,特别适用于通过 SSH 远程管理多台服务器。
我们演示了如何克隆 FreeBSD 虚拟机,并通过 SSH 连接到它。然后,我们使用 Ansible Playbooks 来自动执行命令,帮助学员理解 Ansible 在 FreeBSD 环境中的应用。
研讨会中,我们还提供了一个 Ansible Playbook,用于在远程服务器上搭建 Poudriere,并构建自定义软件包:
租用一台高性能服务器,短时间内完成软件包的编译。
下载编译好的软件包到本地,之后销毁服务器,减少成本。
修改软件包仓库设置,将 *FreeBSD 软件包源从默认的 https://download.FreeBSD.org
改为本地路径(file://
),以便使用我们自定义构建的软件包。
最后,我们讨论了 FreeBSD Jail,让学员体验它们的强大功能,并学习如何使用 iocage 进行管理。
对于希望深入学习的学员,我们推荐 MWL.io,该网站提供了 Michael W Lucas 撰写的 FreeBSD 书籍,包括:
《FreeBSD Mastery》 系列
《Poudriere 使用指南》
《FreeBSD 安装手册》
《FreeBSD Jail 深度解析》
这些资源可以帮助学员在研讨会之后进一步拓展知识,掌握 FreeBSD 高级功能。
这次研讨会的参与者构成非常多元化,大家来自不同背景,经验水平各异,但都沉浸在技术讨论中,探索新知识,以便在未来的工作中更好地应用 FreeBSD。只要掌握了安装与配置的基本流程,就能很快发现 FreeBSD 在解决实际问题中的优势。而借助 Ansible 等配置管理工具,学员不仅可以记录所有配置文件的修改和已安装的软件包,还能轻松恢复进度,进一步深化对 FreeBSD 的理解和应用。
这次的学员们热情高涨,有些人甚至专门带来了笔记本电脑,计划在现场安装 FreeBSD。其中,一些人对 FreeBSD 的 WiFi 配置颇感兴趣。对于这类问题,我们提供了一些简单的方法:
USB 共享网络(USB Tethering):使用 Android 设备 共享网络连接,只需插入数据线、启用 USB 共享网络,然后以 root 用户运行:
该命令会通过 DHCP 获取第一个 USB 以太网设备的 IP 地址。
内部 WiFi 配置:可通过 /etc/rc.conf 和 /etc/wpa_supplicant.conf 进行配置,详细选项请参考 FreeBSD 手册的第 5 章。
更多 WiFi 相关信息:请参阅 《FreeBSD 手册》第 32 章:高级网络配置,其中包含 FreeBSD 对 WiFi 的详细支持信息。
我们的目标不仅是回答常见问题,更是帮助学员利用 FreeBSD 做出有趣的事情,并用技术解决现实问题。
值得一提的是,一位学员中途才到达,进度严重落后,无法跟上课程。但在研讨会结束后,我在大厅里陪他一起调试,最终帮助他完成了整个安装过程。由于他的笔记本使用的是酷睿 2 Duo 处理器,安装过程比其他人耗时更久。不过,他对我的帮助非常感激,并表示对 BSD 生态充满兴趣,希望能进一步学习。
我向他推荐了几个学习资源:
《FreeBSD Journal》——权威的 FreeBSD 期刊
MWL.io——Michael W Lucas 的技术书籍网站
BSD 用户组(BSD User Groups)——加入社区,和更多 BSD 爱好者交流
此外,我也告诉他,我的个人网站 http://BSD.pw 随时欢迎他来交流。
ROLLER ANGEL 主要致力于帮助人们通过技术实现目标,他是一名经验丰富的 FreeBSD 系统管理员 和 Python 开发者,热衷于探索开源技术(尤其是 FreeBSD 和 Python)在解决实际问题中的应用。他坚信,只要有心学习,就能掌握任何知识。
他喜欢挑战问题,善于寻找创造性解决方案,不断学习新技术,保持技能的敏锐性。此外,他还活跃于研究社区,乐于分享自己的想法,并通过技术推动创新。