Tôi nghi ngờ có thể có khu vực xấu trên đĩa. Tôi đã sử dụng hệ thống tập tin ext3.
Công cụ nào tương đương tốt nhất với công cụ kiểm tra lỗi của Windows?
Tôi nghi ngờ có thể có khu vực xấu trên đĩa. Tôi đã sử dụng hệ thống tập tin ext3.
Công cụ nào tương đương tốt nhất với công cụ kiểm tra lỗi của Windows?
Câu trả lời:
Để kiểm tra các thành phần xấu, hãy kiểm tra dữ liệu SMART, có thể truy cập tốt nhất bằng cách khởi chạy tiện ích Disks ( Palimpsest ). Ngay cả khi bạn không thấy bất kỳ khối xấu nào ở đó, hãy khởi chạy tự kiểm tra để chắc chắn.
Chương trình được gói trong gnome-disk-utility
gói. Chạygksudo gnome-disks
Hoặc trong phiên bản Ubuntu 16.04 (3.18):
Bạn cũng có thể dùng badblocks
sudo badblocks -sv /dev/sda
để chỉ kiểm tra hoặc kiểm tra và sửa lỗi trước tiên hãy ghi kết quả vào một tệp tạm thời:
sudo badblocks -sv /dev/sda > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1
sẽ kiểm tra toàn bộ đĩa và in ra tất cả các khối xấu gặp phải trên / dev / sda .
Từ badblocks
hướng dẫn:
Lưu ý quan trọng: Nếu đầu ra của badblocks sẽ được cung cấp cho các chương trình e2fsck hoặc mke2fs, thì điều quan trọng là kích thước khối được chỉ định đúng, vì số khối được tạo ra phụ thuộc rất nhiều vào kích thước khối được sử dụng bởi hệ thống tệp . Vì lý do này, chúng tôi khuyến nghị người dùng không nên chạy badblocks trực tiếp mà nên sử dụng tùy chọn -c của chương trình e2fsck và mke2fs.
fsck
fsck
chính nó sẽ không giúp bạn tìm thấy các thành phần xấu, tệ hơn nữa, nếu có nhiều thành phần xấu, nó có thể làm hỏng dữ liệu của bạn nhiều hơn. Chỉ sử dụng khi đĩa khỏe.
Trong câu trả lời này, tôi sẽ giả sử rằng một ổ lưu trữ xuất hiện dưới dạng một thiết bị khối ở đường dẫn /dev/sdc
. Để tìm đường dẫn của ổ lưu trữ trong thiết lập hiện tại của chúng tôi, hãy sử dụng:
palimpsest
), nếu GUI có sẵn, hoặclsblk
và ls -l /dev/disk/by-id
cố gắng tìm đúng thiết bị theo kích cỡ, phân vùng, nhà sản xuất và tên model.Đôi khi một phương tiện lưu trữ chỉ đơn giản là từ chối làm việc. Nó vẫn xuất hiện dưới dạng một thiết bị chặn cho kernel và trong trình quản lý đĩa, nhưng khu vực đầu tiên của nó giữ bảng phân vùng là không thể đọc được. Điều này có thể được xác minh dễ dàng với:
sudo dd if=/dev/sdc of=/dev/null count=1
Nếu lệnh này dẫn đến một thông báo về lỗi Đầu vào / đầu ra, thì ổ đĩa của chúng tôi bị hỏng hoặc không thể tương tác với nhân Linux như mong đợi. Trong trường hợp trước đây, với một chút may mắn, một chuyên gia phục hồi dữ liệu với phòng thí nghiệm được trang bị phù hợp có thể cứu vãn nội dung của nó. Trong trường hợp sau, một hệ điều hành khác đáng để thử. (Tôi đã bắt gặp các ổ USB hoạt động trên Windows mà không cần trình điều khiển đặc biệt, nhưng không phải trên Linux hoặc OS X.)
Các thiết bị hỗ trợ nó, có thể được truy vấn về sức khỏe của chúng thông qua SMART hoặc được hướng dẫn để thực hiện tự kiểm tra tính toàn vẹn của tính kỹ lưỡng khác nhau. Đây thường là tùy chọn tốt nhất, nhưng thường chỉ có sẵn trên đĩa cứng (không cổ) và ổ đĩa trạng thái rắn. Hầu hết các phương tiện flash có thể tháo rời không hỗ trợ nó.
Tài nguyên và hướng dẫn thêm:
Để kiểm tra tính toàn vẹn đọc của toàn bộ thiết bị mà không cần ghi vào thiết bị, chúng ta có thể sử dụng badblocks(8)
như sau:
sudo badblocks -b 4096 -c 4096 -s /dev/sdc
Thao tác này có thể mất nhiều thời gian, đặc biệt nếu ổ đĩa lưu trữ thực sự bị hỏng. Nếu số lỗi tăng lên trên 0, chúng ta sẽ biết rằng có một khối xấu. Chúng tôi có thể hủy bỏ hoạt động một cách an toàn bất cứ lúc nào (thậm chí mạnh mẽ như khi mất điện), nếu chúng tôi không quan tâm đến số lượng chính xác (và có thể là vị trí) của các khối xấu. Có thể hủy bỏ tự động do lỗi với tùy chọn -e 1
.
Lưu ý cho việc sử dụng nâng cao: nếu chúng tôi muốn sử dụng lại đầu ra cho e2fsck
, chúng tôi cần đặt kích thước khối ( -b
) cho kích thước của hệ thống tệp được chứa. Chúng tôi cũng có thể điều chỉnh lượng dữ liệu ( -c
, trong các khối) được kiểm tra cùng một lúc để cải thiện thông lượng; 16 MiB sẽ ổn cho hầu hết các thiết bị.
Đôi khi - đặc biệt là với phương tiện flash - một lỗi chỉ xảy ra khi cố gắng viết. (Điều này sẽ không đáng tin cậy phát hiện phương tiện (flash), quảng cáo có kích thước lớn hơn so với thực tế; sử dụng Fight Flash Fraud thay thế.)
KHÔNG BAO GIỜ sử dụng điều này trên một ổ đĩa có hệ thống tập tin gắn kết ! badblocks
từ chối hoạt động trên những cái đó, trừ khi bạn ép buộc nó.
Đừng làm gián đoạn hoạt động này một cách mạnh mẽ ! Ctrl+ C(SIGINT / SIGTERM) và chờ kết thúc sớm duyên dáng là được, nhưng killall -9 badblocks
(SIGKILL) thì không. Sau khi chấm dứt mạnh mẽ badblocks
không thể khôi phục nội dung ban đầu của phạm vi khối hiện đang được thử nghiệm và sẽ để nó bị ghi đè bằng dữ liệu rác và có thể làm hỏng hệ thống tệp.
Để sử dụng kiểm tra đọc ghi không phá hủy, hãy thêm -n
tùy chọn vào badblocks
lệnh trên .
Như trên, nhưng không khôi phục nội dung ổ đĩa trước đó sau khi thực hiện kiểm tra ghi, do đó, nó nhanh hơn một chút. Vì dù sao dữ liệu cũng bị xóa, nên việc chấm dứt mạnh mẽ vẫn không có (hậu quả) tiêu cực.
Để sử dụng kiểm tra đọc ghi phá hủy, thêm -w
tùy chọn vào badblocks
lệnh trên .
fsck - kiểm tra và sửa chữa hệ thống tệp Linux. Gọi nó bằng cách sử dụng
fsck /dev/sda1
trong đó / dev / sda1 là ổ đĩa bạn muốn kiểm tra. Xem 'man fsck' để biết thêm chi tiết.
Ngoài ra còn có lệnh 'badblocks' để kiểm tra một thiết bị, bạn đoán nó, các khối xấu.
Ổ đĩa cần được ngắt kết nối khi được kiểm tra, vì vậy để kiểm tra phân vùng gốc, bạn cần tạo một tệp 'forcefsck' trong thư mục gốc của phân vùng và khởi động lại. Thiết bị sẽ được kiểm tra khi khởi động tiếp theo:
sudo touch /forcefsck
sudo reboot
Ngoài ra, bạn có thể khởi động từ Live CD và chạy kiểm tra từ đó.
sudo dumpe2fs -b /dev/sda9
. Nhưng tôi nghĩ sẽ tốt hơn nếu đĩa chăm sóc các cung bị lỗi chứ không phải hệ thống tập tin (SMART, badblocks, v.v., xem bài đăng của tôi).
Bạn có thể kiểm tra các badblocks chạy lệnh
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
cho một bài kiểm tra đọc-viết không phá hủy. Điều đó sẽ tạo ra một tệp được gọi bad-blocks-result
với các khu vực bị hư hỏng.
-n Sử dụng chế độ đọc-ghi không phá hủy. Theo mặc định, chỉ có một thử nghiệm chỉ đọc không phá hủy được thực hiện.
-s Hiển thị tiến trình quét bằng cách viết ra phần trăm hoàn thành thô của các badblocks hiện tại vượt qua đĩa.
-v Chế độ dài dòng.
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
để báo cho hệ thống tệp biết các thành phần xấu đang ở đâu và di chuyển dữ liệu ra khỏi chúng, nếu có thể.Bạn có thể tìm đọc thêm về nó ở đây .
fsck
lệnh không thành công với btrfs
hệ thống tập tin.
IMO smartctl là một công cụ tốt hơn. Bạn có thể phải cài đặt nó trước
sudo apt-get install smartmontools
Sau đó
sudo smartctl -a /dev/sda | less
để in dữ liệu sức khỏe ổ đĩa, thuộc tính và kết quả kiểm tra có sẵn. Để bỏ ít hơn, gõ q
. Hoặc
sudo smartctl -H /dev/sda
để chỉ in dữ liệu sức khỏe.
Để bắt đầu tự kiểm tra mới (một vài phút) hoặc dài (tối đa nhiều giờ) trong nền:
sudo smartctl -t [short|long]
GSsmartControl ( trang chủ ) và Đĩa Gnome là giao diện đồ họa nếu bạn thích.
smartctl
được báo cáo: "Cầu USB không xác định", "Vui lòng chỉ định loại thiết bị với tùy chọn -d". Tôi đã tìm thấy dữ liệu tôi cần tại: smartmontools.org/wiki/Supported_USB-Devices .
F3 (Fight Flash Fraud) là một tùy chọn khác sẽ phát hiện thêm ổ đĩa flash giả (ổ đĩa flash có dung lượng thực tế là một phần của dung lượng được quảng cáo):
Cài đặt F3
sudo apt install f3
Chèn ổ đĩa của bạn
Ghi dữ liệu kiểm tra vào không gian trống trên ổ đĩa (kiểm tra nơi ổ đĩa của bạn được gắn kết lsblk
)
f3write /media/$USER/D871-DD7C/
Đọc dữ liệu kiểm tra
f3read /media/$USER/D871-DD7C/
Tài liệu tham khảo:
Badblocks hoạt động tốt nhưng nó không được thiết kế để phát hiện ổ đĩa flash giả và có thể không báo cáo bất kỳ lỗi nào cho chúng .
badblocks
có -w
hoặc có các fsck
dấu hiệu là xấu / hỏng nên chúng không được sử dụng. f3 có thể trả về một cái gì đó như thế Corrupted: 16.01 MB (32784 sectors)
, nhưng đánh dấu đó là những thành phần xấu? Hay chúng ta vẫn cần badblocks cho điều đó? Tôi đang cố gắng vớidumpe2fs -b
và có vẻ như id không đánh dấu.
Bạn có thể kiểm tra đọc toàn bộ đĩa, đồng thời hiển thị chỉ báo tiến trình:
time sudo pv /dev/sdc >/dev/null
Một số vấn đề về đĩa sẽ biểu hiện như lỗi I / O được báo cáo. Điều này đẹp hơn một chút so với dd
chỉ báo tiến trình và bởi vì giao diện dòng lệnh là tiêu chuẩn hơn một chút và ít lỗi chính tả hơn một chút . Lưu ý rằng pv
về cơ bản và phiên bản nâng cao của cat
. Nó có thể không được cài đặt theo mặc định, nhưng có thể được cài đặt với sudo apt-get install pv
.
Một cách tiếp cận tương tự là đọc đĩa bằng một trong một số công cụ có sẵn nhận biết cụ thể về lỗi I / O của đĩa - và có tính năng "cố gắng hết sức để cứu dữ liệu". Tìm kiếm ddrescue
trong trình quản lý gói.
dd count=1
cũng khá nhanh trừ khi phương tiện lưu trữ bị hỏng hoàn toàn (hoặc không được hỗ trợ).
ddrescueview
dd
có chỉ báo tiến trình với status=progress
.
Nếu bạn có một phân vùng mà bạn KHÔNG THỂ LO LẮNG DỮ LIỆU, hãy làm theo các bước sau
$fdisk -l commnd
Giả sử rằng phân vùng cần kiểm tra được gọi là / dev / sdPTC (phân vùng cần kiểm tra) và bạn có một phân vùng khác để lưu trữ các kết quả được gắn trên thư mục / scan / resultPath /
2.Sau đó bạn có thể chạy lệnh này
$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt
sẽ xác định các khối xấu của thiết bị đã cho là gì và lưu trữ chúng trên một tệp có tên badsector.txt
fsck
lệnh để yêu cầu Ubuntu không sử dụng các thành phần xấu được đề cập trong tệp badsector.txt.$sudo fsck -l /scan_result/badsectors.txt /dev/sda
Bằng cách đó, tuổi thọ của đĩa cứng được tăng lên một chút cho đến khi bạn có một cái mới để thay thế.
Nếu bạn có một phân vùng hoàn chỉnh mà bạn muốn kiểm tra các thành phần vật lý xấu và bạn CÓ THỂ ẢNH HƯỞNG TẤT CẢ DỮ LIỆU trên phân vùng đó hoặc EMPTY làm theo các bước sau
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
Kiểm tra và kiểm tra lại xem không có dữ liệu quan trọng trên phân vùng đó
Sử dụng gnome-disks
XÓA / XÓA phân vùng bằng tay bằng dấu "-"
Sử dụng gnome-disks
TẠO một phân vùng mới và chọn tùy chọn "chậm" sẽ kiểm tra lỗi đã cho
bionic beaver
xử lý kiểm tra đĩa khác nhau?