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

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

如何创建一个大小为 10M 的文件,用 ext3 文件系统格式化它,然后将其挂载到 /media/fuse 中?

我尝试过

mkfs -t ext3 file

然后安装它

mount -t ext3 file /media/fuse

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

答案1

您的步骤是正确的,但是在将文件映像挂载为文件系统时,您必须-o loopmount命令中添加选项:

mount -t ext3 -o loop file /media/fuse

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

答案2

我尝试应用上一个答案中的步骤和评论。但仍然需要一些工作才能弄清楚,因此我为后来者添加了另一个答案。

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

  1. 使用例如创建固定大小的文件
    dd if=/dev/zero of=file bs=1000 count=100
    
    这将创建一个大小为 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/
    
    -o loop现在 该参数是可选的。
  3. 事后清理:
    sudo umount mounted_file/
    rmdir mounted_file/
    rm file
    

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

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

答案3

就我个人而言,我更喜欢使用truncate -s 10M filename(然后是 mkfs),因为 truncate 可以动态扩展,不像 fallocate 或 dd,而且还可以调整大小(或缩小),而不会使用 losetup 和 resize2fs 损坏数据。当然,它可以作为文件系统安装。

请参阅此处了解更多详细信息:https://unix.stackexchange.com/a/698656/346155

相关内容