Brave 数据复活记:重装系统后如何不丢标签页与扩展数据
重装 Windows 后,把浏览器数据从备份里拷回去,打开 Brave 却发现"因安全原因"丢了打开的标签页、固定标签页和扩展程序数据。本文基于 2026-08-26 与 2026-08-31 两轮实战(Default 完整恢复 + 另一个 Profile 扩展全丢后完整救回),讲清楚 Chrome/Brave 的数据机制、正确的备份/恢复姿势,以及所有试错后验证出的唯一正道。
一、先搞懂四个机制,你就成功了一半
机制 1:会话文件分两套,只有一套能救你
Chrome 系浏览器的标签页恢复依赖两类文件:
① 活动会话文件(会无辜失踪的那套) - User Data\Default\Current Session / Current Tabs - User Data\Default\Last Session / Last Tabs
这是"进行中会话"的实时快照。浏览器正常关闭时,会主动删掉它们——所以当你看到"备份里没有 Session 文件",不代表没救,而是浏览器最后一次是干净退出的(这恰恰是好事)。
② 会话恢复快照(真正救你命的那套) - User Data\Default\Sessions\Tabs_1389xxxxx(标签页状态,十几 MB) - User Data\Default\Sessions\Session_1389xxxxx(每个标签的数据) - User Data\Default\Session Storage\(表单、页面局部状态)
这套文件由"会话恢复系统"持续落盘,浏览器退出时不会删除,专门用于崩溃恢复和"继续上次会话"。备份时只要这套文件在,标签页就能救回来(含最后写盘时刻的状态)。多 profile 同理:Profile N\Sessions\ 也在。
机制 2:扩展注册在哪——Secure Preferences,不是 Preferences(实战修正)
扩展的注册(启用的扩展清单、安装时间、来源)在 Secure Preferences 文件的 extensions.settings 里,不在 Preferences 里。 这是最容易踩的认知误区:
| 文件 | 受保护? | 扩展注册 |
|---|---|---|
Preferences |
❌ 明文、可手改 | 只有 extensions.install_signature.ids(扩展 ID 的签名记录,不受 MAC 保护,可作恢复依据) |
Secure Preferences |
✅ 有 MAC 防篡改(protection.super_mac + 字段级 macs) | extensions.settings —— 扩展注册真正所在 |
Secure Preferences 的 MAC 用 Local State 里的 os_crypt 密钥计算。手改 Secure Preferences 任何一个受保护字段 → MAC 失效 → 浏览器丢弃整个受保护区(扩展注册清空,只剩内置扩展)→ 写回一份"干净"的文件。
机制 3:"安全原因"重置的真实触发条件(实战修正)
旧认知:"外部修改了 Preferences 文件 → 重置"。实测真正的触发条件是:Extensions\ 目录与 Secure Preferences 里的注册不一致:
- 目录里有"未注册"的扩展本体 = 疑似外部注入 → 整体重置(清空注册 + 删除整个 Extensions 目录内容)
- 注册了但本体目录缺失 = 疑似被破坏 → 同上
也就是说:把扩展本体拷进 Extensions\ 目录这个"标准操作",在注册已被清空的状态下反而会触发重置并删掉你刚拷进去的东西。 这是本次目标 Profile 恢复中反复被重置删目录的根因。
它重置什么、保留什么:
| 被重置/删除 | 被保留 |
|---|---|
extensions.settings 注册(只剩内置 PDF/Brave/应用商店) |
书签、历史、密码、Cookie(数据库文件,不受影响) |
Extensions\ 目录全部内容(扩展本体) |
Local Extension Settings\(多数情况保留) |
| 部分扩展的设置项 | IndexedDB\(实测数据完好) |
Sessions\ / Session Storage\(标签页快照) |
⚠️ 注意:扩展被"卸载"时(比如从 chrome://extensions 移除,或强制安装策略被移除)会连带删除Local Extension Settings和IndexedDB里该扩展的数据——这与"安全重置"不同,重置通常保留数据目录,卸载会删。所以卸载类操作前务必先备份数据目录。
机制 4:加密链——Local State 的密钥,重装后就换掉了
User Data\Local State 里保存着加密主密钥(os_crypt.encrypted_key,DPAPI 加密)。它保护: - Secure Preferences 的 MAC(防篡改校验) - 密码库 Login Data、Cookie 的解密
重装 Windows 后:DPAPI 上下文(用户 master key)随旧系统消失 → 备份里的 Local State 的 encrypted_key 解不开 → 浏览器静默生成新密钥并重写 Local State。后果:
- 备份里所有
Secure Preferences(旧密钥 MAC)→ 全部校验失败 → 首次启动各 profile 的扩展注册被逐 profile 重置(哪个 profile 先被打开就先重置哪个) - 备份里的密码库/Cookie(旧密钥加密)→ 无法解密,视为空库(新密钥下重新登录)
所以:重装后"从备份整体回拷 User Data"必然经历一次"安全原因"重置,扩展注册必丢。这不是操作失误,是机制使然。 书签/历史/标签页(不加密的 SQLite/快照)不受影响。
二、备份的正确姿势(事前,最重要)
- 完全退出浏览器(关闭所有窗口 + 托盘图标退出,确认
brave.exe无进程)。运行中备份会漏掉锁定的文件。 - 整体拷贝
User Data目录(9~10GB),绝不只拷Default:%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\ ← 整个目录里面包含:Local State、Default\及所有Profile N\、Sessions 快照、扩展本体与数据。 - 校验:拷贝后对比文件数与总大小(差 5% 以内正常,差 20% 以上有问题)。
- 不要修改任何文件,也不要做"精简"(例如裁剪备份时把 Brave 目录删掉——本次事故的伏笔就是裁剪备份时以为"已恢复"而删了 Brave 目录,事后只剩 原始备份包 里的副本)。
一句话:关浏览器、全量拷 User Data、一个字节都不要改、备份别裁剪。
三、恢复的正确姿势(事后,实战验证版)
第 0 步:认清现实
重装系统后从备份回拷,扩展注册必丢(机制 4)。目标不是"整体回拷免重置",而是:
- 恢复数据(LES / IndexedDB / Local Storage / Sessions——都不受 MAC 保护,可从备份任意合并)
- 重新安装扩展本体(唯一正道:Chrome 商店,见下)
第 1 步:恢复数据目录(任意合并,安全)
关闭浏览器后,从备份把缺失的数据目录拷回(robocopy 合并,只补不删):
Local Extension Settings\ ← 扩展设置/chrome.storage(重置会删部分,卸载会删全部)
IndexedDB\ ← 扩展数据库(站点/脚本数据等)
Local Storage\ ← 站点本地存储
Sessions\ + Session Storage\ ← 标签页快照(若当前已恢复会话可跳过)
不要碰 Secure Preferences(MAC 保护区)和 Extensions\(放未注册本体 = 触发重置)。
第 2 步:商店重装扩展(唯一正道)
扩展 ID 由 manifest 里的 key(公钥)派生(SHA256(key) 前 16 字节,每字节高低 nibble 映射 a-p,共 32 字符)。商店扩展的 ID 是稳定公开的 → 从商店重新安装,ID 必然与原来相同 → 已恢复的 Local Extension Settings / IndexedDB 数据自动挂载(Chrome 按 ID 找数据目录)。
操作(每个扩展): 1. 打开商店直链 https://chromewebstore.google.com/detail/<扩展ID> 2. 点「添加到 Brave」(或"添加至 Chrome") 3. 点 Brave 弹出的「添加扩展程序」确认框 ← 这一步只能手动点,任何自动化都点不了浏览器 UI 弹窗 4. 验证:打开扩展面板/设置页,没有欢迎页 = 数据完整挂载
商店安装 = 正常扩展(自动更新、无特殊状态)。ID 相同的商店版会直接挂载旧数据目录里的数据。
第 3 步:验证
chrome://extensions列表里扩展齐全、无"已损坏"标记- 打开每个扩展的设置页:配置/脚本/数据在(无欢迎页、无空白)
- 固定标签页:手动重新固定(防篡改保护区内,不值得硬碰)
四、本次实战的完整踩坑记录(目标 Profile 恢复全历程)
背景:8/28 恢复时 其余三个 profile 的扩展本体拷回了,目标 Profile 的 Extensions\ 漏拷(空目录)。8/31 第一次打开目标 Profile → 注册 10 条 vs 本体 0 个 → 触发重置 → 注册清空(只剩 2 个内置)+ 删空目录。用户看到"扩展记录消失"。
以下方案全部实测失败,勿再尝试:
| 方案 | 失败原因 |
|---|---|
把本体拷回 Extensions\ 目录 |
目录里有未注册扩展 = 注入嫌疑 → 整体重置并删掉刚拷入的目录 |
从备份直接覆盖 Secure Preferences(含完整注册) |
备份是旧系统密钥签的 MAC → 校验失败 → 注册被清(连内置之外全丢) |
手改 Secure Preferences(删掉本体缺失的注册条目再写回) |
同 MAC 问题:手改 → MAC 失效 → 被丢弃 |
--load-extension 命令行加载 |
会话级:写入的注册 state 字段缺失(loc=8 但 state=None),重启后运行时即失效,扩展全部消失 |
| chrome://extensions 里"加载已解压的扩展程序" | 可行但:① 文件选择器是原生对话框,CDP 无法自动化;② UNPACKED 状态带"开发者模式"标签、不自动更新;③ 商店版才是正常状态 |
ExtensionInstallForcelist 注册表策略静默安装 |
装上了,但移除策略 = 卸载扩展 + 连带删除该扩展的 LES/IndexedDB 数据目录(数据删了才发现) |
最终成功路径:数据目录从备份恢复(LES + IndexedDB)→ 用户手动商店安装 5 个扩展 → 数据自动挂载(扩展数据完整回归)。全程唯一需要用户动手的就是点确认弹窗。
其他实战细节: - 固实/非固实压缩包 提取单文件用 UnRAR.exe e -y -idq <rar> <精确路径> <dest>\,python subprocess 传参避免 shell 转义地狱;路径前缀匹配必须单反斜杠 - 验证运行时扩展状态用 CDP:brave.exe --profile-directory="Profile N" --remote-debugging-port=9333 --remote-allow-origins=*,然后在 chrome://extensions 页面上下文执行 chrome.management.getAll()(商店页面等普通页面没有该权限,返回空不代表没装) - install_signature.ids(Preferences 里,不受保护)是扩展 ID 的可靠参照,可用于核对应恢复哪些扩展
五、常见的错误做法(避雷表·扩充版)
| 错误 | 后果 |
|---|---|
只拷 Default 不拷 Local State |
加密链断裂 → 密码/扩展数据全军覆没 |
| 浏览器开着时备份/恢复 | 锁定的文件没拷全 → 恢复后档案残缺 |
手改 Preferences 想"开启恢复" |
Preferences 本身可改,但改动不会生效在受保护区;真正禁区是 Secure Preferences |
手改 Secure Preferences |
MAC 失效 → 注册被清(只剩内置) |
把扩展本体拷进 Extensions\(注册已丢时) |
触发"注入"重置 → 目录被删 |
用 --load-extension 长期恢复 |
重启即失效 |
| 用 Forcelist 策略装完就移除 | 扩展 + 数据目录一起被卸载删除 |
| 恢复后立即删除备份 | 万一重置/卸载删了数据,没有后悔药(先确认扩展无欢迎页再删) |
| 备份裁剪时删掉浏览器目录 | 事后想恢复没有"原始快照"可用(保留原始 RAR) |
六、一图流速查
备份:关浏览器 → 整体拷 User Data → 校验大小文件数 → 存档(别裁剪)
重装后恢复:
1) 关浏览器 → 合并拷回数据目录(LES/IndexedDB/Local Storage/Sessions)
⚠️ 不要碰 Secure Preferences 和 Extensions\
2) 打开浏览器(扩展注册已被重置,只剩内置 —— 正常现象)
3) 逐个商店重装扩展(https://chromewebstore.google.com/detail/<扩展ID>)
→ 点「添加到 Brave」→ 点确认弹窗「添加扩展程序」(必须手动)
4) 打开扩展设置页:无欢迎页、数据在 = 完成
确认一切正常 → 才删除备份
七、最后的碎碎念
浏览器数据是最珍贵的数字资产:书签是索引,密码是钥匙,标签页是"我还没读完的世界",扩展是生产力。重装系统前花十分钟按上面的姿势备份,重装后就不会经历"安全原因"四个字带来的心跳骤停。
记住四件事:Local State 必须一起拷;Secure Preferences 一个字节都别改;扩展注册必丢是机制使然,数据目录才是要救的;扩展本体用商店重装(ID 不变 → 数据自动挂载),确认弹窗手动点。
评论