Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh e2fsck
trong Linux để kiểm tra và sửa chữa các hệ thống tập tin Ext4 bị hỏng. Lệnh e2fsck
là một công cụ mạnh mẽ có thể giúp bạn xác định và sửa các lỗi hệ thống tập tin, khôi phục các tập tin bị mất và tối ưu hóa hiệu suất hệ thống tập tin. Bạn sẽ bắt đầu bằng cách hiểu mục đích của lệnh e2fsck
, sau đó bạn sẽ học cách sử dụng nó để kiểm tra và sửa chữa một hệ thống tập tin Ext4 bị hỏng. Cuối cùng, bạn sẽ khám phá tùy chọn dry run và học cách tự động sửa các lỗi trong hệ thống tập tin.
Hiểu Mục Đích của Lệnh e2fsck
Trong bước này, bạn sẽ tìm hiểu về mục đích và cách sử dụng lệnh e2fsck
trong Linux. Lệnh e2fsck
được sử dụng để kiểm tra và sửa chữa các hệ thống tập tin Ext2, Ext3 và Ext4, là những hệ thống tập tin thường được sử dụng trong các hệ điều hành dựa trên Linux.
Lệnh e2fsck
thực hiện các tác vụ sau:
- Kiểm tra hệ thống tập tin để tìm lỗi và sự không nhất quán.
- Sửa chữa mọi lỗi hoặc sự không nhất quán được tìm thấy trong hệ thống tập tin.
- Tối ưu hóa hệ thống tập tin để có hiệu suất tốt hơn.
Để hiểu mục đích của lệnh e2fsck
, hãy khám phá một số tình huống phổ biến mà nó được sử dụng:
-
Kiểm tra sự hỏng hóc của hệ thống tập tin: Nếu một hệ thống tập tin bị hỏng do mất điện, lỗi phần cứng hoặc tắt hệ thống không đúng cách, lệnh
e2fsck
có thể được sử dụng để kiểm tra và sửa chữa hệ thống tập tin. -
Khôi phục các tập tin bị mất: Lệnh
e2fsck
có thể giúp khôi phục các tập tin bị mất bằng cách xác định và sửa chữa metadata của hệ thống tập tin, chẳng hạn như inodes, cấu trúc thư mục và phân bổ khối. -
Tối ưu hóa hiệu suất hệ thống tập tin: Lệnh
e2fsck
có thể được sử dụng để tối ưu hóa hệ thống tập tin bằng cách sắp xếp lại các khối dữ liệu và cải thiện hiệu quả tổng thể của hệ thống tập tin.
Bây giờ, hãy thử sử dụng lệnh e2fsck
trong bước tiếp theo.
Kiểm Tra và Sửa Chữa Hệ Thống Tập Tin Ext4 Bị Hỏng
Trong bước này, bạn sẽ học cách sử dụng lệnh e2fsck
để kiểm tra và sửa chữa một hệ thống tập tin Ext4 bị hỏng.
Đầu tiên, hãy tạo một image hệ thống tập tin mà chúng ta có thể sử dụng cho bài tập này:
sudo dd if=/dev/zero of=ext4_image.img bs=1M count=100
sudo mkfs.ext4 ext4_image.img
Các lệnh trên tạo một image hệ thống tập tin 100 MB có tên ext4_image.img
và định dạng nó thành một hệ thống tập tin Ext4.
Bây giờ, hãy cố ý làm hỏng hệ thống tập tin bằng cách sửa đổi superblock:
sudo debugfs -w ext4_image.img
debugfs: set_super_value s_magic 0x1234
debugfs: write_super_block
debugfs: quit
Các lệnh trên sử dụng công cụ debugfs
để sửa đổi trường s_magic
trong superblock, là một định danh duy nhất cho hệ thống tập tin Ext4. Hành động này sẽ làm hỏng hệ thống tập tin.
Để kiểm tra và sửa chữa hệ thống tập tin bị hỏng, hãy sử dụng lệnh e2fsck
:
sudo e2fsck -f ext4_image.img
Tùy chọn -f
buộc kiểm tra hệ thống tập tin, ngay cả khi hệ thống tập tin có vẻ sạch.
Ví dụ đầu ra:
ext4_image.img: recovering journal
ext4_image.img: clean, 11/25600 files, 25/100000 blocks
Đầu ra cho thấy rằng lệnh e2fsck
đã có thể khôi phục nhật ký (journal) và sửa chữa hệ thống tập tin bị hỏng.
Thực Hiện Dry Run và Tự Động Sửa Lỗi
Trong bước này, bạn sẽ học cách thực hiện dry run của lệnh e2fsck
và cách tự động sửa bất kỳ lỗi nào được tìm thấy trong hệ thống tập tin.
Đầu tiên, hãy tạo một image hệ thống tập tin bị hỏng khác:
sudo dd if=/dev/zero of=ext4_image2.img bs=1M count=100
sudo mkfs.ext4 ext4_image2.img
sudo debugfs -w ext4_image2.img
debugfs: set_super_value s_magic 0x1234
debugfs: write_super_block
debugfs: quit
Bây giờ, hãy thực hiện dry run của lệnh e2fsck
để xem những lỗi nào được tìm thấy, mà không thực sự sửa chúng:
sudo e2fsck -n ext4_image2.img
Tùy chọn -n
yêu cầu e2fsck
thực hiện dry run, có nghĩa là nó sẽ kiểm tra hệ thống tập tin để tìm lỗi nhưng sẽ không thực hiện bất kỳ thay đổi nào.
Ví dụ đầu ra:
ext4_image2.img: Superblock invalid, trying backup blocks...
ext4_image2.img: Bad magic number in super-block
ext4_image2.img: Group descriptors look bad... trying backup blocks
ext4_image2.img: Unable to fix errors, so marking file system read-only
ext4_image2.img: Filesystem has errors, check forced.
Đầu ra cho thấy rằng lệnh e2fsck
đã tìm thấy một số lỗi trong hệ thống tập tin, bao gồm một superblock không hợp lệ và các group descriptor xấu.
Để tự động sửa các lỗi, bạn có thể chạy lệnh e2fsck
mà không có tùy chọn -n
:
sudo e2fsck -y ext4_image2.img
Tùy chọn -y
yêu cầu e2fsck
tự động trả lời "yes" cho tất cả các câu hỏi, cho phép nó sửa các lỗi mà không cần sự can thiệp của người dùng.
Ví dụ đầu ra:
ext4_image2.img: Superblock invalid, trying backup blocks...
ext4_image2.img: Using backup superblock.
ext4_image2.img: Group descriptors look bad... trying backup blocks
ext4_image2.img: Reinitializing group descriptors
ext4_image2.img: 11/25600 files (0.0% non-contiguous), 25/100000 blocks
Đầu ra cho thấy rằng lệnh e2fsck
đã có thể tự động sửa các lỗi trong hệ thống tập tin bằng cách sử dụng superblock và group descriptor dự phòng.
Tóm tắt
Trong lab này, bạn đã học về mục đích và cách sử dụng lệnh e2fsck
trong Linux. Lệnh e2fsck
được sử dụng để kiểm tra và sửa chữa các hệ thống tập tin Ext2, Ext3 và Ext4, là những hệ thống tập tin thường được sử dụng trong các hệ điều hành dựa trên Linux. Nó có thể được sử dụng để kiểm tra sự hỏng hóc của hệ thống tập tin, khôi phục các tập tin bị mất và tối ưu hóa hiệu suất hệ thống tập tin. Sau đó, bạn đã thực hành sử dụng lệnh e2fsck
để kiểm tra và sửa chữa một hệ thống tập tin Ext4 bị hỏng bằng cách cố ý sửa đổi superblock và sau đó sử dụng lệnh e2fsck
để sửa các sự cố.