Không thể thực hiện dữ liệu SMART và Tự kiểm tra trên ổ cứng ngoài


13

Ngay bây giờ ổ đĩa ngoài của tôi không có bất kỳ lỗi nào nhưng tôi chỉ muốn kiểm tra thủ công để đảm bảo.
Như được thấy từ hình ảnh bên dưới, tùy chọn cho dữ liệu SMART và Tự kiểm tra bị mờ đi. Cũng xem chi tiết về ổ cứng trong hình ảnh.

  1. Tôi đã thử chạy gksu gnome-disksnhưng vẫn còn tùy chọn màu xám.
  2. Tôi chạy sudo smartctl --all /dev/sdb --test=short -T permissivetôi đã gặp lỗi này:

smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.19.0-15-generic] (bản dựng cục bộ) Bản quyền (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

Đọc nhận dạng thiết bị không thành công: lỗi không được hỗ trợ trong trường scsi trong lệnh scsi

=== BẮT ĐẦU PHẦN THÔNG TIN ===

Kiểu thiết bị: [Không tìm thấy thông tin]

Số sê-ri: [Không tìm thấy thông tin]

Phiên bản phần sụn: [Không tìm thấy thông tin]

Thiết bị là: Không có trong cơ sở dữ liệu smartctl [để biết chi tiết sử dụng: -P showall]

Phiên bản ATA là: [Không tìm thấy thông tin]

Giờ địa phương là: Thứ tư 17 tháng 6 11:33:46 2015 IST

Hỗ trợ SMART là: Mơ hồ - ATA IDENTIFY THIẾT BỊ từ 82-83 không hiển thị nếu được hỗ trợ SMART.

Hỗ trợ SMART là: Không rõ ràng - ATA IDENTIFY DEVICE từ 85-87 không hiển thị nếu SMART được bật.

Một lệnh SMART bắt buộc không thành công: thoát. Để tiếp tục, hãy thêm một hoặc nhiều tùy chọn '-T cho phép'.

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


Cùng một vấn đề ở đây. Tôi có thể thêm rằng nó xảy ra trong Ubuntu 14.04 , nhưng KHÔNG trong Ubuntu 12.04 trong đó SMART được đọc chính xác bởi cả GUI và dòng lệnh. Có ý kiến ​​gì không?
Alvaro Gutierrez Perez

1
Tìm thấy giải pháp, xem câu trả lời của tôi
Alvaro Gutierrez Perez

Câu trả lời:


13

Tôi đã từng gặp vấn đề tương tự. Trong trường hợp của tôi, SMART đã hoạt động bình thường trên thiết bị trong nhiều năm khi sử dụng Ubuntu 12.04 , và sau đó với Ubuntu 14.04, nó đã xảy ra chính xác những gì bạn nói trong câu hỏi.

Vấn đề liên quan đến một mô-đun hạt nhân mới đã được giới thiệu trong Linux Kernel 3.15 có tên uas(USB đính kèm SCSI ) (xem thông báo phát hành ).

Mô-đun đó hiện chịu trách nhiệm quản lý các thiết bị lưu trữ lớn USB. Có một chủ đề mà mọi người phàn nàn rằng uastrong kernel 3.15 đang khiến các thiết bị USB của họ bị lỗi. Một người khác nói rằng nó có thể là nguyên nhân của các vấn đề SMART.

May mắn thay, những vấn đề đó dường như không còn ở kernel 3.19 (mà tôi đang sử dụng), vì thiết bị của tôi đang được phát hiện chính xác. Chỉ có vấn đề SMART vẫn còn.

Để khắc phục, bạn cần phải vô hiệu hóa việc sử dụng uasmô-đun cho thiết bị đã cho.

Vô hiệu hóa uasmà không cần khởi động lại

Đầu tiên, rút ​​phích cắm tất cả các thiết bị USB có thể đang sử dụng nó. Sau đó, loại bỏ các mô-đun uasusb-storage:

sudo modprobe -r uas
sudo modprobe -r usb-storage

Sau đó, tải usb-storagemô-đun với một tham số cho biết nó không sử dụng uascho một thiết bị nhất định:

sudo modprobe usb-storage quirks=VendorId:ProductId:u

VendorIdProductIdphải được thay thế bởi nhà cung cấp thiết bị và id sản phẩm của bạn, có thể nhận được bằng lsusblệnh (chúng là các ký tự sau ID).

Ví dụ: tôi có thiết bị sau:

Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]

