romandas Asked: 2009-06-13 06:29:43 +0800 CST2009-06-13 06:29:43 +0800 CST 2009-06-13 06:29:43 +0800 CST 为什么我不能在 Linux 上创建大于 2 GB 的文件? 772 我想分享一些我在使用 libpcap 和 snort 嗅探高容量(1 GB 全双工;2 GB 最大聚合)网络链接时遇到问题时学到的知识。应用程序将成功嗅探所有流量,但当文件大小达到 2 GB 时会崩溃。 如果您在创建 2 GB 文件时遇到问题,即使您有一个支持它的文件系统,并且/或者您知道内核支持它,这也是为您准备的。 linux files 2 个回答 Voted Best Answer romandas 2009-06-13T06:29:56+08:002009-06-13T06:29:56+08:00 Linux 的大文件支持 ( >2GB ) 需要在三个不同的位置解决,以确保您不会遇到 2 GB 的最大文件大小限制: 内核中启用了大文件支持 支持大文件大小的文件系统(许多基于 Linux 的文件系统都支持(ext3、reiserfs >= 3.6 等)) 使用的库或应用程序中的大文件支持 对大文件的内核支持从 2.4.0-test7 开始出现;如果您使用自定义内核,请确保您已包含大文件选项。 大多数 Linux 文件系统都支持大文件,但您在使用网络文件系统时可能会遇到问题。 最后,需要使用 gcc 选项 -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 编译库(即 libpcap)和应用程序。检查以确保您正在使用的软件包是使用这些选项预编译的,或者是您自己的。 有关更多详细信息,请参见此处。 Joseph Kern 2009-06-13T08:30:26+08:002009-06-13T08:30:26+08:00 看起来这是libpcap 的问题......如第一个答案所述。 重新编译 libpcap,或者找另一个版本。
Linux 的大文件支持 ( >2GB ) 需要在三个不同的位置解决,以确保您不会遇到 2 GB 的最大文件大小限制:
内核中启用了大文件支持
支持大文件大小的文件系统(许多基于 Linux 的文件系统都支持(ext3、reiserfs >= 3.6 等))
使用的库或应用程序中的大文件支持
对大文件的内核支持从 2.4.0-test7 开始出现;如果您使用自定义内核,请确保您已包含大文件选项。
大多数 Linux 文件系统都支持大文件,但您在使用网络文件系统时可能会遇到问题。
最后,需要使用 gcc 选项 -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS=64 编译库(即 libpcap)和应用程序。检查以确保您正在使用的软件包是使用这些选项预编译的,或者是您自己的。
有关更多详细信息,请参见此处。
看起来这是libpcap 的问题......如第一个答案所述。
重新编译 libpcap,或者找另一个版本。