Omarchy 如何安全重置并转交一台已使用过的电脑
【免费下载链接】omarchyBeautiful, Modern & Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy
当你准备卖掉、转送或出借一台装过 Omarchy 并已经用了一段时间的电脑时,需要把机器恢复到"刚装完系统"的状态:删掉你的账户、个人文件、安装过的软件和机器身份,让新主人从零开始走一遍首次启动设置。Omarchy 为此提供了内置的工厂重置(factory reset):在 Omarchy 菜单里执行Setup > Reset Computer,或在终端运行sudo omarchy-system-factory-reset。本文按"前置检查 → 执行重置 → 验证转交结果"的顺序,说明如何完成这个操作,以及哪些情况下应该改用全新安装。
重置会清除什么,不能保证什么
执行重置后,机器会被恢复到安装时留下的基线快照(@factory)状态,文档与重置脚本(bin/omarchy-system-factory-reset)确认以下内容会被清除:
- 所有用户账户和
/home下的全部内容; - 安装以来你安装的全部软件包和对系统做过的改动;
- 机器身份:网络连接、SSH host keys、
machine-id、tailscale/iwd/NetworkManager 的连接状态等。
确认界面还会明确提示一句限制(原文):
Note: on disks without encryption this is deletion, not secure erasure.
也就是说:
- 未加密的磁盘:重置只是删除数据,不是安全擦除。脚本说明中提到
fstrim在 SSD 上会有一定帮助,但如果你需要"数据不可恢复"这种确定性,应该用blkdiscard加重装,或者直接重新安装。 - 加密的磁盘:重置会把 LUKS 卷重新换密钥(re-key),换的是口令而不是卷密钥——释放出来的磁盘空间对持有原始口令且能直接访问裸设备的人仍然可读。脚本注释给出的建议是:需要确定性时改用
cryptsetup reencrypt或重装系统。
因此第一步不是点重置,而是判断这台机器上的数据是否敏感:如果敏感,优先选择全新安装,而不是重置。
前置检查:这台机器是否允许重置
重置依赖三个条件,缺一个就无法完成:
机器必须是从 Omarchy ISO 安装的。重置的原理是恢复安装器在安装后立刻拍摄的
@factory基线快照。脚本注释指出该快照由 Omarchy Quattro 安装器拍摄;从更早版本升级上来、或以其他方式安装的机器没有这个基线。此时脚本会直接终止并显示:This machine has no factory snapshot to reset to. ... Reinstall from the Omarchy ISO to make this machine resettable.解决办法只有一个:从 Omarchy ISO 重装。
根文件系统必须是标准 Omarchy Btrfs 布局(根在
subvol=@)。菜单里的 Reset Computer 条目也只在根分区是 Btrfs 时才出现(见 default/omarchy/omarchy-menu.jsonc 中setup.reset的when条件):如果你在Setup菜单下找不到 Reset Computer,说明当前系统不满足布局要求,重置不可用。加密安装需要准备好当前的磁盘解密口令。重置过程中会要求你输入当前口令来授权 LUKS 换密钥,输错会提示
That passphrase does not unlock ... Try again.并让你重试。
执行重置
主路径是菜单操作:
- 打开 Omarchy 菜单,进入Setup > Reset Computer。
- 弹出确认界面,列出将被永久清除的内容(所有用户账户与
/home、安装以来的软件包和系统改动、机器身份)。 - 按提示输入
reset确认(输入其他任何内容会提示Reset not confirmed.并取消)。 - 加密安装会在此时要求输入当前磁盘加密口令,用于授权换密钥。
- 脚本在后台完成"暂存"工作:克隆
@factory快照为新根、清除其中残留的账户与身份、把旧根移到@omarchy-old-*等待下次启动时删除,并从工厂系统重建引导文件。日志写入/var/log/omarchy-system-factory-reset.log(权限 600,需用sudo查看)。
等价的命令行入口是:
sudo omarchy-system-factory-reset菜单入口最终调用的就是这条命令(脚本自身会提权),两者行为一致。
暂存完成后界面显示:
Reset staged. The wipe finishes on the next boot.
并询问是否立即重启。选"Reboot now"。如果选择稍后重启,注意脚本给出的警告:此时不要继续正常使用这台机器——这期间做的任何改动都会丢失。真正的清除动作由首次启动时的收尾服务(bin/omarchy-system-factory-reset-finish)完成。
重启后发生什么
重启后系统按顺序做两件事,新主人无需你参与:
- 收尾清除:
omarchy-system-factory-reset-finish服务在早期启动阶段删除旧根子卷@omarchy-old-*,重建空的@home与@log子卷,并执行fstrim。如果无法重建@home,它会中止并在下次启动重试——脚本注释强调:无法重建@home的清除等于没有清除,卖家数据会留在机器上。 - 首次启动设置向导:清除完成后,机器以和全新安装完全一样的状态进入 tty1 上的用户设置表单(omarchy-provision-owner.service),新主人输入自己的用户名、密码等信息完成建号。加密安装还会在此阶段把 LUKS 从临时口令换钥到新主人的口令(bin/omarchy-provision-owner),成功后删除暂存的自动解锁密钥文件;若换钥失败,脚本会恢复自动解锁并在下次启动重试,而不是带着未完成的状态放行。
一个值得注意的防护:用户设置服务带有ConditionPathExists=!/var/lib/omarchy/provisioning/wipe-pending条件,也就是说只要清除还没完成,设置向导就不会出现,系统会先重试清除。转交的机器要么进入首次启动向导,要么继续重试清除,不会停留在"半清除"状态直接开机。
验证转交结果
按文档给出的成功条件判断:
- 重启后进入首次启动设置向导("The next boot asks for a new user, exactly like a fresh install"),说明重置完成,机器可以交给新主人,由对方输入自己的名字、密码和加密口令。
- 卖家侧如需排查暂存阶段的报错,查看
/var/log/omarchy-system-factory-reset.log(UKI 重建、用户移除等步骤都记录在其中)。 - 不要混淆两种机制:快照恢复(
omarchy-snapshot restore)只恢复根文件系统、不恢复/home(见 manual/47-system-snapshots.md),它用于回滚系统更新,不能当作转交前的清理手段;转交必须走工厂重置。
什么情况下应改用全新安装
文档明确给出的两类情况,重置不能替代重装:
- 机器没有安装磁盘加密,而你要清除的数据是敏感的——重置只是删除,不是安全擦除,敏感数据应全新安装;
- 即使有加密,如果你需要取证级别的数据不可恢复(例如磁盘曾长期承载高度敏感内容),重置的换钥不覆盖卷密钥层面的残留,应选择
cryptsetup reencrypt或重装。
此外,机器不是从 Omarchy ISO 安装的(没有@factory基线)时,重置入口本身不可用,重装是唯一路径。
【免费下载链接】omarchyBeautiful, Modern & Opinionated Linux项目地址: https://gitcode.com/GitHub_Trending/om/omarchy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考