將FreeBSD從13.2一口氣升級到14,並附帶從Vultr使用自訂ISO啟動的擬聲詞
大家好,我是無能。
因為FreeBSD 14的評價相當不錯,所以我想一口氣升級上去。
一開始我將13.3進行freebsd-upgrade後,不知為何每次啟動時fsck都會失敗,無法脫離Read Only模式,即使在單用戶模式下執行fsck也一樣。
而且,ping也失敗了,curl則顯示缺少函式庫。網路在啟動時似乎也無法使用。
接著,Vultr似乎可以將自訂ISO作為獨立分區啟動,我從那裡啟動FreeBSD後,對有問題的FreeBSD分區執行fsck,但情況依然沒有改變。
作為FreeBSD的啟動過程,如果fsck失敗,似乎會持續停留在單用戶模式,因此需要先執行 mount -o rw / 才能進行操作。
最終,因為嘗試升級到13.3失敗了,所以就直接升級到14吧!由於這次失敗,網路不知為何無法連接,我先用ifconfig確認了
是vtnet0,然後執行dhclient vtnet0嘗試透過DHCP重新取得一次,結果網路就連上了(resolv.conf的內容是什麼時候改變的呢?),於是我參考了以下網站,按照文章的指示操作,一切都順利完成了。
https://www.takatono.info/article/144
然而,
基本上,刪除從「<<<<<<< current version」到「=======」的行,以及「>>>>>>> xx.x-RELEASE」的行。
但是,需要仔細確認是否可以刪除。
這點可能不太好。
因為會修改每個config檔案的內容,如果按照這篇文章的指示操作,更新之前的設定幾乎都會遺失,所以必須仔細確認需要修改的地方,並在vi編輯器中進行編輯。
之後包括pkg的升級在內,一切都按照文章的指示進行,由於內容簡潔明瞭,因此非常有幫助。
題外話,Vultr的客服人員
這次,在大約過了兩個小時後,我也向Vultr本身尋求了幫助。
當我詢問fsck本身也失敗了,有沒有什麼解決辦法時,他們告訴了我開頭提到的自訂ISO啟動功能。
他們告訴我使用Vultr標準映像中的一個名為Finnix的基於Debian的救援作業系統來執行fsck,但是BSD版fsck和GNU/Linux版fsck不同,GNU/Linux版直接運行命令會將其識別為ext2/3/4,而無法識別FreeBSD的UFS檔案系統本身。
因此,這次的學習是Vultr可以從自訂ISO啟動。從概念上講,這個自訂ISO啟動本身是在同一個實例中啟動的,所以無法同時啟動兩個。如果想像成是USB啟動,應該會比較容易理解。
但是,如果可以使用這個功能,我就可以想像到可以選擇整個磁碟,然後透過scp將映像檔傳到自己的家用伺服器,這樣或許就不需要使用付費的備份選項了。
Vultr的客服人員回覆速度快得驚人,有時甚至在一分鐘左右就回覆了。
不知怎的,為了尋求一點慰藉,我問了一句:「題外話,如果你不想回答也沒關係,日本現在是凌晨3點40分。你那邊是幾點呢?」結果之前超快的回复就完全沒有了。
既然結局也出來了,今天就到此為止吧。
下次再見了。