使用 partclone 备份磁盘分区

2018 年 3 月 14 日 ImportNew

(点击上方公众号,可快速关注)


来源: lujun9972,

lujun9972.github.io/blog/2018/03/08/使用partclone备份磁盘分区/


在linux中,最常用的 block level 备份工具应该非 dd 莫属了。 然而用 dd 做磁盘备份有一个不好的地方就是太费空间,磁盘多大,生成的备份文件就有多大。


partclone 跟 dd 类似,也是一款 block level 的备份工具,因此使用它你无需担心会破坏磁盘中 acls 或 selinux labels 这一类特殊的文件权限。


但是跟 dd 相比, partclone 能够识别大多数常见的文件类型,只备份磁盘中用到的那些block,从而大大减少备份所耗的空间。


目前 partclone 支持的文件系统格式包括ext2, ext3, ext4, hfs+, reiserfs, xfs, jfs, ntfs, fat(12/16/32), exfat。


对每种文件系统 partclone 都提供了对应的 partclone.<fs> 对应。比如备份 ext4 文件系统则使用 parclone.ext4 进行备份。 对于不支持的文件系统, partclone 也提供了 partclone.dd 来备份。


安装partclone


archlinux上可以直接使用pacman来安装:


sudo pacman -S partclone --noconfirm


备份磁盘分区


在备份磁盘分区之前,请先确保被备份的分区需要先卸载。不过如果你是用的 lvm ,那么可以创建一个逻辑卷的 live snapshot,因此可以不受此限制。


下面这个例子,我把安装好的orangepilite做个备份。


将orangepilite断电后,推出TF卡,然后插入读卡器中,插入电脑的USB接口。然后执行


sudo partclone.ext4 -c -s /dev/sdb1 -o /mnt/orangepilite.pcl


其中:


-c

表示clone一个备份

-s

指定clone的源

-o

指定保存的镜像文件

你会发现,虽然TF卡是8G,但是产生的orangepilite.pcl只有1.3G


[lujun9972@T520 lujun9972]$ ls -lh /mnt/orangepilite.pcl 

-rw------- 1 root root 1.3G 3月   8 21:23 /mnt/orangepilite.pcl


不过更多的时候,我们会对镜像文件压缩存储,我们可以让 partclone 与 gzip 连用实现这一点


sudo bash -c "partclone.ext4 -c -s /dev/sdb1 |gzip -c -9 >/mnt/orangepilite.pcl.gz"


最后产生的备份文件只有454M


[lujun9972@T520 lujun9972]$ ls -lh /mnt/orangepilite.pcl.gz 

-rw-r--r-- 1 root root 454M 3月   8 21:34 /mnt/orangepilite.pcl.gz


相比之下,用 dd 备份后压缩的大小为5.4G!


[lujun9972@T520 mnt]$ sudo bash -c "dd if=/dev/sdb1 | gzip -c -9 >/mnt/orangepilite.dd.gz"

记录了15205152+0 的读入

记录了15205152+0 的写出

7785037824 bytes (7.8 GB, 7.3 GiB) copied, 601.261 s, 12.9 MB/s

[lujun9972@T520 mnt]$ ls -l /mnt/orangepilite.dd.gz 

-rw-r--r-- 1 root root 5791589654 3月   8 21:49 /mnt/orangepilite.dd.gz

[lujun9972@T520 mnt]$ ls -lh /mnt/orangepilite.dd.gz 

-rw-r--r-- 1 root root 5.4G 3月   8 21:49 /mnt/orangepilite.dd.gz


从备份还原


从备份还原很简单


sudo partclone.ext4 -r -s /mnt/orangepilite.pcl -o /dev/sdb1


这里 -r 表示还原(restore),然后把上面备份的 -s 和 -o 参数值反过来就是了。


若备份的是压缩过的文件,则只需要运行


sudo bash -c "gzip -c -d /mnt/orangepilite.pcl.gz | partclone.ext4 -r -o /dev/sdb1"


看完本文有收获?请转发分享给更多人

关注「ImportNew」,提升Java技能

登录查看更多
0

相关内容

【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
数据库之架构:主备+分库?主从+读写分离?
架构文摘
8+阅读 · 2019年4月23日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
已删除
AI科技评论
4+阅读 · 2018年8月12日
刚开始学编程?这几款小工具能让你事半功倍
浅谈浏览器 http 的缓存机制
前端大全
6+阅读 · 2018年1月21日
Arxiv
4+阅读 · 2020年3月27日
Arxiv
7+阅读 · 2018年12月26日
Arxiv
11+阅读 · 2018年4月25日
Arxiv
6+阅读 · 2018年4月24日
Arxiv
3+阅读 · 2018年2月12日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
数据库之架构:主备+分库?主从+读写分离?
架构文摘
8+阅读 · 2019年4月23日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
已删除
AI科技评论
4+阅读 · 2018年8月12日
刚开始学编程?这几款小工具能让你事半功倍
浅谈浏览器 http 的缓存机制
前端大全
6+阅读 · 2018年1月21日
Top
微信扫码咨询专知VIP会员