[Product manager face to face] Q&A | deepin 25用户常见问题解答——磐石不可变系统篇
Tofloor
poster avatar
deepin小助手
Super Moderator
OM
2025-04-25 11:30
Author

随着 deepin 25 系列版本的发布,我们收到众多社区伙伴围绕「磐石不可变系统」特性的深度探讨与宝贵建议。为回应大家的热切期待,本篇将聚焦这一革新性设计的核心逻辑与实践场景,从特性解读、使用技巧到高频疑问,希望能够解决大家对磐石不可变系统的一些困惑和疑问。

image.png


Q1:为什么要引进磐石不可变系统?

旧系统的核心组件(如/usr)缺乏底层保护机制,可以被轻易删除或修改,存在极大安全隐患;此外旧版备份与回滚机制也存在效率低且操作繁琐的问题,一旦出现系统故障可能面临数据丢失风险。

基于对系统安全性和使用便捷性的双重考量,故而决定在 deepin 操作系统中引入磐石不可变系统,提供“只读保护”、“原子更新”、“快照管理”、“无忧还原”等功能。


Q2:什么是“原子更新”?

原子更新可以理解为系统更新的「全有或全无」法则:即更新操作要么完全成功,要么回滚至原状态,确保不会出现部分更新的状态,避免系统异常。

与原子更新相配套的是回滚机制:若在更新后无法正常启动,它可以通过启动时选择旧的系统镜像回滚到之前的版本,从而恢复正常的系统运行状态。


Q3:什么是“快照管理”?

系统会在更新时自动创建快照,记录当前系统的状态,用户也可以通过手动操作或利用备份还原工具来创建当前系统的快照。如果遇到软件安装失败或配置错误,只需一键恢复到之前的快照点,即可瞬间回到正常状态。

目前快照的管理范围有 /usr,/etc,/opt,/boot,/var,使用快照管理功能可以快速对这些部分或全部内容进行备份,不涉及用户数据。

注:磐石系统的快照管理范围仅包含系统文件,配置文件和部分 /var 目录中的重要文件,用户数据不包含在内,创建或回滚快照时,用户数据均不受影响。


Q4:什么是“无忧还原”?

“无忧还原”是指系统能够识别用户的修改内容,并在下一次重启时选择全部丢弃或部分丢弃,达到还原的效果。

典型适用场景:

  • 临时外借电脑或用于共享场景时,开启无忧还原可确保他人对系统的任何修改(如安装软件、更改设置)在重启后自动消失,保护隐私安全;
  • 开发者需测试高危操作(如执行 sudo rm -rf /--no-preserve-root 等命令)时,开启此功能可避免「手滑误删」导致的不可逆后果,重启后系统自动回归安全状态。

Q5:什么是“只读保护”?

磐石不可变系统在默认情况下,对关键系统目录(如 /usr、/bin、/lib 等)实施了严格的保护措施,这些目录被挂载为只读文件系统。

无论是恶意软件还是误操作,都无法对系统核心文件造成破坏,杜绝因系统文件损坏导致的系统异常。


Q6:作为想要“折腾”系统的开发者,要如何关闭磐石系统的“只读保护”?

在磐石不可变系统开启“只读保护”功能的情况下,用户无法对其进行任何修改操作。

即使尝试使用 root 权限进行写操作,系统也会拒绝并提示“只读文件系统”错误,有效防止用户或恶意软件对系统关键文件的意外或恶意修改。

若您想要关闭“只读保护”,请参考以下命令(执行完命令后,需重启系统才可以生效)。

  • deepin 25 Alpha 及后续版本
sudo deepin-immutable-writable enable -d /usr
  • deepin 25 Preview
sudo deepin-immutable-ctl disable-system-protect enable

注:关闭系统保护后,系统中 /usr 目录会以读写的模式进行挂载,用户可通过 root 修改 /usr 中的内容。

