如何使用 OSTree 將 Debian 桌面遷移到 Immutable OS

如果您希望 Debian Desktop 像一個不可變作業系統一樣運行,關鍵在於:在目前的 Debian 系統上安裝 OSTree 並不會改變其原有的運作方式。 OSTree 會部署完整的、可引導的檔案系統樹,並且需要作業系統整合才能實現引導程式、initramfs/etc和可寫入狀態。 Debian 的軟體包頁面明確指出,安裝這些ostree工具不會影響主機系統的啟動過程。對大多數桌上型電腦使用者來說,最穩健的方法是先備份系統,然後全新安裝已經使用 OSTree 的發行版。本指南將解釋遷移過程以及自訂 Debian 鏡像所需的內容。

截至撰寫本文時,OSTree 專案將 Endless OS 列為使用 libostree 作為其宿主系統的發行版之一。同一上游文件指出,基於 Debian 的鏡像建構器範例尚未達到生產就緒狀態。有關原始碼和特定版本注意事項,請參閱Debian 軟體包詳情、OSTree 專案的發行版和工具概述,以及其關於如何適應現有發行版的指南。

能否就地轉換已安裝的 Debian 桌面系統?

目前沒有通用的、受支援的單一命令轉換方法可以用於任意 Debian 桌面系統。 OSTree 是一個作業系統部署和更新層,而不是一個將現有 APT 管理的根目錄設定為唯讀的開關。 OSTree 部署必須建置為連貫的檔案系統樹,並透過適當的 initramfs 和引導程式整合來啟動。系統還需要配置和可變目錄的規則,以及建置和交付未來作業系統樹的方法。

Debianostree軟體包為開發者提供了創建和管理目錄樹的工具,但單獨安裝它不會改變當前的 Debian 系統及其啟動流程。不要隨意ostree admin在您的主工作站上執行命令,期望它能轉換根檔案系統。

在 Debian 終端機中,於提示符號處輸入 sudo apt install ostree。
在 Debian 上安裝 OSTree 命令列工具本身並不會將正在執行的桌面轉換為 OSTree 部署。

哪條路線最符合你的目標?

你的目標實用路線哪些變化
使用透過 OSTree 更新的維護桌面環境。備份 Debian 系統,然後安裝一個整合了 OSTree 的發行版,例如 Endless OS。全新安裝作業系統;恢復個人資料並重新安裝應用程式
保留 Debian 系統並嘗試不可變部署。將基於 Debian 的 OSTree 映像建置並測試為獨立項目,最好是在虛擬機器或備用磁碟上進行。需要進行鏡像合成、啟動整合、配置/狀態設計、更新交付和恢復測試。
減少意外的系統更改,而無需替換 Debian 系統保持標準的 Debian 系統,並在適當情況下使用常規備份、快照和 Flatpak 格式。便利性有所提升,但根檔案系統仍由 APT 管理,並非 OSTree 不可變的。

後續的逐步遷移步驟將以 Endless OS 為例,它是基於 Debian 的 OSTree 桌面環境。其目前的安裝指南指出,使用者可以透過 USB 啟動磁碟進行試用安裝,或重新格式化電腦。重新格式化會清除目標磁碟上現有的作業系統、應用程式和資料。 Endless OS 也提供了與 Windows 雙啟動的文檔,但表示不支援與其他 Linux 發行版雙啟動。在繼續操作之前,請閱讀其安裝指南,並確認當前的硬體需求和可用的鏡像檔案。

如何安全地遷移到基於 OSTree 的桌面?

1. 確認清潔安裝符合要求

決定是否要在目標計算機上替換 Debian 系統。如果需要保留現有的 Debian 系統,請到此為止,並使用虛擬機器或備用硬碟進行評估。不要想當然地認為選擇安裝選項就能保留 Linux 分割區。請準備一個備用啟動盤或恢復方案,以防新系統不支援特定設備。

2.備份個人文件並清點應用程式

將文件、照片、下載內容、專案文件、瀏覽器書籤、SSH 金鑰、密碼管理器復原資訊以及任何其他所需資料複製到外部磁碟或可信任備份位置。開啟備份​​中的幾個文件,驗證副本是否可讀。在作業系統安裝過程中,請保持備份與系統斷開連接,以免安裝程式將其誤認為目標磁碟機。

桌面檔案管理器,已選取“文件”、“圖片”和“下載”,側邊欄中顯示了一個 USB 驅動器。
選擇需要備份的個人資料夾,並在替換 Debian 系統之前將其複製到單獨的磁碟機。

Debian 的軟體包選擇和系統配置無法完全對應到其他作業系統。請記錄應用程式名稱和設置,但建議重新安裝應用程序,而不是將/usr整個舊系統或整個/etc安裝複製到新系統中。如果您已經在使用 Flatpak,請使用 `flatpak install` 命令儲存已安裝應用程式的清單flatpak list --app > flatpak-apps.txt。 Flatpak 官方命令參考文件flatpak list中提供了列出已安裝應用程式的方法。

