

使用partclone备份磁盘分区
source link: https://www.lujun9972.win/blog/2018/03/08/%E4%BD%BF%E7%94%A8partclone%E5%A4%87%E4%BB%BD%E7%A3%81%E7%9B%98%E5%88%86%E5%8C%BA/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用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
resolving dependencies... looking for conflicting packages... [0;1mPackages (1)[0m partclone-0.2.89-2 [0;1mTotal Installed Size:[0m 1.48 MiB [0;1mNet Upgrade Size: [0m 0.00 MiB [1;34m::[0;1m Proceed with installation? [Y/n] [0m (0/1) checking keys in keyring [[1;33mc[m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m] 0% (1/1) checking keys in keyring [----------------------] 100% (0/1) checking package integrity [[1;33mc[m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m] 0% (1/1) checking package integrity [----------------------] 100% (0/1) loading package files [[1;33mc[m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m] 0% (1/1) loading package files [----------------------] 100% (0/1) checking for file conflicts [[1;33mc[m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m] 0% (1/1) checking for file conflicts [----------------------] 100% (0/1) checking available disk space [[1;33mc[m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m] 0% (1/1) checking available disk space [----------------------] 100% [1;34m::[0;1m Processing package changes... [0m(1/1) reinstalling partclone [[1;33mc[m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m[0;37mo[m[0;37m [m[0;37m [m] 0% (1/1) reinstalling partclone [----------------------] 100% [1;34m::[0;1m Running post-transaction hooks... [0m(1/1) Arming ConditionNeedsUpdate...
备份磁盘分区
在备份磁盘分区之前,请先确保被备份的分区需要先卸载。不过如果你是用的 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"
Recommend
-
95
df命...
-
88
磁盘分区fdisk-l列出磁盘列表现在我添加一块n重新创建新的分区p列出来w保存d删除这几个比较常用输入n后会出现2个选项p是主分区e是扩展分区使用的是mbr分区,超过2个T的大小就不能用fdisk而且最多只能划分4个主分区想划分多个分区的话,先划分3个主分区,然后划分一...
-
55
fdisk是一个高危操作,不要轻易试用和使用。管理磁盘分区表-b指定扇区大小最小是512其他数值必须是512的倍数,最大是4096-c指定兼容性模式的参数是nondos,如果想修改参数,那么选项和参数之间不能有空格-c=dos系统不建议修改参数-C指定柱面系统不建议使用-h获取帮...
-
117
fdisk命令 fdisk是Linux下硬盘的分区工具,是一个非常使用的命令;但是fdisk只能划分小鱼2T的分区。格式: fdisk [-l] [设备名称], 选项只有-l;fdisk -l 后面...
-
74
问与答 - @Linna - 买了新电脑,百度搜索太乱了,于是给客服打电话,直接甩给我一个说明,然而按照说明进行不下去了,卡在了:打开 CMD 命令提示符输入命令,百度 CMD 命令符在哪里,然而并没有找到,按照客服给的说明,完了
-
54
Parted Magic是基于Linux的小型发行版本(40MB左右),专门实现磁盘分区和管理功能。Parted Magic可通过ISO光盘、U盘或PXE网络启动,启动后进入图形界面可运行GParted等工具软件进行硬盘的分区设置;Parted Magic与L...
-
24
一、服务器环境配置:1、检查磁盘分区:: 近期项目有个服务从虚拟机迁移到物理机,服务磁盘用户自己做了raid为3.8TB2块磁盘配置Raid1然后又3.8TB6块磁盘配置了Raid5,安装操作系统使用的sda3.8TB空间的raid1已分区。3.8TB*6的磁盘sdb共20TB的空间需要分区,并...
-
17
Manually restoring raw partclone partition image to a VMWare February 6, 2011 This post sums up how to manually restore a parti...
-
13
在 21 世纪,我们往往认为数据存储是理所当然的。我们有许多存储介质,相对价格便宜,而且有许多不同...
-
14
Linux...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK