Cách sửa chữa và chống phân mảnh các phân vùng và thư mục hệ thống Linux

Nhiều người sử dụng Linux thường nghĩ rằng nó không yêu cầu chống phân mảnh. Đây là một sự hiểu lầm phổ biến của người dùng Linux. Trên thực tế, hệ điều hành Linux có hỗ trợ chống phân mảnh. Ưu điểm của việc chống phân mảnh là cải thiện các hoạt động I/O như cho phép các video cục bộ tải nhanh hơn hoặc giải nén các tệp lưu trữ nhanh hơn đáng kể.

Chống phân mảnh Phân vùng và Thư mục Hệ thống Linux

Hệ thống tệp Linux ext2, ext3 và ext4 không cần chú ý nhiều đến vậy, nhưng theo thời gian, sau khi thực hiện nhiều lần đọc ghi, hệ thống tệp có thể yêu cầu tối ưu hóa. Nếu không, đĩa cứng có thể trở nên chậm hơn và có thể ảnh hưởng đến toàn bộ hệ thống.

Trong hướng dẫn này, Viettelco sẽ hướng dẫn bạn một số kỹ thuật khác nhau để thực hiện chống phân mảnh trên tệp. Trước khi bắt đầu, chúng ta nên đề cập đến những gì các hệ thống tệp phổ biến như ext2,3,4 làm để ngăn phân mảnh. Các hệ thống tập tin này bao gồm kỹ thuật để ngăn chặn hiệu ứng. Ví dụ: hệ thống tệp dự trữ các nhóm khối miễn phí trên đĩa cứng để lưu trữ hoàn toàn các tệp đang phát triển.

Thật không may, vấn đề không phải lúc nào cũng được giải quyết với cơ chế như vậy. Trong khi các hệ điều hành khác có thể yêu cầu phần mềm bổ sung đắt tiền để giải quyết các vấn đề như vậy, Linux có một số công cụ dễ cài đặt có thể giúp bạn giải quyết các vấn đề đó.

1. Cách Kiểm tra hệ thống tập tin yêu cầu chống phân mảnh?

Trước khi bắt đầu, Viettelco muốn chỉ ra rằng các hoạt động dưới đây chỉ nên chạy trên ổ cứng HDD chứ không phải trên SSD. Việc chống phân mảnh ổ SSD của bạn sẽ chỉ làm tăng số lần đọc ghi và do đó làm giảm tuổi thọ của nó. Thay vào đó, nếu bạn đang sử dụng SSD, bạn nên sử dụng chức năng TRIM, chức năng này không được đề cập trong hướng dẫn này. Hãy kiểm tra xem hệ thống có thực sự yêu cầu chống phân mảnh hay không. Chúng ta có thể dễ dàng kiểm tra điều này bằng công cụ như e2fsck. Trước khi bạn sử dụng công cụ này trên một phân vùng trên hệ thống của mình, bạn nên ngắt kết nối phân vùng đó. Điều này không hoàn toàn cần thiết, nhưng đó là cách an toàn để thực hiện:

$ sudo umount <device file>

Trong trường hợp của tôi, tôi đã gắn / dev / sda1 tại / tmp :

Bảng phân vùng đĩa

Hãy nhớ rằng trong trường hợp của bạn, bảng phân vùng có thể khác, vì vậy hãy đảm bảo unmount đúng phân vùng. Để ngắt kết nối phân vùng đó, bạn có thể sử dụng:

$ sudo umount /dev/sda1

Bây giờ hãy kiểm tra xem phân vùng này có yêu cầu chống phân mảnh hay không, với e2fsck. Bạn sẽ cần chạy lệnh sau:

$ sudo e2fsck -fn /dev/sda1

Lệnh trên sẽ thực hiện kiểm tra hệ thống tệp. Các tùy chọn -f bắt buộc kiểm tra, ngay cả khi hệ thống dường như sạch sẽ. Các tùy chọn -n được sử dụng để mở hệ thống tập tin trong chỉ đọc và giả định câu trả lời của “no” cho tất cả những câu hỏi mà có thể xuất hiện.

Các tùy chọn này về cơ bản cho phép sử dụng e2fsck không tương tác. Nếu mọi thứ đều ổn, bạn sẽ thấy kết quả tương tự như được hiển thị trên hình dưới đây:

e2fsck không có lỗi

Đây là một ví dụ khác cho thấy lỗi trên hệ thống:

e2fsck có lỗi

2. Cách sửa chữa hệ thống tập tin Linux bằng e2fsck

Nếu lỗi xuất hiện, bạn có thể thử sửa chữa hệ thống tệp bằng e2fsck với tùy chọn “-p”. Lưu ý rằng để chạy lệnh dưới đây, phân vùng sẽ cần được ngắt kết nối:

$ sudo e2fsck -p <device file>

Các tùy chọn “-p” cố gắng sửa chữa tự động trên hệ thống tệp cho các sự cố có thể được khắc phục một cách an toàn mà không cần sự can thiệp của con người. Nếu một vấn đề được phát hiện có thể yêu cầu quản trị viên hệ thống thực hiện thêm hành động sửa chữa, e2fsck sẽ in mô tả vấn đề và sẽ thoát ra với mã 4, có nghĩa là “File system errors left uncorrected“. Tùy thuộc vào vấn đề đã được tìm thấy, các hành động khác nhau có thể được yêu cầu.

Nếu sự cố xuất hiện trên một phân vùng không thể giải phóng được, bạn có thể sử dụng một công cụ khác có tên là e4defrag. Nó được cài đặt sẵn trên nhiều bản phân phối Linux, nhưng nếu bạn không có nó, bạn có thể cài đặt nó bằng:

$ sudo apt-get install e2fsprogs ##Trên Debian

# yum install e2fsprogs ##Trên CentOS

# dnf install e2fsprogs ##Trên Fedora 22+

3. Cách chống phân mảnh các phân vùng Linux

Bây giờ đã đến lúc chống phân mảnh phân vùng Linux bằng lệnh sau.

$ sudo e4defrag <location>

or

$ sudo e4defrag <device>

4. Cách chống phân mảnh thư mục Linux

Ví dụ: nếu bạn muốn chống phân mảnh một thư mục hoặc thiết bị, bạn có thể sử dụng:

$ sudo e4defrag /home/user/directory/

# sudo e4defrag /dev/sda5

5. Cách chống phân mảnh tất cả các phân vùng Linux

Nếu bạn muốn chống phân mảnh toàn bộ hệ thống của mình, cách an toàn để làm điều này là:

$ sudo e4defrag /

Hãy nhớ rằng quá trình này có thể mất một thời gian để hoàn thành.

6. Tổng kết

Chống phân mảnh là một hoạt động mà bạn sẽ hiếm khi cần chạy trong Linux. Nó dành cho những người dùng thành thạo, những người biết chính xác họ đang làm gì và không được khuyến khích cho những người mới sử dụng Linux. Mục đích của toàn bộ hành động là tối ưu hóa hệ thống tệp của bạn để các hoạt động đọc ghi mới được thực hiện hiệu quả hơn.