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.


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.


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 冠状 病毒 审查 六四 事件 事件 法轮功

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.