简介
UOS 磐石系统管理工具,提供软件包安装命令兼容、快照管理、无忧还原、系统备份回滚、增量更新升级功能。
安装
UOS默认提供此工具,对应软件包名:deepin-immutable-ctl。
使用
deepin-immutable-ctl 支持以下子命令:admin、snapshot、upgrade、help。
uos@uos-PC:~$ deepin-immutable-ctl -h
deepin-immutable-ctl -h
This tool can be used to install extended applications, configure writable directories, snapshot management and other functions
Usage:
deepin-immutable-ctl [flags]
deepin-immutable-ctl [command]
Available Commands:
admin Manage a host immutable system booted with ostree
help Help about any command
snapshot Manage snapshots in the system.
upgrade Upgrade system.
Flags:
-h, --help help for deepin-immutable-ctl
-s, --immutable-status Check the system if the immutable system
-j, --json Show command output in JSON format
-v, --verbose Show verbose output
-w, --wait Wait for the lock file to be released
-W, --wait-boot Wait for the boot lock file to be released
-t, --wait-timeout string Timeout for waiting for the lock (example: 10m, 30s, 1h; negative value means wait forever) (default "10m0s")
Use "deepin-immutable-ctl [command] --help" for more information about a command.1.子命令
| 子命令 | 描述 | 说明 |
| admin | 系统管理 | 支持系统备份和部署 |
| snapshot | 快照管理 | 支持快照的创建,删除,重命名,查询,回滚等操作 |
| upgrade | 升级管理 | 支持增量更新升级 |
2.Flags
| Flags | 说明 | 备注 |
| -h,—help | 命令帮助 | 查询命令的使用选项和示例,所有命令及其子命令均支持此 flag |
| -s,—immutable-status | 查询当前是否处于不可变的系统环境中 | 固定输出格式为”Immutable mode: [true/false]” |
| -j,—json | 以 JSON 格式输出内容,便于调用方解析 | 大部分查询和管理命令均支持此 flag |
| -v,—verbose | 输出详细日志 | 日志将输出到终端和syslog,默认不输出到终端 |
| -w,—wait | 当有多个命令的实例在运行时,尝试等待其他命令执行完毕 | 默认直接退出,可通过 -w 选项 |
3.系统管理
使用说明
uos@uos-PC:~$ deepin-immutable-ctl admin -h
Manage a host immutable system booted with ostree
Usage:
deepin-immutable-ctl admin [flags]
deepin-immutable-ctl admin [command]
Available Commands:
deploy Deploy the changes to the local OSTree repository
exec Exec dpkg or apt command
file-op Modify files in the immutable directory
rollback Perform a rollback to set the current backup system as default
status Show status
undeploy Delete the deployment at the specified index
Flags:
-h, --help help for admin
Global Flags:
-j, --json Show command output in JSON format
-v, --verbose Show verbose output
-w, --wait Wait for the lock file to be released
-W, --wait-boot Wait for the boot lock file to be released
-t, --wait-timeout string Timeout for waiting for the lock (example: 10m, 30s, 1h; negative value means wait forever) (default "10m0s")
Use "deepin-immutable-ctl admin [command] --help" for more information about a command.命令介绍
| 功能 | 命令 | 说明 |
| 备份当前系统并部署备份系统 | sudo deepin-immutable-ctl admin deploy --backup | 备份当前系统,并部署备份系统 |
| 刷新当前系统的修改层 | sudo deepin-immutable-ctl admin deploy —refresh | 合并当前修改层内容,并创建新的修改层 |
| 确认当前成功完成系统升级 | sudo deepin-immutable-ctl admin deploy —finalize | 升级成功进入系统后修改默认引导项 |
| 进入备份系统后进行回退 | sudo deepin-immutable-ctl admin rollback | 进行系统回退操作 |
| 备份当前系统并部署 | sudo deepin-immutable-ctl admin deploy | 备份当前系统版本,并部署到下次启动的状态. |
| 查询部署版本状态 | deepin-immutable-ctl admin status | 按照索引列出当前的所有部署版本,将始终保持和grub引导顺序一致 |
示例
查询部署信息
deepin-immutable-ctl admin status查看部署详细调试信息
deepin-immutable-ctl admin status -d <option>此命令用于显示系统部署的详细调试信息。-d(或 --debug)参数支持多种选项,用于查看不同维度的部署详情。
-d 参数选项:
| 选项值 | 说明 |
| booted | 显示当前启动的部署详情 |
| deploy:<index> | 显示指定索引位置的部署详情 |
| expired | 显示已过期部署的详情 |
| all | 显示所有部署(包括启动的、所有索引位置和过期的)详情 |
| modified | 显示各个部署的修改层目录的状态信息 |
比如:
deepin-immutable-ctl admin status -d booted
deepin-immutable-ctl admin status -d deploy:0
deepin-immutable-ctl admin status -d deploy:1
deepin-immutable-ctl admin status -d expired
deepin-immutable-ctl admin status -d all
deepin-immutable-ctl admin status -d modified系统升级流程
# 升级前备份
sudo deepin-immutable-ctl admin deploy --backup# 升级
sudo apt update & sudo apt dist-upgrade# 升级后配置
sudo deepin-immutable-ctl admin deploy —refresh# 之后重启,验证第一项启动项进入系统能否使用,如果能正常使用,则执行
sudo deepin-immutable-ctl admin deploy —finalize# 如果不能正常使用了,可以选择回退,启动到备份系统中执行
sudo deepin-immutable-ctl admin rollback4.快照管理
使用说明
uos@uos-PC:~$ deepin-immutable-ctl snapshot -h
Manage snapshots in the system.
Usage:
deepin-immutable-ctl snapshot [flags]
deepin-immutable-ctl snapshot [command]
Available Commands:
create Create a snapshot based on specified information.
delete Delete the snapshot with the specified id.
list List all snapshots.
modify Modify the name and description of a snapshot
rollback Roll back to the snapshot with the specified id.
show Display details of a specified snapshot.
Flags:
-h, --help help for snapshot
Global Flags:
-j, --json Show command output in JSON format
-v, --verbose Show verbose output
-w, --wait Wait for the lock file to be released
-W, --wait-boot Wait for the boot lock file to be released
-t, --wait-timeout string Timeout for waiting for the lock (example: 10m, 30s, 1h; negative value means wait forever) (default "10m0s")
Use "deepin-immutable-ctl snapshot [command] --help" for more information about a command.命令介绍
| 功能 | 命令 | 说明 |
| 创建快照 | sudo deepin-immutable-ctl snapshot create <快照名称> <快照描述> | 创建成功后将返回快照ID,这是快照的唯一标识身份,也可以通过 --list 或 --show 查询快照信息时看到。 |
| 删除快照 | sudo deepin-immutable-ctl snapshot delete <快照ID> | 删除已有快照 |
| 修改快照信息 | deepin-immutable-ctl snapshot modify <新的快照名称> <新的快照描述> | 修改已有快照的名称和描述信息 |
| 列出所有快照的信息 | deepin-immutable-ctl snapshot list | 支持-j | —json的选项,快照信息将以json格式进行输出。可列出所有快照信息 |
| 查询某个快照的信息 | deepin-immutable-ctl snapshot show <快照ID> | 支持-j | —json的选项,快照信息将以json格式进行输出。查询指定 ID 的快照信息 |
| 回滚快照 | sudo deepin-immutable-ctl snapshot rollback <快照ID> | 回滚至指定 ID 的快照 |
示例
创建
uos@uos-PC:~$ sudo deepin-immutable-ctl snapshot create "install fish" "开发环境搭建完成"Create success, snap ID: fa0042d280883166删除
uos@uos-PC:~$ sudo deepin-immutable-ctl snapshot delete fa0042d280883166修改
uos@uos-PC:~$ sudo deepin-immutable-ctl snapshot modify fa0042d280883166 “fish” “基础环境”查询
uos@uos-PC:~$ deepin-immutable-ctl snapshot list
ID Name Time Desc
fa0042d280883166 fish 2024-09-25 13:24:58 基础环境
247eb760f53c33a5 2 2024-09-25 13:25:18 2
uos@uos-PC:~$ deepin-immutable-ctl snapshot list --json | jq
{
"code": 0,
"message": "success",
"error": null,
"data": {
"version": 1,
"snapshot_list": [
{
"id": "90243ffb3d54d44d",
"name": "First backup",
"desc": "System initialization backup",
"time": "2024-11-19 06:00:01"
}
]
}
}
uos@uos-PC:~$ deepin-immutable-ctl snapshot show 90243ffb3d54d44d
ID : 90243ffb3d54d44d
Name: First backup
Time: 2024-11-19 06:00:01
Desc: System initialization backup回滚
uos@uos-PC:~$ deepin-immutable-ctl snapshot rollback 90243ffb3d54d44d5.无忧还原和关闭系统保护
注意:磐石系统并不推荐您关闭系统保护功能,因为这将使系统可能因为一些误操作,而导致系统无法启动、黑屏、反复重启等不可逆问题。您应确保自己具备足够的知识储备,以便在系统出现问题时能够手动修复.
使用说明
磐石系统具有系统不可变的特性,仅允许通过系统更新对系统组件进行修改。磐石系统默认情况下/usr目录为只读文件系统,用户不可直接通过命令添加、修改、删除这些目录中的内容,但在开发和调试场景下,通常有修改这些目录内容的需求,特提供关闭系统保护的功能,允许用户对/usr目录的读写行为。
uos@uos-PC:~$ deepin-immutable-writable -h
This tool is used to manage writable directories. you can use it to get status and enable/disable writable directories.
Usage:
deepin-immutable-writable [flags]
deepin-immutable-writable [command]
Available Commands:
disable Disable writable.
enable Enable writable.
help Help about any command
set Set writable config.
status Get writable config status.
Flags:
-h, --help help for deepin-immutable-writable
-j, --json output in json format
-r, --rootdir string set root dir (default "/")
Use "deepin-immutable-writable [command] --help" for more information about a command.命令介绍
| 功能 | 命令 | 说明 |
| 开启无忧还原功能 | sudo deepin-immutable-writable enable -c -a -C | 开启无忧还原功能,重启生效 |
| 关闭无忧还原功能 | sudo deepin-immutable-writable disable | 关闭无忧还原功能,重启生效 |
| 设置无忧还原白名单目录 | sudo deepin-immutable-writable set whitelist /etc | 设置无忧还原白名单目录,白名单目录中的修改内容在重启后不会丢弃 |
| 查询服务状态信息 | sudo deepin-immutable-writable status | 查看无忧还原功能功能开启状态以及白名单列表 |
| 关闭系统保护 | sudo deepin-immutable-writable enable | 关闭系统保护(重启修改内容不会丢失),/usr目录可写,重启生效 |
注意:开启或关闭此功能,都需要重启才能生效。
示例
开启无忧还原
uos@uos-PC:~$ sudo deepin-immutable-writable enable -c -a -C
uos@uos-PC:~$ reboot设置白名单
sudo deepin-immutable-writable set whitelist /etc,/home©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。