3. 下載鏡像檔並準備安裝USB隨身碟

從作業系統官方下載管道取得鏡像檔。如有提供下載檢查說明,請按照說明進行操作。使用可擦除的USB隨身碟,並在寫入任何內容之前仔細確認目標USB。 Endless OS 的支援指南介紹如何使用 balenaEtcher 選擇下載的映像檔、選擇磁碟機並進行寫入操作。寫入操作會擦除所選U盤上的所有資料。

一個類似 balenaEtcher 的窗口,顯示 Endless OS 鏡像選擇、USB 目標選擇和快閃記憶體控制選項。
選擇官方的 Endless OS 鏡像,確認目標 USB 驅動器,並在檢查目標後開始刷寫。

等待寫入和驗證階段完成。如果刷寫程式報告錯誤,請勿繼續從該USB隨身碟安裝。請重新檢查鏡像來源、USB裝置以及Endless OS balenaEtcher指南中的最新說明。

4. 從 USB 啟動並在安裝前測試桌面。

重新啟動電腦,並使用一次性啟動選單選擇USB隨身碟。具體的按鍵和文字取決於電腦的韌體版本。選擇「先試用作業系統而不格式化」的選項。測試Wi-Fi、聲音、顯示解析度、睡眠/喚醒功能、鍵盤、觸控板以及任何對您工作至關重要的周邊。從USB啟動的即時會話速度可能較慢,因此建議僅用於檢查基本相容性,而非評估最終效能。

啟動畫面上的「試用無限作業系統」選項
首先選擇「試用」選項,這樣就可以在不覆蓋 Debian 安裝的情況下測試硬體。

如果關鍵組件無法正常運作,請先查看發行版的硬體指南,並在擦除任何資料之前考慮更換目標裝置。 USB 試用版僅用於相容性檢查,無法保證安裝後所有裝置都能完美運作。

5. 檢查目標磁碟後再進行安裝

準備替換 Debian 系統時,請選擇重新格式化選項,並仔細確認安裝程式顯示的磁碟。此操作會破壞現有資料:所選磁碟上的作業系統、應用程式和檔案都將被刪除。如果您有多個硬碟,請斷開任何不需要修改的硬碟。在安裝完成之前,請保持已驗證的備份硬碟斷開連線。

啟動畫面上的「使用 Endless OS 重新格式化您的電腦」選項
重新格式化選項會取代目標電腦上的現有系統;請僅在驗證備份和所選磁碟後使用此選項。

完成安裝程式的提示,建立新的使用者帳戶,並等待首次啟動和初始設定完成。安裝過程中請勿中斷磁碟寫入或斷電。對於目前特定裝置的步驟,請遵循發行版的官方安裝指南,不要假設每個版本的介面都相同。

6. 恢復用戶資料並重新安裝應用程式

系統啟動成功後,重新連接備份驅動器,並將個人檔案複製到相應的資料夾中。僅恢復您識別且需要的應用程式資料。透過新系統支援的軟體介面或軟體包格式重新安裝桌面應用程式。在基於 OSTree 的桌面環境中,Flatpak 通常用於桌面應用程序,但不同發行版提供的可用應用程式、權限和整合方式有所不同。

檔案管理器顯示備份磁碟機上的「文件」資料夾,旁邊是新的「主資料夾」。
系統安裝完成後,將備份磁碟機中的個人資料夾複製到新的主目錄中。

如果您在 Debian 系統上記錄了 Flatpak 應用,請將該清單與新系統的軟體目錄進行比較。僅重新安裝您仍然使用的應用,然後逐一開啟並確認它們可以存取所需的檔案和裝置。該命令flatpak list --app可以幫助您檢查新系統上安裝了哪些 Flatpak 應用程式。

在 Linux 終端機中,於提示符號處輸入 flatpak list 即可。
在新的桌面上重新安裝應用程式後,可以使用 Flatpak list 命令來查看應用程式。

7. 驗證機器是否已啟動進入 OSTree 部署狀態

在新安裝的系統上開啟終端並運行:

ostree admin status

在已啟動的 OSTree 系統上,此指令會列出部署,並以星號標示目前已啟動的部署。 OSTree 手冊指出,在未啟動的 OSTree 系統上執行此命令會​​傳回錯誤。如果該命令不可用或報告系統未從 OSTree 啟動,請勿推斷您先前安裝的 Debian 軟體包導致 Debian 不可更改;請檢查作業系統文件和安裝結果。另請參閱官方的OSTree 管理狀態手冊頁面。

終端機已準備好執行 ostree admin status 指令
安裝完成後執行 ostree admin status 指令,檢查可用的部署並確定已啟動的部署。

如果您需要專門訂製的 Debian OSTree 鏡像呢?

