![无法在外部硬盘上执行 SMART 数据和自检](https://linux22.com/image/981932/%E6%97%A0%E6%B3%95%E5%9C%A8%E5%A4%96%E9%83%A8%E7%A1%AC%E7%9B%98%E4%B8%8A%E6%89%A7%E8%A1%8C%20SMART%20%E6%95%B0%E6%8D%AE%E5%92%8C%E8%87%AA%E6%A3%80.png)
现在我的外部驱动器没有任何错误,但我只是想手动检查以确保。
如下图所示,SMART 数据和自我检测呈灰色。还可以查看图像本身中有关硬盘的详细信息。
我尝试运行
gksu gnome-disks
但选项仍然显示为灰色。我运行后
sudo smartctl --all /dev/sdb --test=short -T permissive
出现此错误:smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.19.0-15-generic] (local build) Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org Read Device Identity failed: scsi error unsupported field in scsi command === START OF INFORMATION SECTION === Device Model: [No Information Found] Serial Number: [No Information Found] Firmware Version: [No Information Found] Device is: Not in smartctl database [for details use: -P showall] ATA Version is: [No Information Found] Local Time is: Wed Jun 17 11:33:46 2015 IST SMART support is: Ambiguous - ATA IDENTIFY DEVICE words 82-83 don't show if SMART supported. SMART support is: Ambiguous - ATA IDENTIFY DEVICE words 85-87 don't show if SMART is enabled. A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
答案1
我也遇到了同样的问题。就我而言,SMART 在设备上运行多年,使用Ubuntu 12.04,然后在Ubuntu 14.04事情正如你在问题中所说的那样发生了。
该问题与引入的新内核模块有关Linux 内核 3.15称为uas
(USB 连接 SCSI) (看发布公告)。
该模块现在负责管理 USB 大容量存储设备。有线索人们抱怨uas
内核 3.15 导致他们的 USB 设备出现故障。另一个说这可能是导致 SMART 问题的原因。
幸运的是,这些问题似乎在内核 3.19(我正在使用)中消失了,因为我的设备被正确检测到了。只有 SMART 问题仍然存在。
要修复此问题,您需要禁用uas
给定设备的模块的使用。
禁用uas
但不重启
首先,拔下所有可能正在使用它的 USB 设备。然后,移除uas
和usb-storage
模块:
sudo modprobe -r uas
sudo modprobe -r usb-storage
然后,usb-storage
使用一个参数加载模块,告诉它不要用于uas
给定的设备:
sudo modprobe usb-storage quirks=VendorId:ProductId:u
VendorId
并且ProductId
必须替换为您的设备供应商和产品 ID,可以使用lsusb
命令获取(它们是 后面的字符ID
)。
例如我有以下设备:
Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]
因此我的供应商 ID 是0bc2
,产品 ID 是3320
。我的命令是:
sudo modprobe usb-storage quirks=0bc2:3320:u
最后u
告诉usb-storage
忽略uas
该设备(参见来源)。
此时,您可以插入 USB 设备,它会知道不要使用,从而使 SMART 正常工作。插入 USB 设备时,uas
您将看到类似以下几行:dmesg
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
使改变永久化
上述问题只会持续到你重启系统。要使它持续存在,你需要按照描述的步骤操作这里,我将其复制如下:
ignore_uas.conf
首先,在目录中创建一个名为的文件/etc/modprobe.d/
,内容如下:
options usb-storage quirks=VendorId:ProductId:u
与前面一样,将VendorId
和替换ProductId
为从 获得的设备供应商和产品 ID lsusb
。
接下来,重新生成初始 ramdisk:
mkinitcpio -p linux
或者,在较新的 Ubuntu 版本上:
sudo update-initramfs -u
最后,重新启动计算机。
编辑:可以在此处找到有关该问题的更多背景信息以及无需禁用 uas(其吞吐量比 usb-storage 更好)的另一种解决方法:https://www.smartmontools.org/ticket/971#comment:12
似乎内核SAT ATA PASS-THROUGH
在 uas 模式下运行时在某些设备上被列入黑名单,因为它们的固件已损坏。
因此,可以使用我在答案中提到的先前方法来禁用黑名单(风险自负),但u
要从怪癖中删除最后一个,即:
quirks=VendorId:ProductId:
但请注意,我尚未测试过这种方法。
答案2
外部驱动器(我猜是通过 USB)与 SMART 配合使用比较棘手。有些驱动器根本无法工作。smartmontools
发布的人要添加的带有命令行开关的硬盘列表smartctl
(见第五栏)。
对于 Seagate Expansion 硬盘,您似乎需要-d sat
或-d sat,12
。请尝试以下操作:
sudo smartctl -d sat --all /dev/sdb
sudo smartctl -d sat,12 --all /dev/sdb
如果其中一个起作用,它会告诉您-d
应该将哪个开关添加到smartctl
命令中。
答案3
这只是我正在添加的更新阿尔瓦罗的回答
刚刚在 Ubuntu 18.04 中对我拥有的 Seagate 外置硬盘进行了测试,结果根本无法smartctl
读取硬盘。它确实需要重新启动,因为我不想落后于我的系统并弄乱 USB 连接。
首次运行lsusb
并获取了驱动器的所有信息:
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
正如您所看到的,我的驱动器中有名称Seagate
,所以我所要做的就是运行以下行将信息添加到文件中/etc/modprode.d/ignore_uas.conf
:
echo options usb-storage quirks=$(lsusb | awk '/Seagate/ {print $6}'):u | sudo tee -a /etc/modprobe.d/ignore_uas.conf
只需记住将其替换Seagate
为您的驱动器名称。现在当我查看时,/etc/modprode.d/ignore_uas.conf
我看到它为:
~$ cat /etc/modprobe.d/ignore_uas.conf
options usb-storage quirks=0bc2:a0a4:u
然后只需运行update-initramfs
即可使更改永久生效:
sudo update-initramfs -u
然后重启系统。现在 smartctl 可以读取我的外部驱动器了。
$ 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.
希望这可以帮助!
答案4
检查表格支持的 USB 设备...
开关-d sat
表明它应该是一个带有 SATA 端口的驱动器。
有特定的开关用于某些USB 桥接器-lsusb
可能会显示具体的名称。如果桥接控制器可能有错误的实现 - 只需尝试通过 SATA 而不是 USB 将其本地连接。
SCSI 和 ATA(根据 shell 输出)可能不是您要找的:)