介绍
Hetzner 已不再提供 FreeBSD 救援系统。对于完全支持 UEFI 的专用服务器,有一个教程演示了如何从 Linux 救援系统安装带有 OpenZFS 的 FreeBSD。对于仅支持最低限度 UEFI 且需要传统 BIOS 启动的旧服务器,还有另一种安装 FreeBSD 的方法。.
先决条件
- Hetzner专用服务器已启动进入Linux救援模式,SSH访问正常。.
- IPv6 网络配置参数
步骤 1 – 下载 FreeBSD 发行版归档文件
从 FreeBSD 下载 base.txz 和 kernel.txz:
curl -O http://ftp2.de.freebsd.org/pub/FreeBSD/releases/amd64/14.0-RELEASE/base.txz
curl -O http://ftp2.de.freebsd.org/pub/FreeBSD/releases/amd64/14.0-RELEASE/kernel.txz步骤 2 – 下载虚拟机容器并安装 mfsBSD
我们使用 mfsBSD 虚拟机在系统驱动器上安装 FreeBSD。.
下载 ISO 镜像文件:
curl -O https://mfsbsd.vx.sk/files/iso/14/amd64/mfsbsd-14.0-RELEASE-amd64.iso步骤 3 – 从 ISO 镜像启动 mfsBSD 虚拟机
服务器磁盘通过 virtio 作为 SCSI 设备传输到虚拟机。.
在以下命令中,根据需要替换 /dev/nvme0n1 和 /dev/nvme1n1:
qemu-system-x86_64 -net nic -net user,hostfwd=tcp::1022-:22 -m 2048M -enable-kvm \
-cpu host,+nx -M pc -smp 2 -vga std -k en-us \
-cdrom ./mfsbsd-14.0-RELEASE-amd64.iso \
-device virtio-scsi-pci,id=scsi0 \
-drive file=/dev/nvme0n1,if=none,format=raw,discard=unmap,aio=native,cache=none,id=n0 \
-device scsi-hd,drive=n0,bus=scsi0.0 \
-drive file=/dev/nvme1n1,if=none,format=raw,discard=unmap,aio=native,cache=none,id=n1 \
-device scsi-hd,drive=n1,bus=scsi0.0 \
-boot once=d -vnc 127.0.0.1:0,password=on -monitor stdio虚拟机内部的 SSH 服务可通过救援系统的 1022 端口访问。.
设置VNC密码以允许访问VNC(可选)
要连接到 VNC,您需要使用 SSH 转发端口 5900!
(qemu) set_password vnc mfsroot
(qemu) 步骤 4 – 将分发文件复制到虚拟机
在 Linux 救援系统 root shell 中,运行以下命令:
scp -o Port=1022 base.txz kernel.txz root@localhost:虚拟机内部的 root 密码是 mfsroot。.
步骤 5 – 登录虚拟机
使用 SSH 从救援系统的 shell 登录到虚拟机:
ssh -p 1022 root@localhost密码是mfsroot。.
检查驱动器是否可见:
dmesg | grep QEMU
cd0: <QEMU QEMU DVD-ROM 2.5+> Removable CD-ROM SCSI device
da0: <QEMU QEMU HARDDISK 2.5+> Fixed Direct Access SPC-3 SCSI device
da1: <QEMU QEMU HARDDISK 2.5+> Fixed Direct Access SPC-3 SCSI device步骤 6 – 安装 FreeBSD
使用 zfsinstall 脚本安装 FreeBSD:
zfsinstall -d /dev/da0 -d /dev/da1 -r mirror -p zroot -s 16G -u .这将使用 RAID-1(镜像)在 ZFS 池 zroot 上安装 FreeBSD,每个磁盘上都有 16GB 的交换空间。.
已安装的 FreeBSD 根文件系统挂载在 /mnt 上。由于我们是在虚拟机中运行当前版本的 FreeBSD,因此现在可以使用 chroot 来配置新安装:
mount -t devfs devfs /mnt/dev
chroot /mnt步骤 7 – 配置 FreeBSD
一旦我们使用 chroot 在已安装的 FreeBSD 环境中运行 shell,我们就可以完成配置了。.
- 设置根密码
passwd- 启用 root 用户登录(需密码)
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config- 设置主机名并启用 sshd 和我们新创建的 autodhcpd 脚本
创建文件 /etc/rc.conf,并添加以下内容:
cat << EOF > /etc/rc.conf
zfs_enable="YES"
hostname="myhost.mydomain"
sshd_enable="YES"
EOF步骤 8 – 配置网络设置
如果您的服务器使用基于 RealTec 的网卡,则接口名称很可能是 re0。如果您的服务器使用基于 Intel 的网卡,则接口名称为 em0 或 igb0。如有疑问,请使用 Google 搜索 FreeBSD 系统中网卡的名称。.
将以下几行添加到 /etc/rc.conf 文件中:
cat <<EOF >>/etc/rc.conf
ifconfig_em0="192.168.0.2/27"
static_routes="gateway default"
route_gateway="-host 192.168.0.1 -interface em0"
route_default="default 192.168.0.1"
ifconfig_em0_ipv6="inet6 2a01:4f8:0:0::2/64"
ipv6_defaultrouter="fe80::1%em0"
EOF步骤 9 – 清洁
退出 chroot 环境并卸载文件系统。
exit
sync
umount /mnt/dev
umount /mnt/var
umount /mnt/tmp
umount /mnt您可以关闭 qemu 虚拟机或终止 qemu 进程。一切设置完毕后,您可以在 FreeBSD 发行版上重启服务器:
reboot结果
تبریک می گویم! شما اکنون یک نصب FreeBSD دارید که به پشتیبانی کامل UEFI نیاز ندارد.