這是一個作業系統工程項目,而不是桌面系統轉換。首先使用一台一次性虛擬機器或備用計算機。建立完整的 Debian 檔案系統樹,確保其遵循 OSTree 規範,整合 initramfs 和引導程序,確定哪些資料應放在 `/etc/desi/`、`/etc/desi/`/etc和/var`/ etc/desi/` 目錄下,/home並設計軟體包和更新如何作為新的提交提交。在將鏡像部署到日常工作站之前,測試升級、中斷更新、硬體支援和回滾功能。

OSTree 的官方指南解釋說,對現有發行版進行適配需要對檔案系統佈局、啟動整合、系統使用者以及軟體套件管理器行為做出決策。其專案概述中提到了一些面向 Debian 的工具和範例,但指出 Garden Linux OSTree 鏡像建構器只是一個尚未達到生產就緒狀態的範例。請將這些軟體倉庫視為工程參考,而非即插即用的遷移工具。對於大多數 Debian 桌面用戶而言,安裝一個維護良好的基於 OSTree 的發行版才是獲取該模型的更安全、更易於維護的方式。

遷移完成後,請驗證機器是否正常啟動,確認部署列表,重新連接備份,並在刪除任何剩餘的舊資料副本之前測試您的重要應用程式。最終結果是在 OSTree 管理的桌面系統上完成安裝,但這是一個全新的作業系統部署,並恢復了用戶資料——而不是直接轉換原始的 Debian 根系統。

留下評論

修復 Ubuntu GNOME 中 tracker-miner-3 導致的 CPU 使用率過高問題

修復 Ubuntu GNOME 中 tracker-miner-3 導致的 CPU 使用率過高問題

了解為什麼 tracker-miner-fs-3 在 Ubuntu GNOME 中會佔用大量 CPU 資源,如何檢查索引狀態、減少可搜尋位置以及安全地重建 Tracker 索引。

如何在啟用 BitLocker 的情況下雙啟動 Ubuntu 24.04 和 Windows 11

如何在啟用 BitLocker 的情況下雙啟動 Ubuntu 24.04 和 Windows 11

了解 Ubuntu 24.04 何時可以與 BitLocker 雙啟動、如何保護您的復原金鑰以及安全的相同磁碟機或不同磁碟機安裝路徑。

如何將 Pardus Linux 用戶端加入 Active Directory 網域

如何將 Pardus Linux 用戶端加入 Active Directory 網域

使用 Pardus Domain Joiner 將 Pardus Linux 加入 Active Directory。檢查 DNS 和時間,安裝 CLI,使用 SSSD 加入,並驗證網域登入存取權限。

如何設定 Pardus Image Creator 進行自訂作業系統部署

如何設定 Pardus Image Creator 進行自訂作業系統部署

了解 Pardus Image Writer 的功能、安裝方法以及如何安全地將經過驗證的自訂 ISO 映像部署到 USB 隨身碟。內容包括建置和測試指南。

修正 SLES 啟動時「載入核心模組失敗」的問題

修正 SLES 啟動時「載入核心模組失敗」的問題

透過尋找錯誤模組、修正啟動配置,並在需要時重建 initramfs,來診斷和修復 SLES 上的 systemd-modules-load.service 故障。

如何使用 OSTree 將 Debian 桌面遷移到 Immutable OS

如何使用 OSTree 將 Debian 桌面遷移到 Immutable OS

了解為什麼安裝軟體包就無法使 Debian 成為 OSTree 不可變系統,然後安全地遷移到 OSTree 桌面或規劃自訂 Debian 鏡像。

修復 Ubuntu 24.04 中 Wayland 下觸控板手勢無法運作的問題

修復 Ubuntu 24.04 中 Wayland 下觸控板手勢無法運作的問題

透過檢查 GNOME 設定、libinput 事件、更新和擴充功能來修復 Ubuntu 24.04 Wayland 上缺少的三指觸控板手勢。

How to Configure a PipeWire Audio Output Switching Script on Debian

How to Configure a PipeWire Audio Output Switching Script on Debian

Create a reliable PipeWire output toggle script on Debian with wpctl. Switch between speakers, Bluetooth, USB, or HDMI sinks without hard-coding IDs.

如何在 HamoniKR 作業系統上透過 CUPS 設定印表機

如何在 HamoniKR 作業系統上透過 CUPS 設定印表機

使用 CUPS 在 HamoniKR OS 上設定 USB 和網路印表機。新增佇列,選擇免驅動 IPP 或特定型號的驅動程序,設定預設值,並列印測試頁。

如何在 Ubuntu 上使用 Cgroups 限制進程的 CPU 和記憶體使用量

如何在 Ubuntu 上使用 Cgroups 限制進程的 CPU 和記憶體使用量

在 Ubuntu 上使用 systemd cgroups 來限制指令或服務的 CPU 時間和記憶體使用量。比較瞬態作用域、持久限制和關鍵權衡。