Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Linux

Sửa chữa block xấu trên đĩa Linux: Kỹ thuật đã được chứng minh

Người dùng dual-boot Linux với Windows đôi khi thu hẹp hoặc mở rộng phân vùng để dành chỗ cho hệ điều hành. Cuối cùng có thể nhận cảnh báo từ GParted (Linux) hoặc chkdsk (Windows) về bad sector (sector xấu). Người dùng đơn lẻ Linux cũng đôi khi gặp tương tự. Dù vậy, người dùng thực sự nhận thông báo về hai loại bad sector khác nhau ngụy trang thành một. Loại đầu tiên là thông báo truyền thống sector xấu chỉ vấn đề hình học vật lý đĩa hoặc ô nhớ NAND. Đây là điều đa số người nghĩ khi phàn nàn bad block, tuy có sự khác biệt kỹ thuật nhỏ giữa bad sector và bad block. Tuy nhiên, máy hiếm khi gắn cờ sector xấu sai.

Đây gọi là soft bad sector (sector xấu mềm) hoặc software bad block, có thể sửa chỉ qua thao tác hệ thống file đơn giản. Cân nhắc nguy hiểm ghi vào bad block, luôn tốt khi bắt đầu điều tra bằng kiểm tra dữ liệu SMART khi xử lý ổ cố định. Điều này không phá hoại, và loại trừ vấn đề hình học trước khi tiến hành. Nếu không làm việc với ổ cố định, bạn có thể bắt đầu điều tra bằng phương pháp tiếp theo.

Phương pháp 1: Kiểm tra dữ liệu SMART

Dễ tin bad sector chỉ lỗi phần mềm, nhưng có cách kiểm tra chắc chắn. Dùng dữ liệu SMART, dễ dàng kiểm tra firmware ổ và biết chắc. Mở GNOME Disks Utility từ Dash (Unity), Whisker (Xfce4), Accessories (LXDE) hoặc GNOME Applications (KDE). También chạy gnome-disks tại terminal. Click menu bên cạnh điều khiển cửa sổ bên phải sau khi highlight ổ cứng con trỏ ở cột trái. Trên hầu hết cài GNU/Linux, Disks utility mặc định ổ cứng chính.

Chọn SMART Data & Self-Tests từ menu. También giữ Ctrl+S mở cửa sổ này. Nó hiển thị sức khỏe ổ hiện tại. Nếu giá trị trống, nhấn Start Self-test ép ổ tự kiểm tra. Dòng Overall Assessment ở đầu cho biết Disks Utility nghĩ gì về ổ.

Có thể phải cuộn qua SMART Attributes ngay cả trên full-screen. Chú ý đặc biệt tùy chọn Reallocation Count. Nó cho biết bao nhiêu sector đã được phân bổ lại. Nếu nhiều sector xấu, tốt nhất thay ổ trước khi nó hỏng hoàn toàn.

Phương pháp 2: Kiểm tra superblock đúng

Đôi khi SMART cho thấy ổn, nhưng bạn nhận lỗi "Bad Superblock" từ tiện ích đĩa. Nếu làm việc với thẻ SD, USB flash hoặc bộ nhớ khác, không đọc được SMART nhưng vẫn có lỗi. Rất có thể là vấn đề phần mềm. Xem xét chạy lệnh như:

fsck.ext4 /dev/sda

Điều này nhiều khả năng báo bad superblock, đề cập đến master block trong hệ thống file. Kết quả của lỗi CLI, không phải bad block thật. Vì /dev/sdb tham chiếu ổ chứ không phải phân vùng, lệnh fsck tìm superblock nơi không có và nhầm nghĩ có vấn đề. May mắn lệnh này không phá hoại. Chạy:

sudo fsck.ext4 /dev/sda1

Nó có thể báo hệ thống file sạch. Đảm bảo số sau ext khớp phiên bản ext của volume.

