在 HostVDS 服务器上安装 FreeBSD 操作系统
前言
作为性价比超高(最低配置一个月仅 0.99美元)、性能超棒且无限流量的主机商,HostVDS很受我的喜爱。(如果你心动了:我的HostVDS邀请链接,捧个场呗?)
但是和大部分主机商一样,HostVDS的管理者认识不到FreeBSD的好处,仅提供了包括Arch Linux在内的各种Linux镜像。虽说作为前Arch用户,这挺抓我的眼球,但为了让服务器更稳定,我还是决定安装FreeBSD 操作系统。
必要条件
主机商提供了可以看到VPS启动界面的 VNC连接
前期准备
在开始之前,我们需要对服务器的根分区完整地访问,这就需要不在根分区上加载操作系统。也就是加载一个另外的操作系统。
有两种方法可以做到:
- 在启动环节使用GRUB加载copy-to-ram的急救系统
- 基于OpenStack的服务商一般会提供的Rescue功能
方案1:在启动环节使VPS加载急救系统
有基本Linux功能的、能copy-to-ram的发行版即可担负此重任。此处,使用Tiny Core Linux来作为示范。
先转到Tiny Core Linux的官网,下载Core版本即可。(不在国内的服务器,建议不要使用带X的版本,否则延迟会非常折磨人)
将文件上传到服务器的用户目录下,用以下命令将镜像挂载到 /mnt
:
mount -o loop ~/Core-current.iso /mnt
用 tree
查看一下目录结构:

这么多文件,只有core.gz、vmlinuz和isolinux.cfg是我们需要的。其中
core.gz
: 是Tiny Core Linux的根目录(同时也是initrd
)
isolinux.cfg
: 是该镜像附带的bootloader的配置文件
vmlinuz
: 是Linux内核
打开 isolinux.cf
g,可以看见如下行:
label microcore
kernel /boot/vmlinuz
initrd /boot/core.gz
append loglevel=3
如此,我们就知道如何启动Tiny Core Linux了。然后将 core.gz
和 vmlinuz
放到/boot下(最好新建一个目录)

此时,打开服务器的VNC菜单,并在ssh重启VPS。
注意:在VPS上,为了增加启动速度,一般GRUB超时被设置成很短的时间。此时需要手动修改 grub.cfg
,设置成一个很长的超时(比如100)。
进入GRUB界面后,先上下移动光标使倒计时解除,然后按 c进入GRUB命令行。
首先先确定ROOT是否是服务器硬盘(通常来说,是的):
ls /boot
如果没有报错,那么请往下看。
使用上面获得的isolinux启动流程启动Tiny Core Linux:
ls /boot/tinycore # 确定Tiny Core文件位置
linux /boot/tinycore/vmlinuz # 加载内核
initrd /boot/tinycore/core.gz # 加载根文件系统
boot # 启动

过一会,出现一个小机器人,说明启动成功,可以开始下一步。(由于QEMU特性,有时候会出现像下图一样一大堆文字,不用惊慌,回车就好)

方法2:加载急救系统
没什么好说的。在HostVDS管理页面,选中实例,点击Rescue即可。
写入mfsBSD
在进入以上系统后,我们就能拥有根分区的完全改写权了。由于过程需要访问网络,请先验证ip是否正确:
ifconfig || ip address
然后把mfsBSD写入硬盘(380MB):
wget -O- --no-check-certificate https://mfsbsd.vx.sk/files/images/13/amd64/mfsbsd-se-13.1-RELEASE-amd64.img | dd bs=1M of=/dev/vda # 根据实际情况更改/dev/vda
注意:你可以下载标准版本(98MB)以减少流量用量。
此时输出类似于

完成后(停止救援并)重启,进入mfsBSD。但因为mfsBSD是copy-to-ram,所以还不能直接投入生产,需要再次安装。
安装FreeBSD操作系统
进入基于FreeBSD操作系统的mfsBSD引导界面,按回车直接选择 Boot Multi User:

使用root登录(密码:mfsroot),运行 bsdinstall
指令来安装。


注意:RAM小于2GB的、没有RAID需求的VPS不建议使用ZFS。







注意:添加用户时,请把用户添加进wheel组

最后使用 reboot
重启,配置FreeBSD 操作系统。
配置新的FreeBSD操作系统
先任意运行一个pkg指令(比如安装vim),下载pkg二进制文件:

配置ssh
编辑sshd配置文件:
vim /etc/ssh/sshd_config
重启sshd
service sshd restart
配置sudo
pkg install sudo
EDITOR=vim visudo #反注释"%wheel ALL=ALL(ALL) ALL"
最后别忘记在本地终端测试ssh设置。

后记
写博客耗费了很长时间呢()只是想记录下来有意义的东西罢。这样一想倒是能开心很多,也不大可惜了。最终的成果还是满意的——无论是FreeBSD 操作系统,还是这篇文章。不过FreeBSD 操作系统虽稳定却也难配置。大抵是为了折腾而折腾罢。
参考资料
《在不支持BSD的VPS上安装BSD系统》- FreeKai