Mengapa saya tidak bisa membuat file yang lebih besar dari 2 GB di Linux?

8

Saya ingin berbagi pengetahuan yang saya ambil ketika saya mengalami masalah menggunakan libpcap dan mendengus untuk mengendus tautan jaringan berkapasitas tinggi (dupleks penuh 1 GB; agregat maksimum 2 GB). Aplikasi akan mengendus semua lalu lintas dengan sukses, tetapi akan macet ketika ukuran file mencapai 2 GB ditangkap.

Jika Anda mengalami masalah dalam membuat file 2 GB, meskipun Anda memiliki sistem file yang mendukungnya, dan / atau Anda tahu kernel mendukungnya, ini untuk Anda.

romansa
sumber
Kupikir aku akan membagikan ini dengan masyarakat; beri tahu saya jika ada perubahan yang perlu saya lakukan.
Romandas

Jawaban:

22

Dukungan file besar (> 2GB) untuk Linux perlu ditangani di tiga lokasi terpisah untuk memastikan Anda tidak mengalami batas ukuran file maks 2 GB:

  1. Dukungan file besar diaktifkan di kernel

  2. Sebuah sistem file yang mendukung ukuran file besar (banyak sistem file berbasis Linux melakukannya (ext3, reiserfs> = 3.6, dll))

  3. Dukungan file besar dalam perpustakaan atau aplikasi yang digunakan

Dukungan kernel untuk file besar telah ada sejak 2.4.0-test7; jika Anda menggunakan kernel khusus, pastikan Anda menyertakan opsi file besar.

Sebagian besar sistem file Linux mendukung file besar, tetapi Anda mungkin memiliki masalah menggunakan sistem file jaringan.

Terakhir, perpustakaan (yaitu libpcap) dan aplikasi harus dikompilasi dengan opsi gcc -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS = 64. Periksa untuk memastikan paket yang Anda gunakan datang dengan dikompilasi dengan opsi-opsi ini atau roll sendiri.

Lihat di sini untuk detail lebih lanjut.

romansa
sumber
3
Alih-alih "FILE_OFFSET_BITS", itu harus "_FILE_OFFSET_BITS".
Juliano
Kamu benar. Dikoreksi.
romandas
1
Jika Anda downvote, setidaknya bersikap sopan dan beri tahu saya alasannya .
romandas
Catatan: _FILE_OFFSET_BITSlolos O_LARGEFILEke opensyscall pada lengkungan yang benar, tetapi _FILE_OFFSET_BITSlebih disukai untuk portabilitas: stackoverflow.com/questions/2888425/…
Ciro Santilli 冠状 病毒 审查 六四 事件 事件 法轮功
2

Sepertinya ini adalah masalah dengan libpcap ... Seperti yang dinyatakan dalam jawaban pertama.

Kompilasi ulang libpcap, atau temukan versi lain.

Joseph Kern
sumber