Por que não consigo criar arquivos maiores que 2 GB no Linux?

8

Eu queria compartilhar alguns conhecimentos que aprendi quando me deparei com problemas usando libpcap e snort para farejar um link de rede de alta capacidade (1 GB full duplex; 2 GB máx. agregado). Os aplicativos farejariam todo o tráfego com sucesso, mas travariam quando o tamanho do arquivo atingisse 2 GB.

Se você está tendo problemas com a criação de arquivos de 2 GB, mesmo que você tenha um sistema de arquivos que ofereça suporte a ele e / ou saiba que o kernel o suporta, isso é para você.

    
por romandas 12.06.2009 / 16:29

2 respostas

20

O suporte a arquivos grandes (> 2 GB) para Linux precisa ser endereçado em três locais separados para garantir que você não concorra no limite máximo de tamanho de arquivo de 2 GB:

  1. Suporte a arquivos grandes ativado no kernel

  2. Um sistema de arquivos que suporta grandes tamanhos de arquivos (muitos sistemas de arquivos baseados em Linux fazem (ext3, reiserfs > = 3.6, etc))

  3. Suporte a arquivos grandes nas bibliotecas ou aplicativos utilizados

O suporte a kernel para arquivos grandes existe desde o 2.4.0-test7; Se você usar um kernel personalizado, certifique-se de incluir as opções de arquivos grandes.

A maioria dos sistemas de arquivos Linux suporta arquivos grandes, mas você pode ter problemas usando um sistema de arquivos de rede.

Por fim, as bibliotecas (ou seja, libpcap) e os aplicativos precisam ser compilados com as opções do gcc -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS = 64. Certifique-se de que os pacotes que você está usando sejam pré-compilados com essas opções ou sejam seus próprios.

Veja aqui para mais detalhes.

    
por 12.06.2009 / 16:29
2

Parece que este é um problema com a libpcap ... Como afirmado na primeira resposta .

Recompile o libpcap ou encontre outra versão.

    
por 12.06.2009 / 18:30

Tags