将FreeBSD从13.2直接升级到14,以及Vultr自定义ISO启动的趣闻
大家好,我是无能。
FreeBSD 14的评价相当不错,所以我想一口气升级到它。
最初,当我尝试将13.3进行freebsd-upgrade时,不知为何每次启动时fsck都会失败,无法退出只读模式,即使在单用户模式下进行fsck也无济于事。
而且,ping也失败了,curl则显示缺少库。网络在启动时似乎也无法正常工作。
接下来,Vultr似乎可以从自定义ISO作为单独分区启动,我尝试从那里启动FreeBSD,然后对有问题的FreeBSD分区进行fsck,但情况依然没有改变。
作为FreeBSD的启动过程,如果fsck失败,它似乎会继续停留在单用户模式,因此我需要先执行 mount -o rw / 才能进行操作。
最终,既然升级到13.3失败了,那就直接升级到14吧!因为失败导致网络不知为何无法连接,我通过ifconfig确认了
是vtnet0,然后尝试执行dhclient vtnet0通过DHCP重新获取了一次IP,网络就连接上了(resolv.conf的内容是什么时候改变的呢?)。于是,我参考了以下网站,并按照文章的指示操作,结果一切顺利。
https://www.takatono.info/article/144
然而,
基本上,删除从“<<<<<<< current version”到“=======”的行,并删除“>>>>>>> xx.x-RELEASE”的行。
但是,需要仔细确认是否可以删除。
这一点可能不太好。
因为需要修改各个配置文件,如果完全按照这篇文章的指示操作,更新之前的设置几乎都会丢失,所以必须仔细确认所需部分并在vi编辑器中进行编辑。
包括后续的pkg升级在内,所有步骤都按照文章进行,由于其简洁明了,我感到非常感激。
题外话:Vultr的客服
这次,大约过了2小时后,我向Vultr本身寻求了帮助。
当我询问fsck本身也失败了,有没有什么办法时,他们告诉我了开头提到的自定义ISO启动功能。
他们告诉我使用Vultr标准镜像中的Debian基础救援OS,比如Finnix,来执行fsck。但是,BSD版fsck和GNU/Linux版fsck不同,GNU/Linux版如果直接运行命令,会将其识别为ext2/3/4,而无法识别FreeBSD的UFS文件系统。
所以这次的经验是,Vultr可以从自定义ISO启动。从概念上讲,这个自定义ISO启动本身是在同一个实例上启动的,所以无法同时启动两个。如果将其想象成USB启动,应该更容易理解。
但是,如果可以使用这个功能,我就可以想象到可以完整选择磁盘,并通过scp将镜像文件传输到自己的家用服务器,这样或许就不需要使用付费备份选项了。
Vultr客服的回复速度太快了,经常在一分钟左右就回复,这让我很惊讶。
不知怎的,我寻求一丝慰藉,问道:“如果只是题外话,不想回答也没关系,日本现在是凌晨3:40。你们那边几点了?”结果,之前回复超快的客服就再也没有回复了。
既然有了这个结局,今天就到此为止吧。
下次再会。