找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 1|回覆: 0

    HA 升級失敗打不開?三種還原路徑,照順序試

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    升級後打不開是最讓人心慌的狀況。
    九成的情況資料都還在,只是進不去而已。

    這篇按「從最不痛到最痛」排出三條路。



    動手之前:先確認是哪一種「打不開」


    • 網頁完全連不上(連線被拒絕) → HA 沒起來,走路徑 A
    • 網頁轉圈圈或 502 → 正在啟動中,先等 5 分鐘
    • 能登入但一堆實體不見 → 整合掛了,走路徑 B
    • 能登入但某個功能壞掉 → 不用還原,去看日誌


    先去看日誌,不要急著還原。

    路徑 A:安全模式 + 看日誌

    A-1. 用 SSH 或主機的螢幕看啟動日誌

    HAOS 的話,接螢幕鍵盤,在 ha 提示字元下:
    1. ha core logs
    2. ha core logs --follow
    複製代碼

    用 Docker 的話:
    1. docker logs -f homeassistant
    複製代碼

    錯誤通常在最後 30 行。找 ERRORTraceback

    最常見的三種:


    • 設定檔語法錯 —— 會明確指出哪個檔案第幾行
    • 某個自訂整合(HACS)不相容新版 —— 訊息會有那個整合的名字
    • 資料庫升級失敗 —— 會提到 recorder 或 migration


    A-2. 進安全模式

    安全模式會只載入核心,跳過所有自訂整合和大部分設定。
    1. ha core restart --safe-mode
    複製代碼

    進得去的話,代表問題出在自訂整合或設定,不是 HA 本身。

    然後把 custom_components 整個資料夾改名:
    1. mv /config/custom_components /config/custom_components.off
    複製代碼

    正常啟動看看。能起來就是 HACS 的某個整合有問題 ——
    把資料夾改回來,然後一個一個搬出去測(或者直接看日誌是哪一個)。

    A-3. 設定檔語法錯的話
    1. ha core check
    複製代碼

    它會告訴你哪裡錯。改完再重啟。

    如果是剛剛改的東西,把那段註解掉先讓系統起來,之後再慢慢修。



    路徑 B:還原備份

    前面都不行就還原。

    B-1. 從 UI 還原(能登入的話)

    設定 → 系統 → 備份,選一個升級前的備份 → 還原。

    可以選部分還原


    • 只還原 Home Assistant 設定 —— 保留附加元件和媒體,最快
    • 完整還原 —— 什麼都回到那個時間點


    建議先試部分還原,通常就夠了,而且快很多。

    B-2. 從命令列還原(登不進去的話)
    1. ha backups list
    2. ha backups restore <備份的 slug>
    複製代碼

    B-3. 降回舊版本(不還原資料)

    有時候問題只是新版有 bug,資料完全沒事:
    1. ha core update --version 2026.8.3
    複製代碼

    這招很有用,因為它只換程式碼,設定和資料庫都留著。

    但要注意:如果新版已經升級過資料庫結構,
    降版可能會讓 recorder 出問題。這種情況日誌會講,
    真的發生就把 home-assistant_v2.db 改名讓它重建
    (會失去歷史資料,但長期統計會保留)。

    路徑 C:最後手段 —— 重灌但保留設定

    這個是系統層面壞掉(SD 卡損毀、檔案系統錯誤)才走。

    步驟:


    • /config 整個目錄想辦法複製出來(插到別台電腦讀,或用 USB)
    • 重新燒錄 HAOS
    • 初次設定時選「從備份還原」
    • 沒有備份的話,先完成初始設定,再把 /config 蓋回去


    /config 裡面最重要的是:


    • .storage/ 資料夾 — 實體註冊表、裝置、使用者、整合設定,這個最重要
    • configuration.yaml、automations.yaml、scripts.yaml、scenes.yaml
    • secrets.yaml
    • custom_components/
    • home-assistant_v2.db(歷史資料,不要也沒關係)


    .storage 是很多人漏掉的。
    只複製 YAML 檔的話,你會發現所有整合都要重新設定、實體 ID 全部跑掉。

    怎麼讓自己以後不用走這段

    1. 升級前手動做一次備份

    HA 會自動備份沒錯,但自己按一次比較安心,而且知道時間點。

    2. 備份要下載到別的地方

    備份存在同一台機器上,機器壞了就一起沒了。設定自動上傳:


    • Samba Backup 附加元件 → 傳到 NAS
    • Google Drive Backup 附加元件 → 傳到雲端
    • HA 2025 之後內建的備份位置設定也能指定網路位置


    3. 不要一看到更新就按

    我的習慣是等 x.1 或 x.2
    每個月的 x.0 都是月初出,通常一兩週內會有幾個修正版。

    4. 先看重大變更

    設定 → 更新 → 點那個更新 → 看發行說明
    Breaking Changes 那段一定要掃過,看有沒有你在用的東西。

    例如 2026.9 就有幾個:UniFi Protect 需要 7.2.105 以上、
    吸塵器的 battery_level 屬性被移除、Z-Wave JS 的鎖具使用者管理改成只有管理員能操作。

    5. 有測試環境更好

    我自己是在 NAS 上跑一個 Docker 版的 HA,
    拿正式的備份還原上去,先升級那一台試。

    這個投資不大(一個容器),但是真的救過我兩次。

    ---

    最後講一個心態的事:會壞是正常的

    HA 每個月一個大版本,整合有幾千個,不可能不出事。
    重點不是「不要壞」,是壞了能十分鐘內回到能用的狀態

    而那個能力,完全取決於你的備份做得好不好。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 10:31 , Processed in 0.080448 second(s), 24 queries .

    快速回覆 返回頂部 返回列表