Lệnh fallocate
Linux được sử dụng để cấp phát dung lượng ổ đĩa cho một tệp tin mà không cần ghi dữ liệu thực sự vào file. Điều này giúp tăng tốc quá trình tạo file lớn và giảm hao mòn ổ đĩa khi làm việc với hệ thống tập tin. Trong bài viết này, mình sẽ giới thiệu chi tiết về cú pháp, cách sử dụng và một số ví dụ thực tế của lệnh fallocate
trong Linux.
Những điểm chính
- Khái niệm: Hiểu rõ lệnh
fallocate
trong Linux là gì và vai trò của nó trong việc quản lý dung lượng ổ đĩa. - Cú pháp: Nắm được cú pháp cơ bản của lệnh
fallocate
, giúp bạn dễ dàng áp dụng trong môi trường thực tế. - Các tùy chọn trong lệnh fallocate Linux: Hiểu rõ các chức năng của từng tùy chọn trong lệnh
fallocate
Linux. - Các ví dụ thực tế: Biết cách sử dụng
fallocate
để phân bổ hoặc giải phóng không gian đĩa trong nhiều tình huống khác nhau một cách hiệu quả. - Nhà cung cấp đáng tin cậy: Biết thêm về Vietnix – đơn vị cung cấp dịch vụ lưu trữ hiệu năng cao, phù hợp để triển khai các hệ thống sử dụng Linux.
- Giải đáp thắc mắc: Giải đáp các câu hỏi thường gặp, giúp bạn tránh được những sai lầm phổ biến khi dùng lệnh
fallocate
.
Lệnh fallocate Linux là gì?
Lệnh fallocate
Linux là công cụ dùng để cấp phát sẵn dung lượng ổ đĩa cho một tệp tin mà không cần ghi dữ liệu thực sự vào file. Thay vì phải tạo file và điền đầy bằng các byte rỗng như cách truyền thống, fallocate
cho phép người dùng nhanh chóng dành sẵn dung lượng trên ổ đĩa chỉ bằng một câu lệnh đơn giản.

Công cụ này đặc biệt hữu ích khi bạn cần tạo các file có dung lượng cố định hoặc muốn đảm bảo không gian lưu trữ vẫn còn đủ trước khi ghi dữ liệu lớn vào ổ đĩa. Việc cấp phát trước không chỉ tiết kiệm thời gian mà còn giúp hệ thống hoạt động ổn định hơn trong các tình huống yêu cầu quản lý tài nguyên tốt.
Ngoài ra, để làm theo hướng dẫn trong bài viết, bạn cần:
- Một hệ thống đang chạy Linux.
- Quyền truy cập vào terminal (sử dụng tổ hợp phím
Ctrl + Alt + T
).
Cú pháp lệnh fallocate Linux
Cú pháp cơ bản của lệnh fallocate
trong Linux như sau:
fallocate [tùy chọn] [đường_dẫn_tệp]
Trong đó:
[tùy chọn]
(options): Là các cờ (flags) dùng để xác định hành vi cụ thể của lệnh, ví dụ như phân bổ thêm dung lượng, giải phóng dung lượng, chỉ định phạm vi byte,…[đường_dẫn_tệp]
(filename): Là đường dẫn đến file mà bạn muốn thao tác phân bổ hoặc giải phóng dung lượng.
Các tùy chọn trong lệnh fallocate Linux
Lệnh fallocate
hỗ trợ nhiều tùy chọn (flag) giúp kiểm soát chi tiết hơn cách phân bổ hoặc giải phóng dung lượng trong file. Dưới đây là bảng tổng hợp các tùy chọn thường dùng:
Tùy chọn ngắn | Tùy chọn đầy đủ | Mô tả |
---|---|---|
-c | --collapse-range | Xóa một đoạn dữ liệu trong file (theo offset và length) mà không tạo lỗ trống. |
-p | --punch-hole | Giải phóng dung lượng trong phạm vi chỉ định bằng cách tạo “hole” (lỗ trống). |
-z | --zero-range | Đặt toàn bộ dữ liệu trong vùng chỉ định về giá trị 0 mà không giải phóng dung lượng. |
-o [offset] | --offset [offset] | Xác định điểm bắt đầu (tính theo byte) cho thao tác phân bổ hoặc giải phóng dữ liệu. |
-l [length] | --length [length] | Chỉ định độ dài (số byte) của không gian cần thao tác – đây là tùy chọn bắt buộc. |
-n | --keep-size | Giữ nguyên kích thước tệp dù có thể phân bổ thêm dung lượng sau phần cuối file hiện tại. |
-d | --dig-hole | Tạo “hole” và cố gắng giải phóng không gian đĩa thực tế – mạnh hơn --punch-hole nhưng không hỗ trợ ở mọi hệ thống tập tin. |
Lưu ý
Các tùy chọn -c
, -p
và -z
không thể dùng đồng thời với nhau và đều yêu cầu kết hợp với -o
và -l
.
Ví dụ về lệnh fallocate Linux
1. Phân bổ kích thước file cụ thể
Lệnh fallocate
cho phép phân bổ một kích thước cụ thể cho file bằng tùy chọn -l
hoặc --length
. Ví dụ, để tạo hoặc mở rộng file example.txt
với dung lượng 1 GB, bạn chạy:
fallocate -l 1G example.txt
Để kiểm tra file đã được tạo với kích thước phân bổ hay chưa, bạn sử dụng lệnh ls
như sau:
ls -lh

