Ổ cứng của chúng ta về đơn vị cơ sở là sector (1 sector = 512bytes). Và dữ liệu khi lưu trữ ở mặt phần cứng nó sẽ hiểu theo từng sector như vậy (thậm chí cả USB). Nhưng với hệ điều hành của Microsoft thì có thêm đơn vị là cluster (Linux gọi nó là inode). Thông thường khi format thì mặc định thì 1 cluster = 8 sector (4KB). Khi dữ liệu của tập tin được ghi, xóa trên ổ cứng hoặc thay đổi kích thước, dữ liệu sẽ được ghi từ các cluster trống (hoặc đánh dấu trống) đầu tiên cho tới cluster trống cuối cùng của phân vùng. Trong quá trình sử dụng, chúng ta sẽ có lúc xóa đi 1 vài hay là nhiều file, vậy là chỗ file bị xóa đi sẽ có nhiều chỗ trống, chỗ trống này có thể ghi dữ liệu vào. Dữ liệu được ghi từ đầu tới cuối nghĩa là dù bạn có xóa file rồi bỏ 1 file vào thì file bạn mới bỏ vào sẽ không nằm tại chỗ bạn vừa xóa, mà nó nằm ở sau phần dữ liệu cuối cùng. Phần kia thì vẫn để trống. Khi phân vùng đã được sử dụng tới sector cuối cùng thì nó sẽ ghi dữ liệu trở lại vào vùng trống do bạn xóa file mà ra (giống kiểu vòng lặp, và phân mảnh ổ cứng là do đây). Khi dữ liệu được ghi vào những vùng trống như ở trên thì có 2 trường hợp: 1. Dữ liệu nhỏ hơn vùng trống thì dữ liệu sẽ không sao. 2. Dữ liệu lớn hơn vùng trống. Khi đó dữ liệu sẽ được cắt ra và bỏ vào các vùng trống tiếp theo, vậy là việc phân mảnh diễn ra (dữ liệu bị chia làm nhiều phần). Nhất là sau khi một phần lớn của đĩa cứng được sử dụng thì quá trình phân mảnh diễn ra rất nhanh. Với nhiều người dùng thích thử nghiệm, cài đặt, gỡ bỏ phần mềm liên tục, tải file từ Internte về nhiều, copy di chuyển file nhiều,... nguy cơ ổ cứng bị phân mảnh là rất cao do dữ liệu nằm rải khắp nơi trên đĩa cứng. Đầu đọc phải di chuyển "vất vả” hơn để truy xuất đầy đủ dữ liệu của tập tin đó nên thời gian truy xuất chậm hơn, làm chậm tốc độ hệ thống hay thậm chí có thể gây treo máy (tạm thời) trên những hệ thống cũ, tốc độ chậm. Ngoài ra, việc lựa chọn kích thước cluster không phù hợp khi định dạng (format) phân vùng đĩa cứng cũng ảnh hưởng đến sự phân mảnh. Đơn vị lưu trữ file mà hệ điều hành Windows sử dụng là Cluster. Giả sử bạn có 1 file chỉ chừng 200bytes (khoảng 200 ký tự) thì trên ổ cứng nó vẫn phải dùng hết 4KB (vì cluster là đơn vị cơ sở), do đó bạn để ý khi properties kích thước file thì nó sẽ có 2 dạng kích thước là size và size on disk. Chẳng hạn, với kích thước cluster 8KB thì một tập tin 4KB cũng chiếm hết cluster đó, phần còn lại bị lãng phí. Một file lớn có thể chứa hàng trăm hoặc hàng nghìn cluster, nằm rải rác trên khắp HDD (khi bị phân mảnh nhiều). Dữ liệu nằm rải rác trên HDD này vẫn được theo dõi và quản lý bởi thành phần hệ thống file của hệ điều hành. Tóm lại 1 tập tin nó sẽ chia ra nhiều mảnh cluster như vậy. Ban đầu khi copy file thì các cluster nó có thể nằm liên tiếp (nếu đủ không gian trống cho kích cỡ file đó). Lưu ý là Folder cũng là 1 file (nhưng có thuộc tính folder). Vậy nếu ta chỉnh max cluster (ví dụ 64KB - 128 Sector) thì ta sẽ tốn hao phí ổ cứng hơn nhưng tốc độ truy xuất file sẽ đạt tốc độ nhanh nhất và khả năng phân mảnh đĩa cũng thấp nhất. Tác hại của phân mảnh dữ liệu là gì? Để dễ hiểu, chúng ta tưởng tượng ổ cứng là một cái đĩa tròn giống như đĩa CD và được đọc bằng 1 cái kim từ. Bình thường thì cái kim chạy bình thường. Khi dữ liệu bị phân mảnh (vài trăm phần chẳng hạn) thì muốn đọc được dữ liệu, cái kim sẽ phải chạy qua chạy lại, thời gian đó sẽ chậm hơn bình thường, vì vậy dữ liệu sẽ được đọc chậm hơn -> lý do tại sao ta thấy khi phân mảnh thì mở ứng dụng hơi chậm hơn so với bình thường. Việc phân mảnh xảy ra ở tất các phân vùng trên ổ cứng, đặc biệt là phân vùng nào có dữ liệu thường xuyên bị xóa, ghi mới (điển hình là ổ C: là nơi ta thường cài và gỡ bỏ phần mềm, file tạm....). Dồn đĩa (chống phân mảnh) là quá trình ghi lại những phần không liền kề nhau của 1 file sang những sector gần nhau trên đĩa để tăng khả năng truy vấn dữ liệu. Nếu ổ cứng định dạng NTFS quá trình dồn ổ cứng sẽ nhanh hơn nhiều FAT hay FAT32. Thứ nhất là do NTFS có khả năng truy cập và xử lý file nén tốt như truy cập vào các file chưa nén, điều này không chỉ tiết kiệm được dung lượng mà còn gia tăng được tuổi thọ của đĩa cứng do ít bị phân mảnh hơn khi xử lý file nén. Thứ hai là do NTFS có cách quản lý file khác với FAT32. Ta hiểu đơn giản rằng, dữ liệu trên ổ cứng được tách làm 2 phần, một phần là Data, và một phần là FileSystem để quản lý vùng Data này. Vùng FileSystem không mô tả nội dung dữ liệu file mà mô tả tên file + thuộc tính... Với FAT thì nó có 1 khái niệm là bảng FAT. Sự quan trọng nhất của hệ thống FAT nằm ở cái bảng này. Bảng FAT nó thể hiện sự liên kết giữa các cluster để giúp HDH hiểu dãy cluster cần thiết để đọc 1 file. Ví dụ như file A nó có dữ liệu nằm trên các cluster như 10 11 12 _ _ _ 16 17 EOF (ký tự _ giả sử là sự phân mảnh, còn EOF chỉ vị trí kết thúc file). Như vậy bảng FAT nó sẽ có rất nhiều dòng. Ví dụ như ở file trên thì tại dòng 10 của bảng FAT thì giá trị nó là 11, tại dòng 11 thì giá trị nó là 12, tại 12 thì là 16 và ... OEF. HĐH sẽ tra lần lượt từng dòng của bảng FAT như vậy và suy ra được vị trí file. Trong kiến trúc FAT thì nếu mà bảng FAT bị bad sector thì coi như mất toàn bộ dữ liệu (do đó thông thường có 2 bảng FAT dự phòng). Vì vậy Khi mà mất điện đột ngột thì Windows 98, 2000, XP… đều phải quét lại đĩa khi khởi động lại nếu đĩa đó được format bằng chuẩn FAT32. Trong khi format đĩa cứng bằng NTFS thì lại hoàn toàn không cần quét đĩa lại, bởi vì hệ thống dùng NTFS có được những thông tin về tính toàn vẹn dữ liệu ghi trên đĩa và nó mất rất ít thời gian để biết được về mặt logic đĩa của mình có lỗi hay không và nếu có thì hệ thống cũng tự phục hồi một cách cực kỳ đơn giản và nhanh chóng. Với FAT32 thì nó phải rà quét toàn bộ lâu hơn nhiều. Ngoài ra nhược điểm của FAT32 chính là chổ mắt xích liên kết từ cluster này đến cluster kia. Với NTFS thì ko còn khái niệm bảng FAT nữa mà tất cả mọi thứ trên đó đều là file. Hệ thống file có 1 file quan trọng gọi là Master File Table. File này tên là $MFT (file này khá lớn và mặc định bạn ko thể thấy). Ngoài ra còn có các file khác như $bitmap (lưu trữ cluster đã sử dụng) và $security... lưu trữ sự phân quyền... Dữ liệu mọi tập tin trên ổ cứng đều ở file $MFT. Với file có kích thước < 512bytes thì dữ liệu của nó nằm trên $MFT luôn chứ ko phải mất 1 cluster như FAT. Một file/folder khi tạo mặc định sẽ mất 1KB trên $MFT. Trong 1KB này sẽ lưu trữ tên file, thuộc tính và danh sách các cluster của file đó. NTFS đã khắc phục nhược điểm của FAT chính là ko có sự liên kết trên cluster mà tất cả đều lưu ở 1KB trên $MFT. Nhờ vậy khả năng khôi phục dữ liệu như undelete trên NTFS rất là cao, và việc dồn đĩa cũng nhanh hơn rất nhiều. Trên đây cũng là lý do quá trình dồn đĩa mất thời gian hơn nhiều so với NTFS. Một hệ thống Windows 2000, XP sẽ ổn định hơn nhiều nếu cài trên phân vùng được format bằng NTFS (với Windows 7 thì đã bắt buộc phải là NTFS, và cơ chế quản lý việc ghi xóa dữ liệu được chủ động sắp xếp để hạn chế tối đa sự phân mảnh ổ cứng). Theo Lãng khách, nên hạn chế tối đa việc sử dụng lưu trữ dữ liệu trên phân vùng hệ thống để có thể hạn chế tối đa sự phân mảnh ổ cứng mà lại dễ dàng chống phân mảnh cho cả phân vùng hệ thống lẫn các phân vùng chứa dữ liệu của bạn. Vậy bạn nên đinh dạng ổ đĩa của bạn ở Dạng NTFS để ổ cứng bạn phân mảnh nhanh hơn và tuổi thọ cao hơn !
CÁi phần bạn giải thích bị phân mảnh chưa rõ ràng cho lắm lên tớ k hiểu? bạn giải thích lại đc k? tk