Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh fsck
(file system check) của Linux và các ứng dụng thực tế của nó. Lệnh fsck
là một công cụ quan trọng được sử dụng để kiểm tra và sửa chữa các sự không nhất quán của hệ thống tập tin, đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu của bạn. Chúng ta sẽ bắt đầu bằng cách hiểu mục đích và tầm quan trọng của lệnh fsck
, sau đó học cách sử dụng nó để kiểm tra tính toàn vẹn của hệ thống tập tin và sửa chữa mọi sự cố có thể phát sinh. Lab này cung cấp một sự hiểu biết toàn diện về lệnh fsck
và vai trò của nó trong việc duy trì sự ổn định của hệ thống tập tin Linux của bạn.
Tìm hiểu Mục đích và Tầm quan trọng của Lệnh fsck
Trong bước này, chúng ta sẽ khám phá mục đích và tầm quan trọng của lệnh fsck
(file system check) trong Linux. Lệnh fsck
là một công cụ quan trọng được sử dụng để kiểm tra và sửa chữa các sự không nhất quán của hệ thống tập tin, đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu của bạn.
Lệnh fsck
thường được chạy trong quá trình khởi động hệ thống hoặc khi hệ thống tập tin bị nghi ngờ có vấn đề. Nó thực hiện kiểm tra kỹ lưỡng metadata của hệ thống tập tin, chẳng hạn như cấu trúc thư mục, inodes và phân bổ block, để xác định và sửa chữa mọi lỗi hoặc sự không nhất quán.
Hãy bắt đầu bằng cách hiểu mục đích của lệnh fsck
:
sudo fsck --help
Ví dụ về kết quả:
Usage: fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] device
Lệnh fsck
có thể được sử dụng để kiểm tra và sửa chữa nhiều hệ thống tập tin khác nhau, bao gồm ext2, ext3, ext4, XFS và hơn thế nữa. Nó giúp đảm bảo tính toàn vẹn của hệ thống tập tin của bạn, ngăn ngừa mất dữ liệu và đảm bảo hệ thống của bạn hoạt động đúng cách.
Kiểm tra Tính toàn vẹn của Hệ thống tập tin bằng fsck
Trong bước này, chúng ta sẽ học cách sử dụng lệnh fsck
để kiểm tra tính toàn vẹn của hệ thống tập tin trong Linux.
Đầu tiên, hãy tạo một hệ thống tập tin thử nghiệm bằng cách sử dụng một thiết bị loopback:
sudo dd if=/dev/zero of=test.img bs=1M count=100
sudo losetup /dev/loop0 test.img
sudo mkfs.ext4 /dev/loop0
Bây giờ, chúng ta có thể sử dụng lệnh fsck
để kiểm tra tính toàn vẹn của hệ thống tập tin:
sudo fsck /dev/loop0
Ví dụ về kết quả:
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/loop0: clean, 11/25600 files, 6400/102400 blocks
Kết quả cho thấy hệ thống tập tin sạch, không phát hiện ra vấn đề nào.
Hãy tạo ra một lỗi cho hệ thống tập tin bằng cách làm hỏng superblock:
sudo dd if=/dev/zero of=test.img bs=1 count=1 seek=1024
sudo fsck /dev/loop0
Ví dụ về kết quả:
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/loop0: Superblock invalid, trying backup blocks...
/dev/loop0: Going to read-only
/dev/loop0: Backup superblock options:
-b 32768
/dev/loop0: Superblock has an invalid journal (inode 8).
Clear journal (y/n)? y
/dev/loop0: Clearing journal inode
/dev/loop0: The filesystem size (according to the superblock) is 102400 blocks
The physical size of the device is 204800 blocks
Either the superblock or the partition table is likely to be corrupt!
/dev/loop0: ***** FILE SYSTEM WAS MODIFIED *****
/dev/loop0: 11/25600 files (0.0% non-contiguous), 6400/102400 blocks
Trong ví dụ này, chúng ta có thể thấy rằng lệnh fsck
đã phát hiện superblock bị hỏng và cung cấp các tùy chọn để sửa chữa hệ thống tập tin. Điều quan trọng là phải xem xét cẩn thận kết quả và làm theo các hành động được khuyến nghị để đảm bảo tính toàn vẹn của hệ thống tập tin của bạn.
Sửa chữa các Vấn đề của Hệ thống tập tin bằng fsck
Trong bước trước, chúng ta đã tạo ra một lỗi cho hệ thống tập tin bằng cách làm hỏng superblock. Bây giờ, hãy học cách sử dụng lệnh fsck
để sửa chữa hệ thống tập tin.
Đầu tiên, hãy kiểm tra lại hệ thống tập tin để xem các vấn đề:
sudo fsck /dev/loop0
Ví dụ về kết quả:
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/loop0: Superblock invalid, trying backup blocks...
/dev/loop0: Going to read-only
/dev/loop0: Backup superblock options:
-b 32768
/dev/loop0: Superblock has an invalid journal (inode 8).
Clear journal (y/n)? y
/dev/loop0: Clearing journal inode
/dev/loop0: The filesystem size (according to the superblock) is 102400 blocks
The physical size of the device is 204800 blocks
Either the superblock or the partition table is likely to be corrupt!
/dev/loop0: ***** FILE SYSTEM WAS MODIFIED *****
/dev/loop0: 11/25600 files (0.0% non-contiguous), 6400/102400 blocks
Như bạn có thể thấy, lệnh fsck
đã phát hiện superblock bị hỏng và cung cấp một tùy chọn để xóa nhật ký.
Để sửa chữa hệ thống tập tin, chúng ta có thể sử dụng tùy chọn -y
(yes) để tự động trả lời "yes" cho tất cả các lời nhắc:
sudo fsck -y /dev/loop0
Ví dụ về kết quả:
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/loop0: Superblock invalid, trying backup blocks...
/dev/loop0: Going to read-only
/dev/loop0: Backup superblock options:
-b 32768
/dev/loop0: Superblock has an invalid journal (inode 8).
Clear journal (y/n)? y
/dev/loop0: Clearing journal inode
/dev/loop0: The filesystem size (according to the superblock) is 102400 blocks
The physical size of the device is 204800 blocks
Either the superblock or the partition table is likely to be corrupt!
/dev/loop0: ***** FILE SYSTEM WAS MODIFIED *****
/dev/loop0: 11/25600 files (0.0% non-contiguous), 6400/102400 blocks
Tùy chọn -y
tự động trả lời "yes" cho tất cả các lời nhắc, cho phép lệnh fsck
sửa chữa hệ thống tập tin mà không cần sự can thiệp của người dùng.
Sau khi sửa chữa, bạn có thể gắn lại hệ thống tập tin và tiếp tục sử dụng nó.
Tóm tắt
Trong lab này, chúng ta đã học mục đích và tầm quan trọng của lệnh fsck
(file system check) trong Linux. Lệnh fsck
là một công cụ quan trọng được sử dụng để kiểm tra và sửa chữa các sự không nhất quán của hệ thống tập tin, đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu của bạn. Chúng ta cũng đã học cách sử dụng lệnh fsck
để kiểm tra tính toàn vẹn của hệ thống tập tin và cách sửa chữa các sự cố bằng cách tạo ra một lỗi cho hệ thống tập tin và chạy fsck
để phát hiện và khắc phục sự cố.