概述
通过 Clonezilla 保存的源镜像在恢复时很难保证目标磁盘与源磁盘是一致的大小,比如网上购买的microSD卡,即使都是标注为16GB,不同厂商的容量还是会有差别。当目标磁盘比源磁盘小的时候,即使是小那么几个字节,也会提示 Destination disk is too small!
,导致无法正常恢复。本文就此问题提供一个可行的解决方案。
- 文中举例的源磁盘大小是15.9G,目标磁盘大小是15.6G
- Clonezilla 版本是 2.8.1-12
主要思路
- 修改源镜像的分区表
- 使用
-icds
参数跳过大小检查 - 使用
-k1
参数自动创建合适的分区表
修改源镜像分区表
进入到镜像目录,可以看到有以下3个与镜像分区相关的文件:
- sdb-pt.parted
- sdb-pt.parted.compact
- sdb-pt.sf
通过fdisk -l
先查看到自己目标磁盘的实际大小,15.6G,30540800
个扇区
修改 sdb-pt.parted
下图是源镜像的大小参数
其中,扇区大小是 512
字节,总共31116288
个扇区,总共15931539456
字节也就是15.9G的,使用fdisk -l
查看了目标自盘的扇区情况,是30540800
个扇区,总共15636889600
字节也就是15.6G。所以根据目标磁盘的参数修改,如下图
修改 sdb-pt.parted.compact
源镜像设置
修改后的设置
修改 sdb-pt.sf
修改后的文件
注意:最后一行的End要比总扇区数少1,Size = End - Start + 1
使用-icds
参数跳过大小检查
按正常流程进入镜像恢复模式,过程中选择Expert
专家模式,然后如下图选中 -icds
参数
使用 -k1
参数创建合适的分区
之后开始恢复,就可以恢复成功了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。