Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh badblocks
của Linux, một tiện ích được sử dụng để quét đĩa để tìm các bad block. Lệnh badblocks
có thể giúp xác định và đánh dấu các sector lỗi trên đĩa, cải thiện độ tin cậy của thiết bị lưu trữ của bạn. Chúng ta sẽ học cách thực hiện quét chỉ đọc không phá hủy trên đĩa để phát hiện bất kỳ bad block nào và cách sửa chữa chúng nếu cần thiết. Lệnh badblocks
là một công cụ mạnh mẽ để duy trì tình trạng của hệ thống lưu trữ của bạn.
Giới thiệu về lệnh badblocks
Trong bước này, chúng ta sẽ khám phá lệnh badblocks
, một tiện ích Linux được sử dụng để quét đĩa để tìm các bad block. Lệnh badblocks
có thể được sử dụng để xác định và đánh dấu các sector lỗi trên đĩa, điều này có thể giúp ngăn ngừa mất dữ liệu và cải thiện độ tin cậy của thiết bị lưu trữ của bạn.
Đầu tiên, hãy kiểm tra phiên bản của lệnh badblocks
được cài đặt trên hệ thống của chúng ta:
badblocks --version
Ví dụ đầu ra:
badblocks 1.46.2 (11-Nov-2022)
Lệnh badblocks
có một số tùy chọn cho phép bạn tùy chỉnh quá trình quét. Một số tùy chọn được sử dụng phổ biến nhất bao gồm:
-b
: Chỉ định kích thước block tính bằng byte (mặc định là 1024 byte)-c
: Chỉ định số lượng block cần kiểm tra tại một thời điểm (mặc định là 64)-s
: In trạng thái của quá trình quét khi nó tiến triển-t
: Chỉ định loại kiểm tra (đọc-ghi không phá hủy, chỉ đọc không phá hủy hoặc phá hủy)-v
: Bật đầu ra chi tiết
Để thực hiện quét chỉ đọc không phá hủy trên đĩa, bạn có thể sử dụng lệnh sau:
sudo badblocks -v /dev/sdb
Lệnh này sẽ quét đĩa /dev/sdb
để tìm các bad block và hiển thị tiến trình quét. Tùy chọn -v
cho phép đầu ra chi tiết, cung cấp thông tin chi tiết hơn về quá trình quét.
Quét đĩa để tìm Bad Blocks
Trong bước này, chúng ta sẽ học cách thực hiện quét toàn diện một đĩa để xác định bất kỳ bad block nào.
Đầu tiên, hãy xác định đĩa mà chúng ta muốn quét. Bạn có thể sử dụng lệnh lsblk
để liệt kê tất cả các thiết bị block trên hệ thống của bạn:
sudo lsblk
Ví dụ đầu ra:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 100G 0 part /
sdb 8:16 0 20G 0 disk
Trong ví dụ này, đĩa mà chúng ta muốn quét là /dev/sdb
, là một đĩa 20GB.
Để thực hiện quét chỉ đọc không phá hủy trên đĩa, chúng ta có thể sử dụng lệnh sau:
sudo badblocks -v /dev/sdb
Lệnh này sẽ quét đĩa /dev/sdb
để tìm các bad block và hiển thị tiến trình quét. Tùy chọn -v
cho phép đầu ra chi tiết, cung cấp thông tin chi tiết hơn về quá trình quét.
Ví dụ đầu ra:
Checking blocks 0 to 41943039
Checking for bad blocks (read-only test)
Pass completed, 0 bad blocks found.
Đầu ra cho thấy quá trình quét không tìm thấy bad block nào trên đĩa /dev/sdb
.
Nếu quá trình quét tìm thấy bất kỳ bad block nào, bạn có thể sử dụng tùy chọn -o
để lưu danh sách các bad block vào một file:
sudo badblocks -v -o badblocks.txt /dev/sdb
Điều này sẽ lưu danh sách các bad block vào một file có tên badblocks.txt
trong thư mục hiện tại.
Sửa chữa Bad Blocks trên đĩa
Trong bước trước, chúng ta đã học cách quét đĩa để tìm các bad block bằng lệnh badblocks
. Trong bước này, chúng ta sẽ học cách sửa chữa các bad block trên đĩa.
Để sửa chữa bad block, chúng ta có thể sử dụng lệnh e2fsck
, một tiện ích để kiểm tra và sửa chữa hệ thống file ext2, ext3 và ext4. Dưới đây là cách bạn có thể sử dụng nó để sửa chữa bad block trên đĩa:
-
Xác định loại hệ thống file của đĩa bạn muốn sửa chữa. Bạn có thể sử dụng lệnh
lsblk
để liệt kê các thiết bị block trên hệ thống của bạn và xác định loại hệ thống file:sudo lsblk -f
Ví dụ đầu ra:
NAME FSTYPE LABEL UUID MOUNTPOINT sda1 ext4 c4a1d8d1-c3d3-4d4f-a6b0-e0c8c6a6d8d7 / sdb
Trong ví dụ này, đĩa
/dev/sdb
không có hệ thống file, vì vậy chúng ta không thể sử dụnge2fsck
để sửa chữa nó. -
Nếu đĩa có hệ thống file ext2, ext3 hoặc ext4, bạn có thể sử dụng lệnh
e2fsck
để sửa chữa các bad block:sudo e2fsck -c /dev/sdb
Lệnh này sẽ quét đĩa
/dev/sdb
để tìm các bad block và đánh dấu chúng là không sử dụng được, ngăn chúng được sử dụng để lưu trữ dữ liệu.Ví dụ đầu ra:
e2fsck 1.46.2 (11-Nov-2022) Pass 1: Checking inodes, blocks, and sizes Checking for bad blocks (read-only test) Pass completed, 0 bad blocks found.
Đầu ra cho thấy lệnh
e2fsck
không tìm thấy bất kỳ bad block nào trên đĩa/dev/sdb
.
Nếu lệnh e2fsck
tìm thấy bất kỳ bad block nào, nó sẽ đánh dấu chúng là không sử dụng được và ngăn chúng được sử dụng để lưu trữ dữ liệu. Sau đó, bạn có thể sử dụng đĩa với các bad block đã được đánh dấu hoặc xem xét thay thế đĩa nếu số lượng bad block quá cao.
Tóm tắt
Trong lab này, chúng ta đã tìm hiểu về lệnh badblocks
của Linux, được sử dụng để quét đĩa để tìm các bad block. Chúng ta bắt đầu bằng cách khám phá các tùy chọn khác nhau có sẵn với lệnh badblocks
, chẳng hạn như chỉ định kích thước block, số lượng block cần kiểm tra tại một thời điểm và loại kiểm tra cần thực hiện. Sau đó, chúng ta đã học cách thực hiện quét chỉ đọc không phá hủy trên đĩa để xác định bất kỳ bad block nào. Cuối cùng, chúng ta đã thảo luận về cách sửa chữa bad block trên đĩa bằng lệnh badblocks
.