如何將 Debian 從 Buster 升級至 Bullseye?

Debian 於 2021 年 8 月推出 第 11 版 代號 Bullseye,至今(2022/6)過了差不多快一年的時間,穩定性應該增加不少,可以將手上還在跑 Debian 10 的裝置升級一下!此篇分享我如何從 Buster 升級至 Bullseye 的步驟,並以 Armbian 為例,其他以 Debian 為底的系統步驟大同小異,一起來升級吧!

Step 1 備份系統

雖然目前升級步驟已經相對安全,但避免萬一還是要先備份!備份!備份!

Step 2 先將 Buster 更新到最新

我們先將系統套件升級至 Buster 最新的版本,避免從過舊的 packages 直接升級容易發生問題

sudo apt update
sudo apt upgrade
sudo apt full-upgrade

重開機套用更新

sudo reboot

Step 3 修改 /etc/apt/sources.list

修改 sources.list,將套件來源切換至 Bullseye

原 Debian 10 Buster 的 source.list 可能長這樣

deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free

deb http://deb.debian.org/debian buster-updates main contrib non-free
deb-src http://deb.debian.org/debian buster-updates main contrib non-free

deb http://deb.debian.org/debian buster-backports main contrib non-free
deb-src http://deb.debian.org/debian buster-backports main contrib non-free

deb http://security.debian.org/ buster/updates main contrib non-free
deb-src http://security.debian.org/ buster/updates main contrib non-free

將其中 buster 替換成 bullseys,如

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

特別注意 Security 的部分(最後一區塊),要將 buster 替換為 bullseye-security,如

deb http://security.debian.org/ bullseye-security/updates main contrib non-free
deb-src http://security.debian.org/ bullseye-security/updates main contrib non-free

儲存後,update 一下

sudo apt update

暫時關掉 Armbian 套件來源

如果是 Armbian 的讀者,根據論壇上討論的安全做法,在正式升級 Bullseye 前,先把 armbian repo 註解掉比較安全

修改 /etc/apt/sources.list.d/armbian.list

# 註解掉
#deb http://apt.armbian.com buster main buster-utils buster-desktop

update 一下

sudo apt update

Step 4 最小化系統更新

正式更新前,先進行最小化系統更新,避免更新過程中大量移除套件時,刪除了某些你可能必須保留的版本

sudo apt upgrade --without-new-pkgs

過程中可能系統會問一些問題,如:

如何將 Debian 從 Buster 升級至 Bullseye?

原因是套件更新時,套件的 config file 可能也會更新,因此系統詢問使用者該如何處理?選擇 N 表示保留目前設定,但可能會有無法向下相容的問題。選擇 Y 表示用套件提供的最新 config file 覆蓋,但原始的設定可能會跑掉。

依照這一篇的討論,選擇 Y 風險比較低,但要仔細確認過程中哪些套件的設定會被蓋掉。比如說我發現 sshd 更新後,之前設定的 key auth 方法會被 disable,需要額外再去調整回來。

此外,系統也會問這個問題:

如何將 Debian 從 Buster 升級至 Bullseye?

在更新時可能會重啟一些服務,可以依需求選擇重啟前是否詢問,避免服務中斷。

Step 5 正式更新至 Bullseye

最小更新完成,現在正式進入 Debian 11 更新

sudo apt full-upgrade

過程中系統可能也會詢問 Step 4 的問題,依情況選擇即可。

等待一段時間更新完成,重啟系統

sudo reboot

重新開啟 Armbian 套件來源並更新

如果是 Armbian 的讀者,重開機後進行 Armbian 的套件更新

修改 /etc/apt/sources.list.d/armbian.list,同樣將 buster 換成 bullseye

deb http://apt.armbian.com bullseye main bullseye-utils bullseye-desktop

再更新

sudo apt update
sudo apt full-upgrade
sudo reboot

Step 6 確認結果

用以下指令確認目前系統版本號

lsb_release -a

升級成功會看到

No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye

Step 7 移除不必要的 packages

此步為可選,升級後有些套件可能可以移除,透過以下指令自動清除,但要小心確認,避免刪除後造成問題

sudo apt --purge autoremove

總結升級過程

將整個流程需要的指令與過程整理如下:

# 將 Buster 更新到最新
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo reboot

# 修改 /etc/apt/sources.list
# replace 'buster' to 'bullseye'
sudo nano /etc/apt/sources.list

# 最小化系統更新
sudo apt upgrade --without-new-pkgs

# 更新至 Debian 11 bullseye
sudo apt full-upgrade
sudo reboot

# 清理 packages (optional)
sudo apt --purge autoremove

延伸閱讀:
安裝 Armbian 到 Banana pi 的 eMMC
Raspberry Pi OS 64bit 正式上線!立刻下載使用!
如何不接螢幕初始化 Raspberry Pi? – Raspberry Pi Imager Advance Options

參考資料:
How to upgrade Debian 10 to Debian 11 Bullseye using the CLI
armbian upgrade from buster to bullseye

Written by J
雖然大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,與宅宅工程師們一起過著沒日沒夜的生活,做著台灣最薄的 intel 筆電,要與 macbook air 比拼。 離開後,憑著一股傻勁與朋友創業,再度轉戰軟體工程師,一手扛起前後端、雙平台 app 開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他成功人士的新創公司,專職開發後端。沒想到卻在採前人坑的過程中,拓寬了眼界,得到了深層的領悟。