1.概要
2.内容
在Ubuntu ARM64系统上使用partclone.ext4进行镜像备份和还原的步骤如下:
1. 安装partclone
sudo apt update
sudo apt install partclone
2. 备份系统分区(镜像)
语法:
sudo partclone.ext4 -c -s /dev/sdXn -o /path/to/backup.img
-c: 创建镜像(copy)-s /dev/sdXn: 源分区(如/dev/sda1)-o: 输出镜像文件路径
示例:
sudo partclone.ext4 -c -s /dev/sda1 -o /mnt/backup/system_backup.img
3. 还原系统分区
语法:
sudo partclone.ext4 -r -s /path/to/backup.img -o /dev/sdXn
-r: 还原镜像(restore)-s: 镜像文件路径-o: 目标分区(如/dev/sda1)
示例:
sudo partclone.ext4 -r -s /mnt/backup/system_backup.img -o /dev/sda1
4. 关键注意事项
-
设备路径确认
使用lsblk或fdisk -l确认分区路径(如/dev/sda1),避免误操作。 -
目标分区未挂载
还原前确保目标分区未挂载:sudo umount /dev/sdXn -
文件系统大小匹配
如果目标分区小于备份分区,需先调整分区大小(使用parted或gparted)。 -
校验和验证(可选)
生成校验文件:sudo partclone.ext4 -c -s /dev/sda1 -o backup.img --checksum_file=backup.img.sha256验证镜像:
sudo partclone.ext4 -v -s backup.img --checksum_file=backup.img.sha256 -
压缩备份(可选)
使用-z压缩镜像(减少空间占用,但增加CPU负载):sudo partclone.ext4 -c -s /dev/sda1 -o backup.img.gz -z 9
5. 自动化脚本示例
#!/bin/bash
# 定义变量
SOURCE_PARTITION="/dev/sda1"
BACKUP_DIR="/mnt/backup"
BACKUP_FILE="$BACKUP_DIR/system_backup_$(date +%Y%m%d).img"
# 创建备份
sudo partclone.ext4 -c -s "$SOURCE_PARTITION" -o "$BACKUP_FILE" --checksum_file="$BACKUP_FILE.sha256"
# 验证备份
if sudo partclone.ext4 -v -s "$BACKUP_FILE" --checksum_file="$BACKUP_FILE.sha256"; then
echo "备份成功且校验通过!"
else
echo "备份失败或校验不通过!"
exit 1
fi
6. 恢复后操作
- 调整文件系统大小(如果目标分区更大):
sudo resize2fs /dev/sdXn - 更新引导配置(如使用GRUB):
sudo update-grub
常见问题
- Q: 恢复后系统无法启动?
- 确保引导分区(如
/dev/sda1)正确恢复。 - 检查文件系统UUID是否冲突(使用
blkid查看)。
- 确保引导分区(如
- Q: 镜像文件损坏?
- 使用
--checksum验证。 - 定期测试镜像恢复流程。
- 使用
通过以上步骤,您可以在Ubuntu ARM64系统上安全地使用partclone.ext4进行镜像备份和还原。操作前请务必确认设备路径,并在测试环境中验证流程!
3.关联链接
4.关联知识
1.设备布局
topeet@topeet:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 29.3G 0 disk
└─sda1 8:1 1 29.3G 0 part /media/topeet/433C-3B14
mmcblk1 179:0 0 29.1G 0 disk
├─mmcblk1p1 179:1 0 4M 0 part
├─mmcblk1p2 179:2 0 4M 0 part
├─mmcblk1p3 179:3 0 64M 0 part
├─mmcblk1p4 179:4 0 128M 0 part
├─mmcblk1p5 179:5 0 32M 0 part
└─mmcblk1p6 179:6 0 28.9G 0 part /
mmcblk0 179:32 0 28.9G 0 disk
├─mmcblk0p1 179:33 0 4M 0 part
├─mmcblk0p2 179:34 0 4M 0 part
├─mmcblk0p3 179:35 0 64M 0 part
├─mmcblk0p4 179:36 0 128M 0 part
├─mmcblk0p5 179:37 0 32M 0 part
└─mmcblk0p6 179:38 0 28.7G 0 part
mmcblk0boot0 179:64 0 4M 1 disk
mmcblk0boot1 179:96 0 4M 1 disk
zram0 254:0 0 0B 0 disk
根据您的设备布局(lsblk 输出),以下是针对 Ubuntu ARM64 系统的 partclone.ext4 镜像与还原方案:
1. 确认分区信息
- 当前系统分区:
/dev/mmcblk1p6(挂载在/,28.9G) - 外部存储:
/dev/sda1(挂载在/media/topeet/433C-3B14,29.3G)
2. 备份系统分区(镜像)
场景:备份根分区到外部存储
# 卸载外部存储(如果已挂载)
sudo umount /dev/sda1 || true # 忽略未挂载的错误
# 创建备份镜像
sudo partclone.ext4 -c -s /dev/mmcblk1p6 \
-o /media/topeet/433C-3B14/system_backup.img \
--checksum_file=/media/topeet/433C-3B14/system_backup.img.sha256
注意事项:
- 风险:备份正在运行的根分区可能导致镜像不一致,建议通过以下方式降低风险:
- 进入 Recovery Mode(重启时按
ESC或Shift键选择)。 - 挂载分区为只读:
sudo mount -o remount,ro /dev/mmcblk1p6。 - 执行备份后恢复为可写:
sudo mount -o remount,rw /dev/mmcblk1p6。
- 进入 Recovery Mode(重启时按
3. 还原系统分区
场景:将镜像还原到目标分区(如 /dev/mmcblk0p6)
# 卸载目标分区(如果已挂载)
sudo umount /dev/mmcblk0p6 || true
# 还原镜像
sudo partclone.ext4 -r -s /media/topeet/433C-3B14/system_backup.img \
-o /dev/mmcblk0p6
# 验证镜像完整性
if sudo partclone.ext4 -v -s /media/topeet/433C-3B14/system_backup.img \
--checksum_file=/media/topeet/433C-3B14/system_backup.img.sha256; then
echo "还原成功且校验通过!"
else
echo "还原失败或校验不通过!"
exit 1
fi
4. 还原后操作
- 调整文件系统大小(如果目标分区更大):
sudo resize2fs /dev/mmcblk0p6 - 更新引导配置(如果目标分区是新的根分区):
sudo mount /dev/mmcblk0p6 /mnt sudo chroot /mnt update-grub exit - 修改启动顺序(如果需要从新分区启动):
- 进入 U-Boot 或 BIOS,调整启动设备为
/dev/mmcblk0。
- 进入 U-Boot 或 BIOS,调整启动设备为
5. 完整脚本示例
#!/bin/bash
# 定义变量
SOURCE_PARTITION="/dev/mmcblk1p6"
BACKUP_DEVICE="/dev/sda1"
BACKUP_DIR="/media/topeet/433C-3B14"
BACKUP_FILE="$BACKUP_DIR/system_backup_$(date +%Y%m%d).img"
TARGET_PARTITION="/dev/mmcblk0p6"
# 卸载外部存储
sudo umount "$BACKUP_DEVICE" || true
# 创建备份
sudo partclone.ext4 -c -s "$SOURCE_PARTITION" \
-o "$BACKUP_FILE" \
--checksum_file="$BACKUP_FILE.sha256"
# 验证备份
if sudo partclone.ext4 -v -s "$BACKUP_FILE" \
--checksum_file="$BACKUP_FILE.sha256"; then
echo "备份成功且校验通过!"
else
echo "备份失败或校验不通过!"
exit 1
fi
# 卸载目标分区(如果已挂载)
sudo umount "$TARGET_PARTITION" || true
# 还原镜像
sudo partclone.ext4 -r -s "$BACKUP_FILE" -o "$TARGET_PARTITION"
# 调整文件系统
sudo resize2fs "$TARGET_PARTITION"
关键提示
- 分区对齐:确保目标分区(如
/dev/mmcblk0p6)已正确创建(使用fdisk或parted)。 - 启动测试:还原后建议通过 Live 环境 验证目标分区是否可启动。
- 数据安全:操作前务必确认设备路径,避免误覆盖关键分区。
如果有进一步需求(如自动化备份到网络存储),请提供更多细节!
1258

被折叠的 条评论
为什么被折叠?



