V. Starting Up and Shutting Down
5. Checking filesystem integrity
Trong quá trình hoạt động hệ thống không tránh khỏi diễn ra trạng thái một ai đó đột ngột ngắt điện máy tính, hệ thống cấp điện cho máy bị mất, một ai đó nhấn nút reset .... các hiện tượng này sẽ dẫn đến hiện tượng thông tin trên hệ thống vẫn còn tồn tại mà chưa được ghi ra đĩa. Khi xảy ra các lỗi này thì ta cần phải thực hiện việc kiểm tra tính toàn vẹn của hệ thống điều này là cần thiết nếu như cấu trúc hệ thống là không còn đúng. Để thực hiện việc kiểm tra và sửa chữa các lỗi này dùng lệnh fsck.
Lệnh fsck thự hiện theo nhiều giai đoạn. Mỗi giai đoạn thực hiện một nhiệm vụ riêng và các giai đoạn sau đều dựa vào kết quả thực hiện ở giai đoạn trước đó. fsck thực hiện duyệt bắt đầu từ superblock liên quan đến các vùng disk blocks, pathnames, directory connectivity, link reference counts, và vùng trống của blocks và inodes.
Các giai doạn kiểm tra của lệnh fsck:
Phase 1: Kiểm tra Block và Size giai đoạn này kiểm tra danh sách inode, tìm các inode bị vô hiệu. Lỗi này được thông báo như sau:
UNKNOWN FILE TYPE I=inode number (CLEAR)
PARTIALLY TRUNCATED INODE I=inode number (SALVAGE) block BAD I=inode number
block DUP I=inode number
Phase 2: Kiểm tra đường dẫn, giai đoạn này xoá bỏ các thư mục từ các bad inodes được tìm thấy ở giai đoạn 1 và tiến hành kiểm tra thư mục với các con trỏ inode mà bị vượt quá phạm vi hoặc con trỏ trỏ tới bad inode. Lỗi này được thông báo như sau:
ROOT INODE NOT DIRECTORY (FIX?)
UNALLOCATED I=inode number OWNER=O MODE=M SIZE=S MTIME=T TYPE=F
(REMOVE?)
BAD/DUP I=inode number OWNER=O MODE=M SIZE=S MTIME=T TYPE=F (REMOVE?)
Phase 3: Kiểm tra kết nối, giai đoạn này phát hiện lỗi ở các thư mục không tham chiếu, bằng cách tạo thư mục lost+found nếu cần và chuyển các phần không đúng vào thư mục lost+found.
Phase 4: Kiểm tra đếm tham chiếu, giai đoạn này sử dụng thông tin trong giai đoạn 2 và 3 để kiểm tra các file không tham chiếu và đếm liên kết không đúng trên các file, directory, hoặc file đặc biệt. Thông báo như sau:
UNREF FILE I=inode number OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT?)
LINK COUNT FILE I=inode number OWNER=O MODE=M SIZE=S MTIME=T COUNT=X
(ADJUST?)
LINK COUNT DIR I=inode number OWNER=O MODE=M SIZE=S MTIME=T COUNT=X
(ADJUST?)
BAD/DUP FILE I=inode number OWNER=O MODE=M SIZE=S MTIME=T (CLEAR)
Phase 5: Kiểm tra Cylinder Groups, giai đoạn này kiểm tra các block tự do block và các inode chưa sử dụng. Nó sẽ tự động sửa đổi lại danh sách các inode tự do cho đúng nếu cần thiết, tuy nhiên có các yêu cầu đòi người quản trị phải trả lời.
What Do I Do After fsck Finishes?