今天終於完成了幫家裡的伺服器從 8.04 升級到 10.04 的工作,一般來說相信用過一陣子 Ubuntu 的人大概都已經熟知如何做版本間的升級了,但是 LTS 版之間的升級可能會比較少人知道一點。 如果你也有只鎖定 LTS 版升級的電腦,方法可以看這邊。
首先確定有安裝 update-manager-core ,沒有的話請先安裝:
$ sudo aptitude install update-manager-core
接著請打開 /etc/update-manager/release-upgrades ,把 Prompt 改成 lts ,表示你要鎖定 LTS 版進行更新:
# Default behavior for the release upgrader.
[DEFAULT]
# Default prompting behavior, valid options:
#
# never - Never check for a new release.
# normal - Check to see if a new release is available. If more than one new
# release is found, the release upgrader will attempt to upgrade to
# the release that immediately succeeds the currently-running
# release.
# lts - Check to see if a new LTS release is available. The upgrader
# will attempt to upgrade to the first LTS release available after
# the currently-running one. Note that this option should not be
# used if the currently-running release is not itself an LTS
# release, since in that case the upgrader won't be able to
# determine if a newer release is available.
Prompt=lts
假如你未來不打算只跟 LTS ,你也可以將 prompt 改成 normal ,這樣未來你就可以透過這個升級程式直接進行網路升級。好的,接下來就可以開始升級工作了:
$ sudo do-release-upgrade --proposed
整個升級過程會非常的漫長,我甚至還遇到升級到一半整個當掉的情形,想當然 upgrade-from-grub-legacy 爾就是整個大亂(現在想起來真是災難一場)。 必須要注意的是,升級完了以後請檢查一下 /boot/grub/menu.lst ,看新的核心是否擺在最前面,如果不是的話請手動更改,免得下次開機時系統企圖使用舊的核心開機會開不起來。
此外,歷經 8.04 LTS 到 10.04 LTS ,在開機的部份已經有非常多的變革,包括 grub2 / plymouth / udev 等等,其中新版的 10.04 LTS 預設是採用 grub2 ,不過如果你是從舊版升級,通常升級程式不會自動幫你改,你可以透過以下方式改為 grub2 。
$ sudo aptitude install grub2
這個動作會安裝 grub2 並移除舊版的 grub ,安裝好新版的 grub2 以後,要執行以下指令,以完成升級工作和轉換設定檔的格式:
$ sudo upgrade-from-grub-legacy
未來新的 grub 設定都會存放在 /boot/grub/grub.cfg 這個自動產生的檔案當中(也就是按照遊戲規則,這不是給使用者修改的檔案),所以舊的 menu.lst 就沒有用了,所以要來清理一下垃圾:
$ rm /boot/grub/menu.lst*
基本上這樣就可以順利的轉換到 grub2 囉!