Bạn cũng nhận lỗi này nếu chạy ext2/3/4 fsck trên volume FAT12/16/32, NTFS hoặc HFS/HFS+. Consistency checker bị nhầm lẫn nghĩ có lỗi, thực tế loại cấu trúc file không khớp kỳ vọng. Chạy fsck.vfat hoặc dosfsck trên volume FAT bất kể phiên bản bit. Dùng tùy chọn -t sau dosfsck hoặc fsck.vfat (fsck.msdos trên một số Linux) để đánh dấu cluster không đọc được làm bad block.

Phương pháp 3: Kiểm tra bad block trên volume NTFS

Giả sử dual-boot Windows/Linux và có lỗi superblock hoặc bad sector khác trên volume NTFS, restart vào Windows, từ command line chạy chkdsk /r c:, thay c: bằng ký tự ổ NTFS. Windows nhiều khả năng phải reboot hoàn thành quét bề mặt. Mất thời gian, nếu OS có vẻ không phản hồi, chỉ do thời gian dài. Nếu lỗi quyền không đủ, chuột phải command prompt Start Menu chọn Run as administrator.

Nếu làm việc NTFS chỉ dưới Linux, không có cách khôi phục nhiều, nhưng nếu lỗi bad block chỉ do mismatch loại, có cách sửa. Chạy sudo ntfsfix /dev/sdb1, thay chữ/số sau /dev/sd bằng identifier thiết bị/phân vùng đúng. Luôn có thể sudo fdisk -l hoặc quay lại GNOME Disks Utility nếu cài để kiểm tra tên mọi volume. Chạy sudo ntfsfix -d /dev/sdb1 nếu chắc chắn muốn xóa dirty bit.

Nếu chắc volume NTFS có soft bad block không do hình học phần cứng (ví dụ: clone ổ cũ có bad sector sang ổ mới), chạy sudo ntfsfix -bd /dev/sdb1 trên volume muốn. Điều này reset danh sách dấu hiệu bad block.

Phương pháp 4: Sử dụng tiện ích badblocks Linux

Đã boot vào live ISO Linux hoặc tìm cách unmount ext2/3/4, bạn có thể chạy sudo fsck.ext4 -c /dev/sda1 quét chỉ đọc bad block. Tự nhiên cần identifier volume đúng sau /dev/sd và phiên bản ext đúng sau fsck.ext. Nếu chỉ định -cc, chương trình dùng test read-write non-destructive mở rộng hơn.

Đây là cách dùng badblocks utility bình thường, nhưng kỹ thuật có thể dùng riêng nó. Chạy sudo badblocks -n <tên_thiết_bị> chạy riêng nó báo badblocks tại terminal. Dùng -w cho test write-mode, nhưng không dùng -n và -w cùng lúc vì loại trừ nhau. Không bao giờ dùng -w trên volume có dữ liệu, nó xóa sạch. Dùng -n chậm hơn nhưng bảo toàn dữ liệu. -w ổn cho volume không ngại xóa. -v kết hợp với cả hai, cho output verbose hữu ích kiểm tra hỏng dữ liệu. Luôn dùng -o kèm tên file text ghi thông tin xem sau. Có thể chạy sudo badblocks -nv -o badblocks.log /dev/sdb1 lấy snapshot, vì thấy nhiều thông tin nếu có genuine bad block.

VỀ TÁC GIẢ

Sửa chữa block xấu trên đĩa Linux: Kỹ thuật đã được chứng minh

Kevin Arrows

Kevin Arrows là chuyên gia công nghệ giàu kinh nghiệm với hơn một thập kỷ trong ngành. Anh持有 chứng chỉ Microsoft Certified Technology Specialist (MCTS) và đam mê cập nhật các phát triển công nghệ mới nhất. Kevin đã viết nhiều về các chủ đề công nghệ, thể hiện chuyên môn trong phát triển phần mềm, an ninh mạng và điện toán đám mây. Đóng góp của anh được công nhận rộng rãi và được đồng nghiệp tôn trọng, đặc biệt là khả năng giải thích các khái niệm kỹ thuật phức tạp một cách rõ ràng, súc tích.