在Linux系统上快速创建大文件
这是一个常见问题-尤其是在当今的虚拟环境中。不幸的是,答案并不像人们想象的那样简单。
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
您还感兴趣的文章
- Linux 查看磁盘空间
- Centos7 hostnamectl 设置主机名
- 在Debian 8上安装4.19.x内核
- 在 CentOS 8 上安装和配置Redis
- 在Ubuntu 16.04上备份,还原或传输MySQL / MariaDB数据库
- chattr 解决项目.user.ini权限删除不掉
- 在CentOS 6上使用WonderShaper限制流量
- [ Linux VPS ] Debian/Ubuntu/CentOS 网络安装/网络重装/纯净安装 一键脚本
- Linux查看端口占用情况,并强制释放占用的端口
- 在Arch Linux上使用Makepkg
- 在Arch Linux上构建软件包(包括AUR)
- 在Arch Linux上使用Devtools