Vì vậy, id nhà cung cấp của tôi là 0bc2, và id sản phẩm của tôi là 3320. Lệnh của tôi là:

sudo modprobe usb-storage quirks=0bc2:3320:u

Câu unói cuối cùng usb-storagebỏ qua uascho thiết bị (xem nguồn ).

Tại thời điểm này, bạn có thể cắm thiết bị USB và thiết bị sẽ biết không sử dụng uas, giúp SMART hoạt động bình thường. Bạn sẽ thấy những dòng như thế này dmesgkhi cắm thiết bị USB:

usb 2-2: UAS is blacklisted for this device, using usb-storage instead
usb-storage 2-2:1.0: USB Mass Storage device detected
usb-storage 2-2:1.0: Quirks match for vid 0bc2 pid 3320: 800000
scsi host12: usb-storage 2-2:1.0

Làm cho sự thay đổi vĩnh viễn

Việc giải quyết trước đó sẽ chỉ kéo dài cho đến khi bạn khởi động lại hệ thống. Để làm cho nó bền bỉ, bạn cần làm theo các bước được mô tả ở đây , mà tôi sao chép dưới đây:

Đầu tiên, tạo một tệp có tên ignore_uas.conftrong /etc/modprobe.d/thư mục với nội dung sau:

options usb-storage quirks=VendorId:ProductId:u

Như trước, thay thế VendorIdProductIdbởi nhà cung cấp thiết bị và id sản phẩm của bạn thu được từ lsusb.

Tiếp theo, tái tạo ramdisk bẩm sinh của bạn:

mkinitcpio -p linux

hoặc, trên các phiên bản Ubuntu mới hơn:

sudo update-initramfs -u

Cuối cùng, khởi động lại máy tính của bạn.


Chỉnh sửa: Có thêm thông tin về vấn đề này và một cách khác để khắc phục vấn đề mà không vô hiệu hóa uas (có thông lượng tốt hơn lưu trữ usb) có thể được tìm thấy tại đây: https://www.smartmontools.org/ticket/971#comment:12

Có vẻ như kernel đang nằm trong danh sách đen SAT ATA PASS-THROUGHtrên một số thiết bị khi chạy ở chế độ uas, vì chúng đã bị hỏng firmware.

Vì vậy, danh sách đen có thể bị vô hiệu hóa (có nguy cơ của riêng bạn) bằng cách sử dụng phương pháp trước đây tôi đã đề cập trong câu trả lời, nhưng loại bỏ cuối cùng ukhỏi quirk, tức là:

quirks=VendorId:ProductId:

Xin lưu ý, tuy nhiên, tôi chưa thử nghiệm phương pháp này.


Tôi đang sử dụng Ubuntu 15.10 với Linux kernel 4.2, tôi đã làm những gì bạn nói, nhưng tôi không làm việc với tôi
Edward Torvalds

@edwardtorvalds có phải GUI không hoạt động hay smartctlkhông? Trong trường hợp của tôi, GUI vẫn bị mờ đi (tôi chưa khởi động lại), nhưng vẫn smartctlhoạt động.
Alvaro Gutierrez Perez

2
Không có mkinitcpio trong 16.04. Bây giờ không phải là "sudo update-initramfs -u" sao?
filofel

