概述
FreeBSD
是開源、自由的Unix Like
操作系統。
FreeBSD繼承自BSD
(Berkeley Software Distribution
,伯克利軟件發行版)系列,
是正統的Unix分支,由於法律原因,FreeBSD不能稱爲Unix;
但內核中部分使用了FreeBSD的macOS(Darwin/XNU),獲得了UNIX 03
認證。
相比Linux,FreeBSD更加貼近傳統Unix的設計理念。
與 Linux 的比較
授權協議差異:
- Linux使用
GPLv2
許可證,許可證兼容性較差,內核二次開發需要繼續開源代碼,
直接導致一些使用其它許可證的開源技術無法併入Linux內核,如ZFS
文件系統 - FreeBSD使用
BSD
許可證,許可證寬鬆,有多家公司基於FreeBSD進行商業性的二次開發,
如Apple
的macOS
、Sony
的Play Station 3/4
等
開發模式差異:
- Linux項目僅僅包含內核開發,開發迭代較快,
上游工具鏈由不同的團隊維護,同時有衆多基於Linux內核的發行版 - FreeBSD項目是完整的操作系統,包含內核、設備驅動、工具鏈、文檔等,
整個系統均由同一團隊維護,因而具有較高的一致性,但開發迭代較慢,衍生發行版也較少
社區規模差異:
- Linux商業宣傳優秀,社會關注度高,開發團隊龐大,對於新硬件、新技術有較好支持
- FreeBSD關注度和商業宣傳不如Linux,開發團隊規模較小,開發進度較慢,對新硬件的支持較爲緩慢
安裝與配置
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/磁盤塊設備' bs=1M conv=sync
UEFI引導
FreeBSD 10
開始引入UEFI啓動支持,FreeBSD 10運行在UEFI模式下需要下載獨立的帶有uefi
名稱的鏡像版本。
以FreeBSD 10.3
爲例,對應的amd64刻錄鏡像名稱爲FreeBSD-10.3-RELEASE-amd64-uefi-memstick.img
。
從FreeBSD 11
開始,鏡像均支持UEFI啓動,不再區分是否帶有uefi。
使用efibootmgr
可為手動生成引導菜單:
<!-- 掛載ESP分區到 /boot/efi -->
# mount -t msdos ESP分區 /boot/efi
<!-- 複製引導efi到ESP分區 -->
# mkdir -p /boot/efi/ESP/FreeBSD/
$ cp /boot/loader.efi /boot/efi/ESP/FreeBSD/loader.efi
<!-- 創建引導項 -->
# efibootmgr -acl /boot/efi/EFI/FreeBSD/loader.efi -L FreeBSD
更多efibootmgr說明可參考FreeBSD手冊。
注意不要在chroot環境下使用efibootmgr創建引導項,chroot環境下生成的引導efi路徑可能不爭取。
GRUB2引導
在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內核的方式更加簡單,無需複雜的引導配置。