Tôi có công việc nhà này, nơi tôi phải chuyển một tập tin rất lớn từ một nguồn sang nhiều máy bằng cách sử dụng bittorrent kinda của thuật toán. Ban đầu tôi cắt các tập tin thành từng phần và tôi chuyển các khối thành tất cả các mục tiêu. Mục tiêu có trí thông minh để chia sẻ các phần họ có với các mục tiêu khác. Nó hoạt động tốt. Tôi muốn chuyển một tập tin 4GB vì vậy tôi tarred bốn tập tin 1GB. Nó đã không lỗi khi tôi tạo ra các tập tin tar 4GB nhưng ở đầu kia trong khi lắp ráp tất cả các khối trở lại tập tin ban đầu nó lỗi ra nói rằng giới hạn kích thước tập tin vượt quá. Làm thế nào tôi có thể đi về giải quyết vấn đề giới hạn 2GB này?Cách tạo tệp có kích thước lớn hơn 2GB trong Linux/Unix?
Trả lời
tôi có thể nghĩ đến hai lý do có thể:
- Bạn không cần phải Large File Support cho phép trong hạt nhân Linux bạn
- ứng dụng của bạn không được biên soạn với sự hỗ trợ tập tin lớn (bạn có thể cần phải vượt qua gcc thêm cờ để cho nó để sử dụng các phiên bản 64-bit của một số tập tin I/O chức năng. ví dụ
gcc -D_FILE_OFFSET_BITS=64
)
Đừng quên ít nhất phải đề cập đến hệ thống tệp (trình điều khiển). Một số FS-es có giới hạn tùy ý. Chỉ Btrfs, ZFS và có lẽ một số khác có khả năng 128bit (kết quả là ví dụ [16 exabyte (16 × 1018 byte) - Kích thước tối đa của một tệp] (http://en.wikipedia.org/wiki/ZFS#Capacity)) – sehe
Lưu ý: '_FILE_OFFSET_BITS' chuyển' O_LARGEFILE' vào syscall 'mở' trên vòm chính xác, nhưng ' _FILE_OFFSET_BITS' được ưu tiên cho tính di động: https://stackoverflow.com/questions/2888425/is-o-largefile- tập tin cần thiết-chỉ-to-ghi-một-lớn –
Điều này tùy thuộc vào số filesystem type. Khi sử dụng ext3, tôi không gặp vấn đề gì với các tệp lớn hơn đáng kể.
Nếu đĩa cơ bản là FAT, NTFS hoặc CIFS (SMB), bạn cũng phải đảm bảo bạn sử dụng phiên bản mới nhất của trình điều khiển thích hợp. Có một số trình điều khiển cũ hơn có giới hạn kích thước tệp như những giới hạn bạn gặp phải.
Điều này có thể liên quan đến system limitation configuration không?
$ ulimit -a
vi /etc/security/limits.conf
vivek hard fsize 1024000
Nếu bạn không muốn bất kỳ giới hạn loại bỏ fsize
từ /etc/security/limits.conf
.
Nếu hệ thống của bạn hỗ trợ nó, bạn có thể nhận được gợi ý với: man largefile
.
bạn nên sử dụng fseeko và ftello, xem fseeko(3) Lưu ý bạn nên xác định #define _FILE_OFFSET_BITS 64
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
- 1. Nhận kích thước tệp lớn trong C
- 2. Tôi có thể đặt kích thước VARCHAR lớn hơn 8k nhưng nhỏ hơn MAX không?
- 3. Tải lên các tệp lớn hơn 2GB trong ASP.NET MVC 3
- 4. tìm thư mục có kích thước lớn hơn x MB
- 5. Cách tạo mảng có kích thước lớn hơn số nguyên tối đa
- 6. Tải lên tệp lớn hơn 2GB bằng cách sử dụng PHP
- 7. Tạo một tệp javascript để làm cho tệp lớn hơn
- 8. Ảnh chụp màn hình của biểu mẫu có kích thước lớn hơn kích thước màn hình
- 9. PyTables xử lý dữ liệu với kích thước lớn hơn nhiều lần kích thước bộ nhớ
- 10. Thông báo trên Màn hình Chrome - kích thước lớn hơn
- 11. Kích thước lớn nhất mà một tập tin cài đặt gói .msi có thể là gì?
- 12. php tạo tệp có kích thước nhất định
- 13. Tạo tệp có kích thước nhất định trong Java
- 14. Giới hạn 2GB đối với kích thước tệp khi sử dụng fwrite trong C?
- 15. iOS: cách giảm kích thước tệp PNG lớn
- 16. Kích thước tệp lớn nhất có thể được mở bởi Vim là gì? (64-bit)
- 17. Cách nhập dữ liệu (.sql fle) vào mysql có kích thước lớn hơn 200 MB
- 18. Sắp xếp dữ liệu lớn hơn kích thước RAM
- 19. kích thước jframe java swing trả về kích thước lớn hơn như màn hình
- 20. MongoDB: kích thước kết quả truy vấn lớn hơn kích thước bộ sưu tập
- 21. Hiệu quả chuyển tệp lớn (tối đa 2GB) sang GPU CUDA?
- 22. SocketException trong khi tải xuống tệp zip kích thước lớn
- 23. tạo tệp có kích thước cụ thể trong python
- 24. Kích thước tệp MDF lớn hơn nhiều so với dữ liệu thực tế
- 25. Cách tạo mảng có kích thước động trong C?
- 26. std :: fstream files hơn 2gb
- 27. kích thước phân bổ bản đồ bộ nhớ lớn nhất?
- 28. cách tốt nhất để có kích thước tệp là gì?
- 29. Tại sao kích thước Bitmap lớn hơn trong bộ nhớ so với trên đĩa trong Android?
- 30. Bitmap được nén với chất lượng = 100 kích thước tệp lớn hơn bản gốc
Bạn đang chạy hệ thống tệp, phiên bản hạt nhân và phiên bản/phiên bản nào? – womble
Được gắn thẻ lại để thêm linux –