1
Câu trả lời chính xác! Tôi có thể truy cập ổ USB Seagate của mình và nhận tất cả dữ liệu smartctl từ nó. Tôi đã thử chỉnh sửa của bạn ở đó với việc xóa uvà không may treo ổ đĩa vì vậy tôi không thể nhận được bất kỳ dữ liệu SMART nào và thời gian khởi động chậm. Tuy nhiên, tôi đã thêm lại uvà nó hoạt động hoàn hảo.
Terrance

1
Đối với nhiều hơn một, nó trông giống như:quirks=0bc2:ab24:u,0bc2:ac30:u
Tom Hale

6

Ổ đĩa ngoài (thông qua USB, tôi giả sử) là khó khăn với SMART. Một số không hoạt động. Mọi smartmontoolsngười đã đăng một danh sách các ổ đĩa cứng có công tắc dòng lệnh để thêm vàosmartctl (xem cột thứ năm).


Đối với các ổ đĩa mở rộng Seagate nói riêng, có vẻ như bạn cần -d sathoặc -d sat,12. Hãy thử như sau:

sudo smartctl -d sat --all /dev/sdb
sudo smartctl -d sat,12 --all /dev/sdb

Nếu một trong số đó hoạt động, nó sẽ cho bạn biết -dcông tắc nào cần thêm vào smartctllệnh của bạn .


cả hai đều cho tôi liên kết
Edward Torvalds

Tên của hdd bên ngoài là: Seagate Expansion Inside. nó dường như được hỗ trợ nhưng vẫn còn các tùy chọn đưa ra lỗi
Edward Torvalds

3

Chỉ cần một bản cập nhật tôi đang thêm vào câu trả lời của Alvaro

Chỉ cần thử nghiệm điều này trong Ubuntu 18.04 cho một ổ đĩa Seagate bên ngoài mà tôi không thể smartctlđọc được ổ đĩa này. Nó đã yêu cầu khởi động lại vì tôi không muốn đứng sau hệ thống của mình và gây rối với các kết nối USB.

Đầu tiên chạy lsusbvà có tất cả thông tin của tôi cho ổ đĩa:

terrance@terrance-ubuntu:~$ lsusb
Bus 006 Device 002: ID 0bc2:a0a4 Seagate RSS LLC Backup Plus Desktop Drive
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 1532:0118 Razer USA, Ltd 
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 046d:c215 Logitech, Inc. Extreme 3D Pro
Bus 003 Device 002: ID 1532:005b Razer USA, Ltd 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Như bạn có thể thấy ổ đĩa của tôi có tên Seagatetrong đó, vì vậy tất cả những gì tôi phải làm là chạy dòng sau để thêm thông tin vào /etc/modprode.d/ignore_uas.conftệp:

echo options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6}'):u | sudo tee -a /etc/modprobe.d/ignore_uas.conf

Chỉ cần nhớ để thay thế Seagatebằng tên của ổ đĩa của bạn. Bây giờ khi tôi nhìn vào /etc/modprode.d/ignore_uas.conftôi thấy nó như:

~$ cat /etc/modprobe.d/ignore_uas.conf 
options usb-storage quirks=0bc2:a0a4:u

Sau đó, chỉ cần chạy update-initramfscác thay đổi để trở thành vĩnh viễn:

sudo update-initramfs -u

Sau đó khởi động lại hệ thống của bạn. Bây giờ smartctl đã có thể đọc ổ đĩa ngoài của tôi.