磐石不可变系统并不推荐使用者关闭系统保护功能,即使关闭保护,当您再次开启时,期间的修改可能会被还原,这取决于具体的命令。


Q7:如何重新开启磐石系统的“只读保护”?

若您想要重新开启磐石系统的“只读保护”,请参考以下命令,命令将在重启后生效。

  • deepin 25 Alpha 及后续版本
deepin-immutable-writable disable
  • deepin 25 Preview
 deepin-immutable-ctl disable-system-protect disable

Q8:如何正确地更新磐石不可变系统?

您始终可以通过「控制中心」进行系统升级,这也是最推荐的更新方式。

通过控制中心升级时,还将额外提供还原点的创建和更新异常中断默认恢复到备份版本的功能。

此外,若您目前正在使用 deepin 25 Preview,可以通过以下命令升级至 Alpha 版本:

deepin-immutable-ctl ota upgrade

若您正在使用 deepin 25 Alpha,ota 子命令被废除,系统仍然保持 apt/dpkg 的管理逻辑,您可以执行 apt dist-upgrade 完成系统升级。


Q9:磐石不可变系统是否会影响 deb 等格式软件包的安装与运行?

若您安装的是deb包,由于磐石系统接管了 apt, dpkg 等命令,因此无需关闭只读保护功能,可直接安装应用。

但对于其他格式的软件包(.run,.bundle等),由于涉及到修改 /usr 等只读目录,则需要先关闭系统保护功能后方可安装。


Q10:备份还原占用过多磁盘空间如何处理?

磐石不可变系统提供了快照创建的相关命令,平均创建一次快照约增加 200MB 的存储占用空间。

此外也提供支持查询历史快照信息,加上 -j 参数即可查询并方便解析,大家可以实现自定义脚本删除历史快照,避免磁盘空间的过多占用。


以上就是 deepin 25「磐石不可变系统」使用过程中用户反馈较为集中的典型问题,希望能为大家提供有效参考。如果您在使用中遇到本文未覆盖的问题,欢迎在评论区留言补充。

此外我们还在社区论坛中收集到了许多富有价值的建议:比如期待磐石系统向「无感读写」体验升级、提供清晰的备份节点管理、对可能破坏系统的高危操作增加预警提示等。这些需求均已纳入产品迭代规划,我们会持续推动优化落地。

由于设备型号、硬件配置、操作习惯等差异,部分用户可能会遇到个例场景问题,如果以上方案无法解决您遇到的问题,欢迎大家在论坛发帖提问,会有社区产品研发和热心用户第一时间响应。

内容基于磐石技术交流会整理:活动公告:共筑磐石系统—deepin 25 技术交流会(已结束)

以用为本.png

Reply Favorite View the author
All Replies
3 / 3
To page
electricface
deepin
2025-05-07 10:47
#41
.

我也遇到了这个问题,我无法正常安装docker相关组件

系统是单分区时,关闭系统保护功能失效问题。

表现:

日志 /var/log/boot.log 中有如下报错信息:

Error: failed to trigger writable: failed to mount fstab: command { /usr/bin/mount -t none -o defaults,bind,rw /root/sysroot/boot /root/boot } failed, error: exit status 255, stderr: mount: mounting /root/sysroot/boot on /root/boot failed: No such file or directory

问题原因:

这是方案调整带来的问题。
根分区下 sysroot/boot 之前是目录,后面变成了一个指向 /boot 的符号链接文件。

程序修复方案:

如果 /sysroot/boot 不是目录,则不在 deepin-immutable-wrtiable 的 trigger 过程中处理 /sysroot/boot 相关的挂载。后续开发者会通过系统更新推送修复。

手工修复方案:
修改 /etc/fstab 文件,注释掉文件中的这一行:

/sysroot/boot /boot none defaults,bind,rw 0 0

在这行的开头加 # 符号表示注释。
然后重启电脑。

Reply View the author
3 / 3
To page