Sau khi thực hiện, file sẽ có dung lượng đã được cấp phát sẵn 1 GB mà không cần ghi dữ liệu thật, giúp bạn tiết kiệm thời gian tạo file lớn.
2. Phân bổ không gian và giữ nguyên kích thước file
Khi bạn muốn cấp phát thêm dung lượng cho file nhưng vẫn giữ nguyên kích thước hiện tại của file đó, sử dụng tùy chọn -n
hoặc --keep-size
. Ví dụ:
fallocate -n -l 500M examplefile.txt

Lệnh này cấp phát 500 MB dung lượng cho file nhưng vẫn giữ nguyên kích thước file ban đầu, rất hữu ích khi cần thêm không gian lưu trữ mà không ảnh hưởng đến dữ liệu đã có.
3. Phân bổ không gian trong phạm vi cụ thể
Bạn có thể chỉ định vị trí bắt đầu phân bổ không gian trong file bằng tùy chọn -o
hoặc --offset
, kết hợp với -l
để xác định độ dài phân bổ. Ví dụ:
fallocate -o 1G --length 100M example.txt

Lệnh trên sẽ cấp phát 100 MB không gian bắt đầu từ vị trí offset 1 GB trong file example.txt
. Điều này giúp quản lý không gian tập tin linh hoạt theo từng phần cụ thể.
4. Giải phóng không gian từ file
Lệnh fallocate
còn hỗ trợ giải phóng không gian đĩa khỏi file bằng cách tạo một “lỗ hổng” (hole) trong file sử dụng tùy chọn -d
hoặc --dig-hole
. Ví dụ:
fallocate -d -o 100M --length 200M examplefile.txt
Lệnh này sẽ giải phóng 200 MB dung lượng bắt đầu từ offset 100 MB trong file, giúp tiết kiệm không gian ổ đĩa khi không cần dữ liệu ở vùng đó nữa.
Vietnix – Nhà cung cấp dịch vụ lưu trữ tốc độ cao
Vietnix là nhà cung cấp dịch vụ lưu trữ tốc độ cao với dịch vụ thuê VPS có hạ tầng mạnh mẽ, 100% ổ cứng SSD giúp đảm bảo truy cập nhanh và ổn định. Dịch vụ VPS Linux tại Vietnix mang đến hiệu suất xử lý vượt trội, quản trị dễ dàng qua giao diện trực quan cùng hệ thống backup tự động, bảo vệ dữ liệu an toàn. Với khả năng tùy chỉnh linh hoạt và bảo mật cao, Vietnix cam kết đem lại giải pháp lưu trữ tối ưu, phù hợp mọi nhu cầu kinh doanh. Liên hệ ngay để được tư vấn chi tiết!
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Câu hỏi thường gặp
fallocate có hoạt động hiệu quả trên các loại hệ thống file khác nhau như XFS, Btrfs, ZFS không?
Lệnh fallocate
hoạt động tốt và hiệu quả trên nhiều hệ thống file phổ biến như Ext4 và XFS, vì chúng hỗ trợ cấp phát không gian theo cách nhanh và trực tiếp. Tuy nhiên, với các hệ thống file như Btrfs hay ZFS, việc hỗ trợ fallocate
có thể bị giới hạn hoặc hoạt động khác biệt do cách quản lý dữ liệu phức tạp hơn (ví dụ như copy-on-write).
Trên Btrfs hoặc ZFS, fallocate
có thể không luôn cấp phát không gian vật lý ngay lập tức mà phụ thuộc vào cấu trúc của hệ thống file, dẫn đến hiệu quả không bằng Ext4 hay XFS. Nên khi sử dụng fallocate
trên các hệ thống file này, bạn cần kiểm tra kỹ tài liệu hoặc thử nghiệm để đảm bảo hành vi và hiệu suất phù hợp với nhu cầu.
Có rủi ro bảo mật nào khi cấp phát không gian bằng fallocate không?
Rủi ro bảo mật khi dùng fallocate
gồm: Dữ liệu cũ trong “lỗ” file có thể chưa bị xóa hoàn toàn, gây nguy cơ rò rỉ; nếu phân quyền không chặt chẽ, kẻ xấu có thể lợi dụng cấp phát hoặc giải phóng không gian gây ảnh hưởng hệ thống; khả năng tạo file giả mạo làm đầy ổ đĩa dẫn đến tấn công từ chối dịch vụ và một số hệ thống file không hỗ trợ tốt có thể gây lỗi. Do đó, bạn cần sử dụng đúng quyền, kiểm soát phân quyền và kết hợp biện pháp bảo mật khác để hạn chế rủi ro.
Lời kết
Lệnh fallocate
là công cụ hữu ích trong Linux giúp cấp phát nhanh không gian cho file mà không cần ghi dữ liệu từng byte, từ đó tối ưu hiệu suất và tiết kiệm thời gian thao tác với tập tin lớn. Qua các ví dụ thực tế, bạn đã hiểu cách sử dụng linh hoạt các tùy chọn để phân bổ hoặc giải phóng không gian theo nhu cầu cụ thể. Nắm vững fallocate
Linux sẽ giúp bạn quản lý hệ thống file hiệu quả hơn và tăng cường khả năng tối ưu tài nguyên trên hệ điều hành này. Cảm ơn bạn đã theo dõi!