我有点困惑于qcow2文件的真实大小。
ls -alh VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 VMs/ubuntu-mini.qcow2
du -h VMs/ubuntu-mini.qcow2
2,7G VMs/ubuntu-mini.qcow2我想将该文件复制到不同的分区(ext4)。看起来,这个命令实际上复制了21G,而不是我所期望的2,7G。现在,在新的位置,这两个命令(du和ls)向我展示了相同的大小- 21G。
du -h /media/HDD0/VMs/ubuntu-mini.qcow2
21G /media/HDD0/VMs/ubuntu-mini.qcow2
ls -alh /media/HDD0/VMs/ubuntu-mini.qcow2
-rw------- 1 root root 21G mar 31 23:15 /media/HDD0/VMs/ubuntu-mini.qcow2复制qcow2文件的正确方法是什么?"cp“命令中是否有开关,使其只复制2,7G?
发布于 2018-04-04 12:20:44
该文件是稀疏的,这意味着它包含一个或几个“漏洞”。当从洞内读取数据时,会返回零,但这些零不是存储在磁盘上,而是由文件系统生成的。
当存储大部分为零的大型文件时,此功能节省了实际的硬盘空间。ls实用程序将报告明显的文件大小,但du将显示文件的表观大小减去文件中漏洞的大小(即文件在磁盘上使用的空间)。
当您复制该文件时,cp将不会保留该文件的稀疏性,而零将填补这些漏洞。
在GNU系统上,如果漏洞足够大,在复制文件以保持稀疏性时,可以使用--sparse=auto或--sparse=always标志和cp。在某些BSD系统(至少OpenBSD)上,默认情况下,cp试图在稀疏文件中保留漏洞。
您还可以使用rsync和--sparse (-S)选项来复制文件。
请注意,即使用零(全部或部分)填充漏洞,结果文件在功能上将与原始文件等效,但将使用更多的实际磁盘空间。
https://unix.stackexchange.com/questions/435499
复制相似问题