跳到主要内容

备份系统

通过脚本备份

危险

备份脚本不保证支持所有非官方系统、使用前请备份重要数据

我们提供了一个脚本,将您的操作系统备份 img 格式的镜像。

提示

该脚本仅在瑞莎官方系统进行充分测试。

该脚本不支持安卓系统

备份脚本允许备份正在运行的操作系统,也允许离线备份。

安装

在您的开发板上运行以下命令

curl -sL https://rock.sh/rockpi-backup -o rockpi-backup.sh
chmod +x rockpi-backup.sh

帮助

sudo ./rockpi-backup.sh -h
Usage:
sudo ./rockpi-backup.sh [-o path|-e pattern|-u|-m path]
-o Specify output position, default is $PWD.
-e Exclude files matching pattern for rsync.
-u Unattended, no need to confirm in the backup process.
-m Back up the root mount point, and support backups from other disks as well.

备份

提示

如果您需要将文件重命名或备份到指定目录请参考:备份到指定路径

在您的开发板板上运行以下命令,并根据提示进行操作。

sudo ./rockpi-backup.sh
信息
该命令大致会进行以下操作:
  1. 检查 root 权限
  2. 检查并安装依赖
  3. 读取运行系统内核名称,根据内核名设置文件名。
  4. 检查分区详情
  5. 将根路径挂载点设置为 /
  6. 寻找到与根路径相同磁盘的其他分区
  7. 安装自动扩容脚本到根分区
  8. 根据文件名创建磁盘文件
  9. 克隆非根分区
  10. 使用 rsync 同步根分区内容,并排除当前所输出的文件
  11. 清理与完成
您可能需要安装依赖,输入 y 自动安装依赖。
Welcome to rockpi-backup.sh, part of the ROCK Pi toolkit.

Enter rockpi-backup.sh -h to view help.
For a description and example usage, see the README.md at:
https://rock.sh/rockpi-toolbox

--------------------
Command not found: rsync, package required: rsync

Do you want to apt-get install the packages? [y/N]
安装完依赖后您会看到以下内容,输入 y 开始备份。
--------------------
Checking disk...
The backup file will be saved at /home/radxa/xxx.img
After this operation, 4560 MB of additional disk space will be used.

Do you want to continue? [y/N]
如果备份成功,您会看到以下内容。
Checking disk...
The backup file will be saved at /home/radxaxxx.img
After this operation, 4560 MB of additional disk space will be used.

Do you want to continue? [y/N] y
Create service...
Generate the base images. This might take some time.
0+0 records in
0+0 records out
0 bytes copied, 0.000508975 s, 0.0 kB/s
Copy other partition
31565312 bytes (32 MB, 30 MiB) copied, 1 s, 31.6 MB/s
65535+0 records in
65535+0 records out
33553920 bytes (34 MB, 32 MiB) copied, 1.064 s, 31.5 MB/s
Rebuild root partition...
Delete inappropriate partition and fix
Create new root partition...
Change part GUID
Change part Label
Change part type
Change attribute_flag
Mount loop device...
Format root partition...
Mounting...
Start rsync...

Number of files: 137,155 (reg: 112,451, dir: 10,850, link: 13,853, special: 1)
Number of created files: 137,154 (reg: 112,451, dir: 10,849, link: 13,853, special: 1)
Number of deleted files: 0
Number of regular files transferred: 112,406
Total file size: 4,588,642,152 bytes
Total transferred file size: 3,869,510,742 bytes
Literal data: 3,869,510,742 bytes
Matched data: 0 bytes
File list size: 4,718,099
File list generation time: 0.003 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 3,879,593,182
Total bytes received: 2,241,928

sent 3,879,593,182 bytes received 2,241,928 bytes 11,962,511.90 bytes/sec
total size is 4,588,642,152 speedup is 1.18

Backup done, the file is /home/radxa/xxx.img

备份到指定路径

备份脚本允许改变文件输出的位置。仅需加上 -o 参数即可。

命令参考:

sudo ./rockpi-backup.sh -o xxx.img # 进行重命名,不改变输出位置

sudo ./rockpi-backup.sh -o /mnt/sda1/ # 不进行重命名,改变输出位置

sudo ./rockpi-backup.sh -o /mnt/sda1/xxx.img # 进行重命名并改变输出位置
提示

您可以备份到外置存储

仅需要将外置存储挂载到某个路径下即可,例如: mount /dev/sda1 /mnt/sda1

排除文件

您可以使用一个或多个-e参数进行排除文件或文件夹。请使用绝对路径

所生成的镜像文件已自动排除。

脚本不会跨文件系统备份吗,即不会备份到您挂载的设备,故无需手动排除挂载点文件夹。

提示

-e 的排除语法与 rsync --exclude相同。

支持的文件系统

如果您使用的是官方提供的系统,该脚本通常是支持的。

如果您对分区进行修改,则需要满足以下条件:

提示

如果您满足以下条件,则非官方系统也可支持,包括但不限于x86, arm

如果您不满足以下条件,则可以通过 dd 进行全盘备份

警告

您所排除的文件大小依旧会计算到您总镜像大小中。但并不会复制到您所生成的镜像中。因为这会使计算文件大小变得十分复杂。

  1. 硬盘格式需要为 GPT

  2. 系统根分区应该在磁盘的末尾。(0扇区为开头)

  3. 根分区文件系统应该为 ext4

  4. 磁盘加密

  5. RAID

  6. LVM

  7. 使用systemd管理系统服务

通过 dd 进行全盘备份

警告

该方法仅允许离线备份

如果您将您所需要备份的系统安装在可移动介质上。

信息
  1. 非板载eMMC

    请使用 eMMC reader 转化为 USB

  2. SD卡

    请使用SD card reader 转化为 USB

  3. NVME

    请使用转接器转化为 USB

  4. 其他

将您的安装介质通过USB或其他方式连接到您的计算机,并执行以下操作。

dd if=/dev/sdx of=xxx.img bs=4M status=progress # /dev/sdx 替换为真实的设备路径 xxx.img替换为输出的文件名

恢复系统

通过上述方法生成的文件为正常可刷入的镜像,使用常规的安装系统方法即可。