在Linux系统上快速创建大文件
作者: 分类:Linux 浏览(22) 2019-11-5

这是一个常见问题-尤其是在当今的虚拟环境中。不幸的是,答案并不像人们想象的那样简单。

dd是显而易见的首选,但dd本质上是一个副本,它迫使您写入每个数据块(因此,初始化文件内容)...而且初始化是占用大量I / O时间的方法。(想让它花费更长的时间吗?使用/ dev / random而不是/ dev / zero!然后您将使用CPU和I / O时间!)最后,dd是一个不好的选择(尽管本质上是dd VM“创建” GUI使用的默认值)。例如:

dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G

截断是另一种选择-可能是最快的...但这是因为它会创建“稀疏文件”。本质上,一个稀疏文件是磁盘上具有许多相同数据的部分,而底层文件系统实际上并没有真正存储所有数据,而是“假装”所有数据都在“欺骗”。因此,当您使用truncate为VM创建20 GB的驱动器时,文件系统实际上并没有分配20 GB,但是它作弊并说那里有20 GB的零,即使磁盘上只有一个磁道可能实际上(确实)正在使用。例如:

truncate -s 10G gentoo_root.img

fallocate是用于VM磁盘分配最终(也是最好的选择,因为它实际上“保留”(或“分配”了您正在寻找的所有空间,但它不会写任何东西。)当您使用fallocate创建20 GB虚拟驱动器空间时,您确实会得到20 GB文件(不是“稀疏文件”),并且您也不必费心向其中写入任何内容-这意味着实际上任何内容都可以包含在其中。那里-有点像全新的磁盘!)例如:

fallocate -l 10G gentoo_root.img
本文固定链接: http://www.codejie.net/6046.html