# 为什么迁移完成后，源端与目的端文件大小不一致？
#### 问题描述
- 迁移完成后，目的端的磁盘分区已使用大小与源端不一致，相差比较大。
- 迁移完成后，目的端文件大小与源端文件大小不一致。
 
#### 问题原因
当源端存在空洞文件时，迁移后目的端的文件大小可能比源端要小，这是因为Rsync传输空洞文件时，会自动处理空洞文件。当数据块所有字节都为0时，并不会写入磁盘，而是会生成一个空洞，这样目的端文件的实际大小就可能比源端的要小。
可参考[操作步骤]确认迁移前后文件是否一致。
![](https://support.huaweicloud.com/sms_faq/public_sys-resources/note_3.0-zh-cn.png)
空洞文件：在UNIX文件操作中，文件位移量可以大于文件的当前长度，在这种情况下，对该文件的下一次写将延长该文件，并在文件中构成一个空洞，这一点是允许的。它的原理是以简短的信息（元数据）表示空数据块，而不是在在磁盘上占用实际空间来存储空数据块。只有真实（非空）的数据块会按原样写入磁盘。
 #### 操作步骤
1. 查看源端文件的大小及实际占用磁盘空间，以/tmp/test-data.img文件为例。
   1. 执行如下命令，查看/tmp/test-data.img文件大小。 **ll /tmp/test-data.img**
      
   
   2. 执行如下命令，查看/tmp/test-data.img实际占用磁盘空间大小。
      **du -sh /tmp/test-data.img**
      图1查看源端文件大小   
      ![](https://support.huaweicloud.com/sms_faq/zh-cn_image_0187095060.png "点击放大") 
    
2. 迁移完成后，查看目的端对应文件大小，如[图2]所示，可以看出迁移完成后磁盘占用空间变小了。
   图2查看目的端文件大小   
   ![](https://support.huaweicloud.com/sms_faq/zh-cn_image_0187095070.png "点击放大") 
3. 分别在源端和目的端执行如下命令，计算文件的sha256值，以此来判断文件内容是否一致。 当源端与目的端文件的sha256值相同时，说明文件是一致的。
   **sha256sum** **/tmp/test-data.img**
   图3计算文件sha256值   
   ![](https://support.huaweicloud.com/sms_faq/zh-cn_image_0187094913.png "点击放大") 
 