$ sudo smartctl -a /dev/sdf
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-43-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST3000DM001-1E6166
Serial Number:    W1F3DNG2
LU WWN Device Id: 5 000c50 06a323610
Firmware Version: SC47
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Jan 11 23:07:43 2019 MST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  592) seconds.
Offline data collection
capabilities:            (0x73) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 336) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x3081) SCT Status supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   108   099   006    Pre-fail  Always       -       19766104
  3 Spin_Up_Time            0x0003   094   091   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   097   097   020    Old_age   Always       -       3944
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   052   048   030    Pre-fail  Always       -       231936780154
  9 Power_On_Hours          0x0032   058   058   000    Old_age   Always       -       36793
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   097   097   020    Old_age   Always       -       3942
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   092   000    Old_age   Always       -       894 897 1362
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   039   045    Old_age   Always   In_the_past 44 (Min/Max 44/44 #237)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   099   099   000    Old_age   Always       -       3909
193 Load_Cycle_Count        0x0032   020   020   000    Old_age   Always       -       161838
194 Temperature_Celsius     0x0022   044   061   000    Old_age   Always       -       44 (0 13 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       8558h+07m+38.053s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       14574986552
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       18776308038

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Hi vọng điêu nay co ich!


Sau khi thay đổi, ổ đĩa của tôi sẽ không gắn kết nữa. Tại sao ?
Philippe Delteil

@PhilippeDelteil Tôi chưa bao giờ nghe nói về điều đó khiến ổ đĩa không được gắn đúng cách. Bạn có thể thử yêu cầu Ubuntu.com / a / 952275/231142 để thiết lập lâu dài hơn nếu ổ đĩa được nhìn thấy gnome-disks.
Terrance

3

Tôi đã có hai ổ Seagate được kết nối nên tôi đã sửa đổi lệnh @Terrance thành:

echo "options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6":u"}' | tr '\n' ',' | head -c-1)" | sudo tee -a /etc/modprobe.d/ignore_uas.conf

Cung cấp một dấu phân cách chính xác (và lặp lại cờ) cho nhiều phần tử:

options usb-storage quirks=0bc2:3320:u,0bc2:2323:u

Việc thay thế các ký tự 'dòng mới' bằng ',' có thể không được thực hiện theo cách thanh lịch nhất (yêu cầu xóa dấu phân cách phụ bằng cách sử dụng head), nhưng có vẻ như nó hoạt động.

Sau đó:

sudo update-initramfs -u

Và khởi động lại như trong câu trả lời ban đầu.


Tìm tốt Tôi đã không nghĩ về nhiều ổ đĩa tại thời điểm tôi kiểm tra ổ đĩa của mình. Tôi thực sự thích điều này! +1
Terrance

1

kiểm tra bảng với các thiết bị USB được hỗ trợ ...

công tắc -d satcho biết, nó được coi là một ổ đĩa có cổng SATA.

có các công tắc cụ thể cho các cầu USB nhất định - lsusbcó thể hiển thị tên cụ thể. nếu bộ điều khiển cầu có thể có một triển khai xấu - chỉ cần thử kết nối nó tự nhiên thông qua SATA thay vì USB.

SCSI và ATA (theo đầu ra shell) có thể không phải là những gì bạn đang tìm kiếm :)


Tôi đang sử dụng cáp đi kèm với hdd khi tôi mua nó. bạn có thể muốn thấy những lỗi này: link
Edward Torvalds

Tên của hdd bên ngoài là: Seagate Expansion Inside. nó dường như được hỗ trợ nhưng vẫn còn các tùy chọn đưa ra lỗi
Edward Torvalds

@edwardtorvalds có hai điều kiện tiên quyết cơ bản ... có bật SMART trong BIOS / UEFI cho cổng (nếu có) và để nó được kích hoạt thông qua phần mềm, trước khi thử đọc nó ... smartctl -T permissive --smart=on /dev/sdb(trong khi nhật ký có vẻ như nó sẽ được nói đến cổng sai)
Martin Zeitler

Không có tùy chọn khởi động cho điều đó, tôi đã thử lệnh trên tôi đã gặp lỗi
Edward Torvalds

@edwardtorvalds có vẻ như nó vẫn đang gửi các lệnh SCSI ... công tắc -d sat bị thiếu smartctl -d sat -T permissive --smart=on /dev/sdb... và như tôi đã viết ở trên lsusbnên liệt kê cầu nối đó là gì.
Martin Zeitler
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.