在开始安装FreeBSD系统之前,首要任务是制作一个可引导的U盘启动盘。需要特别提醒:以下命令将彻底清空U盘中的所有数据,请务必提前备份重要资料。此外,若您在Ubuntu或其他类似Linux发行版下操作,可能会遇到U盘被自动挂载为只读的情况,本文末尾将详细讲解解决方案。
1. 制作FreeBSD U盘启动盘
利用dd命令将FreeBSD系统镜像写入U盘。假设您的U盘设备节点为/dev/da0,请执行以下命令:
dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k
务必正确替换of=参数后的设备名称,切勿混淆盘符,以免丢失数据。
2. 安装FreeBSD系统
将计算机BIOS/UEFI设置为从U盘启动,插入U盘后重启,即可进入FreeBSD安装界面。详细的安装步骤可参考官方手册,本文不再重复说明:
https://www.freebsd.org/doc/zh_CN.UTF-8/books/handbook/bsdinstall-pre.html
3. 使用Grub2实现多系统引导
3.1 编译安装Grub2引导程序
进入FreeBSD的Ports目录,编译安装Grub2:
cd /usr/ports/sysutils/grub2
make install
3.2 将Grub2引导安装至硬盘主引导扇区
首先确认硬盘设备名称(例如ad0,请根据实际硬件调整):
gpart show ad0
由于安装FreeBSD时默认的boot分区类型为freebsd-boot,而Grub2要求识别为bios-boot类型,因此需要先修改分区类型:
gpart modify -i 1 -t \!21686148-6449-6E6F-744E-656564454649 ad0
随后将Grub2安装到硬盘:
grub-install --modules=part_gpt /dev/ad0
3.3 配置Grub2启动菜单
自动生成配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
或者手动编辑/boot/grub/grub.cfg,添加如下示例启动项:
menuentry "FreeBSD /boot/loader" --class freebsd --class bsd --class os {
insmod ufs2
set root='(hd0,2)'
search --no-floppy --fs-uuid --set 4cb05ace512b3d97
kfreebsd /boot/loader
}
请注意,UUID与分区编号需根据您的实际磁盘环境进行调整。
附录:解决U盘文件变为只读的问题
在制作FreeBSD启动盘过程中,常遇到一个典型问题:在Ubuntu系统下U盘被自动挂载为只读,因而无法写入镜像。这通常是因为U盘文件系统已损坏,系统为保护数据而强制以只读模式挂载。
可通过查看系统日志来确认问题:
tail -f /var/log/syslog
插入U盘后,若出现类似 FAT: Filesystem error (dev sdb1) 的提示,表明文件系统确实存在错误。解决方法如下:
首先卸载U盘:
umount /media/你的U盘挂载点
然后使用dosfsck工具检查并修复FAT文件系统:
sudo dosfsck -v -a /dev/sdb1
请将/dev/sdb1替换为实际U盘设备号(可通过sudo fdisk -l查询)。-a参数为自动修复,-v则输出详细修复日志。修复完成后重新挂载U盘,即可正常写入数据。
