AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 597011
Accepted
Pablo
Pablo
Asked: 2014-05-20 08:21:57 +0800 CST2014-05-20 08:21:57 +0800 CST 2014-05-20 08:21:57 +0800 CST

一个 10GB 的 VirutalBox 文件系统如何存储 11GB 的数据?

  • 772

我真的很困惑。为了用 GlusterFS 做一些实验,我用 VirtualBox 创建了两个虚拟机,运行 Ubuntu 12.04,每个都有 10GB 的存储空间。我写了一个脚本,在很多文件夹中创建了很多小文件。每个文件是 100k 的随机数据,由以下各项生成:

dd if=/dev/zero of=#{name} bs=1 count=0 seek=100K

将文件从一台机器复制到另一台机器时,收件人空间不足。这应该是不可能的,因为它们的大小相同,而且我没有在其中存储任何东西。试图找出问题所在,我发现了一个非常令人困惑的情况。这一切都在源机器上。

根据 df,我只使用了 26% 的空间:

root@revisionist:~# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/revisionist-root  9.2G  2.3G  6.5G  26% /
udev                          237M  4.0K  237M   1% /dev
tmpfs                          50M  292K   49M   1% /run
none                          5.0M     0  5.0M   0% /run/lock
none                          246M     0  246M   0% /run/shm
/dev/sda1                     228M   48M  169M  22% /boot

根据 du 的说法,我创建的文件的整个结构需要 772M:

root@revisionist:~# du -h files/
...
4.0K    files/3x/ey/hs
8.0K    files/3x/ey
508K    files/3x
772M    files/

这显然是错误的,因为该文件夹仅包含一个 100K 文件:

root@revisionist:~# ls -lh files/3x/ey/hs
total 0
-rw-r--r-- 1 root root 100K May 19 11:30 3xeyhst4lnkzg5abzeasiw.txt

如果我使用 du 定位该目录和文件,则数据显然是错误的:

root@revisionist:~# du -h files/3x/ey/hs/
4.0K    files/3x/ey/hs/
root@revisionist:~# du -h files/3x/ey/hs/3xeyhst4lnkzg5abzeasiw.txt
0   files/3x/ey/hs/3xeyhst4lnkzg5abzeasiw.txt

这使我找到了选项 --apparent-size ,该选项记录为:

--表观尺寸

打印外观尺寸,而不是磁盘使用情况;尽管表观大小通常较小,但由于(“稀疏”)文件中的孔、内部碎片、间接块等原因,它可能会更大

确实这看起来更好:

root@revisionist:~# du -h --apparent-size files/3x/ey/hs/3xeyhst4lnkzg5abzeasiw.txt
100K    files/3x/ey/hs/3xeyhst4lnkzg5abzeasiw.txt
root@revisionist:~# du -h --apparent-size files/3x/ey/hs
104K    files/3x/ey/hs

但是当我为整个结构运行它时,我得到了一个令人惊讶的结果:

root@revisionist:~# du -h --apparent-size files
...
104K    files/3x/ey/hs
108K    files/3x/ey
6.8M    files/3x
11G files

怎么可能是11G?这是怎么回事?只是围观?但是为什么它无法安装在另一台机器上?

ubuntu
  • 1 1 个回答
  • 245 Views

1 个回答

  • Voted
  1. Best Answer
    Shane Madden
    2014-05-20T08:35:52+08:002014-05-20T08:35:52+08:00

    如果您正在寻找目录的总大小,您应该使用-s.

    看看du -sh files给你什么?

    另外,您究竟是如何创建文件的,它们真的有内容吗?报告大小之间的差异可能意味着文件稀疏。

    • 4

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve