【问题标题】:Create a sparse file创建稀疏文件
【发布时间】:2014-10-03 08:39:05
【问题描述】:

我尝试了lseekdd if=/dev/urandom seek=7 bs=4096 count=2 of=fwh,它们在我的电脑上不起作用。 ls -lks 结果是: 44 -rw-rw-r-- 1 guangmu guangmu 36864 Aug 10 18:19 fwh.

我尝试了rm 文件reboot,甚至通过debugfs 清理了 fwt 使用的块。这些都没有帮助。

我的文件系统是 ext4,操作系统是 ubuntu 14.04。这是sudo tune2fs -l /dev/sda5的结果:

tune2fs 1.42.9(2014 年 2 月 4 日) 文件系统卷名: 最后安装于:/ 文件系统 UUID:e051336c-6a7a-4683-9c24-1230676170b1 文件系统幻数:0xEF53 文件系统修订号:1(动态) 文件系统特性: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize 文件系统标志:signed_directory_hash 默认挂载选项:user_xattr acl 文件系统状态:干净 错误行为:继续 文件系统操作系统类型:Linux 索引节点数:34594816 块数:138359808 保留块数:6917990 免费块:109566416 免费索引节点:33280312 第一个区块:0 块大小:4096 片段大小:4096 保留的 GDT 块:991 每组块数:32768 每组片段:32768 每组索引节点数:8192 每组 inode 块:512 弹性块组大小:16 文件系统创建时间:2014 年 1 月 20 日星期一 20:56:20 最后安装时间:2014 年 8 月 11 日星期一 11:08:31 最后写入时间:2014 年 8 月 11 日星期一 11:08:30 安装数:387 最大安装数:-1 最后检查:2014 年 1 月 20 日星期一 20:56:20 检查间隔:0() 终身写入:743 GB 保留块 uid:0(用户 root) 保留块 gid:0(组根) 第一个索引节点:11 索引节点大小:256 所需的额外尺寸:28 所需的额外尺寸:28 日志索引节点:8 第一个孤立节点:18877404 默认目录哈希:half_md4 目录哈希种子:780cc1b8-1fa1-4751-9385-270b563b29cd 日志备份:inode 块

我是不是做错了什么?

【问题讨论】:

    标签: linux file


    【解决方案1】:

    不,这是正确的。你有seeked(或可能寻求?)fwh 中有 7 个 4096 字节的块,然后向其写入 2 个 4096 字节的块。因此,您会期望 fwh 包含 9 个 4096 字节的块,即 36,864 字节 - 与您的完全一样。

    还是我错过了什么?你期待什么?

    【讨论】:

    • 根据APUE Section 3.6,如果我lseek超出了文件的末尾,就会产生一个稀疏文件,它实际占用的块应该小于文件大小。但是它在我的电脑上不起作用。我lseek 7 个块并写了 2 个块,块大小=4096,ls -lks44 -rw-rw-r-- 1 guangmu guangmu 36864 Aug 10 18:19 fwh。更详细的可以看"how-to-create-a-file-with-file-holes",在我的电脑上也没用。
    • 好的。我正在使用不支持稀疏文件的 OSX HFS+ 文件系统,所以我的是正确的。你使用什么文件系统,你的块大小是多少? df -g <filesystem of fhw> 和/或 fstyp -v /dev/dsk/something
    • 当您获得 FS 类型和块大小时,您能否删除文件,重新运行 dd 命令并重新运行 ls -lks 命令并发布结果?最好通过“编辑您的原始问题”而不是在Comments 中完成所有这些操作。谢谢。
    • 我编辑了我的问题,并根据您的建议进行了尝试,但结果没有改变。谢谢。@MarkSetchell
    • 这很奇怪。您的块大小为 4096,而您的 dd 命令已导致在磁盘上分配 44 个块,而您希望它是 2 个块,或者最多为 9 个。我会尝试将 seek 设置为 0 进行一些实验,8,64,256,1024 看看分配的块数是如何变化的,看看是不是直线关系或者是怎么回事。
    【解决方案2】:

    这是我的粗心。:(

    /home 挂载为 ecrpyptfs,不支持稀疏文件。

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2011-04-30
      • 2022-06-16
      • 2017-12-16
      • 2017-04-21
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多