You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建未分配硬盘镜像时权限报错及仅备份已用空间的技术咨询

创建未分配硬盘镜像时权限报错及仅备份已用空间的技术咨询

嗨,我来帮你一步步解决遇到的权限问题,同时满足你仅备份已用空间的需求——毕竟全量备份不仅费时间还占空间,确实没必要:

一、先搞定dd权限报错的问题

你遇到的permission is denied是因为访问/dev/sda这类系统块设备需要管理员权限,另外你的命令还有个容易踩坑的小错误:

  • 必须在命令前加sudo获取root权限;
  • 你写的of=dev/sdb/file.img少了开头的斜杠,更关键的是不能直接把镜像文件写到裸硬盘/dev/sdb上——这会覆盖硬盘的分区表,彻底破坏目标盘的数据!你得先把/dev/sdb上的某个分区挂载到本地目录,比如:
    # 创建挂载点
    sudo mkdir /mnt/backup
    # 挂载目标盘的分区(假设是/dev/sdb1,可通过sudo fdisk -l确认)
    sudo mount /dev/sdb1 /mnt/backup
    
    修正后的dd命令(还加了进度显示和稀疏文件优化):
    sudo dd if=/dev/sda of=/mnt/backup/file.img conv=sparse status=progress
    
    其中conv=sparse会把源盘的空块转化为稀疏文件,大幅减少镜像占用的空间。

二、仅备份已用空间的更高效方案

虽然dd加conv=sparse能优化,但如果源盘的空块不是零填充的,还是会备份冗余数据。更推荐用专门的磁盘备份工具,只备份分区里的已用空间:

1. 使用partclone(单分区备份)

这是专门针对分区的轻量备份工具,只备份已用数据:

  • 先安装工具(Debian/Ubuntu系):
    sudo apt install partclone
    
  • 用sudo fdisk -l查看/dev/sda上的分区(比如/dev/sda1),然后执行备份:
    # 如果你是NTFS分区用partclone.ntfs,ext4就用partclone.ext4,对应你的文件系统
    sudo partclone.ntfs -d -s /dev/sda1 -o /mnt/backup/sda1.img
    

2. 使用fsarchiver(多分区批量备份)

如果需要备份多个分区,fsarchiver更合适,它会自动跳过空块,同时支持压缩:

  • 安装工具:
    sudo apt install fsarchiver
    
  • 备份指定分区(比如/dev/sda1和/dev/sda2):
    sudo fsarchiver savefs /mnt/backup/hdd_backup.fsa /dev/sda1 /dev/sda2
    

三、配合testdisk恢复的小提示

后续要用testdisk恢复分区的话,建议先单独备份一下源盘的MBR(分区表信息),避免操作失误:

sudo dd if=/dev/sda of=/mnt/backup/mbr.img bs=512 count=1

如果后续分区表修复出问题,可以用这个MBR镜像恢复:

sudo dd if=/mnt/backup/mbr.img of=/dev/sda bs=512 count=1

备注:内容来源于stack exchange,提问作者Mahmoud Sobeih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:30:33