在 Linux 中,如何创建精简配置文件以便可以挂载它并在其上创建文件系统?

在 Linux 中,如何创建精简配置文件以便可以挂载它并在其上创建文件系统?

我正在构建一个为用户提供一定数量磁盘空间的系统。我这样做的方式是:

  • 使用 dd 创建文件
  • 在文件内创建一个 ext4 文件系统
  • 挂载文件并告诉用户程序使用挂载点作为其工作目录

我不想使用 Linux 配额系统,因为我不希望用户成为本地系统用户。

上述方法工作正常,但它浪费了空间,因为用户没有使用所有的限额,但整个限额已经被分配了。

是否有命令可以执行与 dd 相同的操作,但不会一次分配整个文件?所以我可以创建一个 20gb 的文件,当它安装时它会报告 20gb 的空间,但它只会物理占用已写入的内容?

答案1

您可以使用seek的参数dd来创建稀疏文件

dd if=/dev/zero of=filesystem.img  bs=1k seek=1024M count=1

将创建一个最大可达 1G 的文件,但仅占用必要的空间。

答案2

看一下稀疏文件秒。

dd if=/dev/zero of=file.img bs=1 count=0 seek=1024M

创建一个 1024Mb 的稀疏文件,可以将其格式化并挂载为文件系统。有关稀疏文件及其使用的更多信息,请参见这里

答案3

在 CentOS 中,您可以使用 qemu 工具,如下所示;

qemu-img create -f raw the_filename 5G

相关内容