Làm thế nào để chạy một kiểm tra?


84

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?


@PabloBianchi: Câu hỏi đó có cùng phạm vi. Tôi đang gắn cờ họ cho một mod để hợp nhất chúng.
David foerster

Câu trả lời:


101

Đĩa

Để 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-utilitygói. Chạygksudo gnome-disks

Thông minh từ Palimpsest

Hoặc trong phiên bản Ubuntu 16.04 (3.18):

Thông minh từ đĩa

Badblocks

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ừ badblockshướ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

fsckchí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.


1
Trên thực tế, hướng dẫn sử dụng của badblocks không khuyến khích sử dụng trực tiếp và hướng người dùng đến e2fsck với tùy chọn "-c" (chỉ kiểm tra đọc) hoặc "-cc" (để kiểm tra đọc ghi).
mrówa

2
như một lưu ý, vào ngày 13.04, bạn chạy nhanh nhất bằng cách chỉ chạy "đĩa" từ menu ubfox, tuy nhiên ... Tôi không thấy tùy chọn nào để khởi chạy tự kiểm tra (có thể vì tôi chỉ có một ổ đĩa và đó là ổ đĩa đang chạy Ubuntu ...)
rogerdpack

2
@ mrówa hướng dẫn chỉ nói để làm điều đó nếu "đầu ra của badblocks sẽ được cung cấp cho các chương trình e2fsck hoặc mke2fs"
Jon

1
Đặt thông tin để liệt kê tất cả các đĩa sử dụng sudo fdisk -l
Kangarooo

2
bây giờ được gọi là đĩa gnome
endolith

74

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:

  • Đĩa Gnome Cài đặt đĩa Gnome (trước đây là Gnome Disk Utility, hay còn gọi là palimpsest), nếu GUI có sẵn, hoặc
  • trên thiết bị đầu cuối nhìn vào đầu ra của lsblkls -l /dev/disk/by-idcố 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.

Kiểm tra cơ bản

  • chỉ phát hiện phương tiện truyền thông hoàn toàn không phản hồi
  • gần như tức thời (trừ khi phương tiện bị quay xuống hoặc bị hỏng)
  • an toàn
  • hoạt động trên phương tiện chỉ đọc (ví dụ: CD, DVD, BluRay)

Đô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.)

Tự kiểm tra thông minh

  • điều chỉnh triệt để
  • tức thời đến chậm hoặc chậm (phụ thuộc vào tính kỹ lưỡng của bài kiểm tra)
  • an toàn
  • cảnh báo về khả năng thất bại trong tương lai gần

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 chỉ đọc

  • chỉ phát hiện một số lỗi phương tiện flash
  • khá đáng tin cậy cho đĩa cứng
  • chậm
  • an toàn
  • hoạt động trên phương tiện chỉ đọc (ví dụ: CD, DVD, BluRay)

Để 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ị.

Kiểm tra đọc-ghi không phá hủy

  • rất kỹ lưỡng
  • chậm nhất
  • khá an toàn (ngăn chặn sự cố mất điện hoặc hoảng loạn hạt nhân không liên tục)

Đô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 ! badblockstừ 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ẽ badblockskhô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 -ntùy chọn vào badblockslệnh trên .

Kiểm tra đọc-ghi phá hủy

  • rất kỹ lưỡng
  • Chậm hơn
  • XÓA TẤT CẢ DỮ LIỆU TRÊN DRIVE

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 -wtùy chọn vào badblockslệnh trên .


43

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ừ đó.


Cảm ơn, máy đang chạy mà không có màn hình, có cách nào để truy cập đầu ra của kiểm tra sau khi khởi động lại không?
Guillaume Coté

Tôi đã tạo tập tin và khởi động lại, nhưng nó thực sự nhanh chóng và không có gì mới trong boot.log.
Guillaume Coté

fsck chỉ cần kiểm tra rất nhanh, tôi đã thử tùy chọn -c để kiểm tra khối xấu.
Guillaume Coté

fsck -c vừa nói: / dev / sda9: Cập nhật inode khối xấu. Tôi không có thông tin về số lượng nút xấu và tỷ lệ của hệ thống tệp mà chúng đại diện.
Guillaume Coté

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).
sắp xếp

20

badblocks

Bạn có thể kiểm tra các badblocks chạy lệnh

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultcho 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-resultvớ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.

  2. Sau đó, bạn có thể chạy 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 .


1
Để tiếp tục với badblocks sau hoặc nếu bạn quên xuất phần bad bad sang tệp văn bản (như tôi), câu trả lời này sẽ giúp bạn: superuser.com/a/693000/218025
chelder

Tôi có thể sử dụng badblocks để kiểm tra phân vùng windows của mình không? Hoặc bằng cách nào đó nó có thể làm hỏng nó?
Riêng tư

1
@Private Nếu bạn có câu hỏi mới, vui lòng sử dụng liên kết "Đặt câu hỏi" ở trên cùng.
Giăng

Các fscklệnh không thành công với btrfshệ thống tập tin.
Luís de Sousa

20

thông minh

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.

Xem thêm


5
Giải pháp tuyệt vời, nếu thiết bị hỗ trợ SMART. Nhiều ổ đĩa flash di động (giá rẻ) và ổ cứng rất cũ không có.
David Foerster

Ban đầu tôi bị bối rối khi 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 .
tộc

10

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):

  1. Cài đặt F3

    sudo apt install f3
    
  2. Chèn ổ đĩa của bạn

  3. 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/
    
  4. Đọ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-whoặc có các fsckdấ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.
Pablo A

4

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 ddchỉ 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 pvvề 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 ddrescuetrong trình quản lý gói.


Điều này sẽ không phát hiện các sự cố chỉ xuất hiện trong quá trình truy cập ghi và nó sẽ không báo cáo khu vực bị ảnh hưởng của phương tiện lưu trữ mà người ta cần khắc phục hoặc khắc phục sự cố. dd count=1cũ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ợ).
David Foerster

Xem thêm:ddrescueview
quý

Vì GNU Coreutils 8.24+ ddcó chỉ báo tiến trình với status=progress.
Pablo A

1

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

  1. Xác định phân vùng nào bạn muốn kiểm tra khu vực xấu bằng cách sử dụng

$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

  1. Bây giờ bạn có thể sử dụng fscklệ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

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. 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 đó

  4. Sử dụng gnome-disksXÓA / XÓA phân vùng bằng tay bằng dấu "-"

  5. Sử dụng gnome-disksTẠ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

nhập mô tả hình ảnh ở đây


Có vấn đề gì với phiên bản Ubuntu không? Có bionic beaverxử lý kiểm tra đĩa khác nhau?
Hội chợ Gabriel

Tôi đã không thử quá trình này trên phiên bản đó.
Mauricio Gracia Gutierrez
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.