如何创建文件并将其挂载为文件系统?

joh*_*nny 19 filesystem mount

如何创建大小为 10M 的文件,使用 ext3 文件系统对其进行格式化,然后将其安装在 /media/fuse 中?

我试过

mkfs -t ext3 file
Run Code Online (Sandbox Code Playgroud)

然后安装它

mount -t ext3 file /media/fuse
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为它说该文件不是块设备。有谁能够帮助我?

enz*_*tib 16

您的程序是正确的,但是当将文件映像安装为文件系统时,您必须将-o loop选项添加到mount命令中:

mount -t ext3 -o loop file /media/fuse
Run Code Online (Sandbox Code Playgroud)

此外,该-t ext3选项不是严格必需的,因为mount可以自动确定文件系统类型。

  • 现在 `mount` 不再需要 `-o loop` 选项,它可以自己理解我们需要它。 (8认同)
  • 他是对的,但忘记添加创建文件的方法`dd if=/dev/zero of=file bs=1024 count=10240` 这是创建10Mb文件的方法......然后你可以用`格式化它mkfs.ext3` (5认同)

小智 10

我尝试应用之前答案中的步骤和评论。仍然需要一些工作才能弄清楚,所以我为我之后的人添加了另一个答案。

以下过程创建一个名为 的本地文件file并将其安装到名为 的本地目录中mounted_file

  1. 使用例如创建固定大小的文件
    dd if=/dev/zero of=file bs=1000 count=100
    
    Run Code Online (Sandbox Code Playgroud) 它创建一个 100 乘以 1000 字节 (100 kB) 的文件,其中填充了零。
  2. 使用所需的文件系统对其进行格式化,创建一个目录,挂载它,并获得使用它的权限(所有者是 root):
    mkfs.ext3 file
    mkdir mounted_file/
    sudo mount -o loop file mounted_file/
    sudo chmod -R 777 mounted_file/
    
    Run Code Online (Sandbox Code Playgroud) 如今该-o loop参数是可选的。
  3. 事后清理:
    sudo umount mounted_file/
    rmdir mounted_file/
    rm file
    
    Run Code Online (Sandbox Code Playgroud)

用于mkfs.ext3 -n file查看将创建的文件系统的详细信息。如果需要,例如可以更改块大小 ( -b block-size) 和索引节点数量 ( )。-N number-of-inodes

请注意,我们也可能会耗尽 inode(文件和目录的总数)而不是磁盘空间,这通常没有明确传达。