外付けハードドライブでSMARTデータとセルフテストを実行できません


13

現在、外付けドライブにはエラーはありませんが、手動で確認して確認したいだけです。
下の画像からわかるように、SMARTデータとセルフテストのオプションはグレー表示されています。また、イメージ自体のハードドライブに関する詳細も参照してください。

  1. 実行してみましgksu gnome-disksたが、オプションはまだグレー表示されています。
  2. sudo smartctl --all /dev/sdb --test=short -T permissiveはこのエラーを受け取った:

smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.19.0-15-generic](ローカルビルド)Copyright(C)2002-14、Bruce Allen、Christian Franke、www.smartmontools.org

デバイスIDの読み取りに失敗しました:scsiコマンドのscsiエラーunsupportedフィールド

===情報セクションの開始===

デバイスモデル:[情報が見つかりません]

シリアル番号:[情報が見つかりません]

ファームウェアバージョン:[情報が見つかりません]

デバイスは:smartctlデータベースにありません[詳細:-P showallを使用]

ATAバージョン:[情報が見つかりません]

現地時間:2015年6月17日水曜日11:33:46 IST

SMARTサポートは:Ambiguous-SMARTがサポートされている場合、ATA IDENTIFY DEVICEの単語82-83は表示されません。

SMARTサポート:Ambiguous-SMARTが有効になっている場合、ATA IDENTIFY DEVICEの単語85〜87は表示されません。

必須のSMARTコマンドが失敗しました:終了しています。続行するには、1つ以上の「-T permissive」オプションを追加します。

ここに画像の説明を入力してください


ここで同じ問題。Ubuntu 14.04で発生することを追加できますが、SMARTがGUIとコマンドラインの両方で正しく読み取られるUbuntu 12.04 では発生しません。何か案は?
アルバログティエレスペレス

1
ソリューションを見つけました。私の答えを
アルバログティエレスペレス

回答:


13

同じ問題がありました。私の場合、Ubuntu 12.04を使用している間、SMARTは何年もデバイス上で適切に動作していましたが、Ubuntu 14.04の下では、まさにあなたが質問で語ったとおりになりました。

この問題は、Linux Kernel 3.15でuas(USB Attached SCSI)と呼ばれる新しいカーネルモジュールに関連していますリリース発表を参照)。

そのモジュールは現在、USB大容量記憶装置の管理を担当しています。カーネル3.15でUSBデバイスの障害が発生していると人々が不平を言うスレッドがありuasます。別の人は、それが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です3320。製品IDはです。私のコマンドは:

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

最後uは、デバイスusb-storageに対して無視するようuasに指示します(ソースを参照)。

この時点で、USBデバイスを挿入でき、使用しないことがわかりuas、SMARTが適切に機能するようになります。dmesgUSBデバイスを挿入すると、次のような行が表示されます。

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

前と同様に、代替VendorIdProductIdから取得したデバイスのベンダーと製品IDによるlsusb

次に、初期RAMディスクを再生成します。

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:

ただし、このアプローチはテストしていません。


私は、Linuxカーネル4.2でのUbuntu 15.10を使用して、私はあなたが言ったことでしたが、私はそれが私のために働いていないよ
エドワード・トーバルズ

@edwardtorvaldsは、GUIが機能しないのsmartctlですか?私の場合、GUIはグレー表示のままですが(まだ再起動していません)、smartctl動作します。
アルバログティエレスペレス

2
16.04にはmkinitcpioはありません。代わりに「sudo update-initramfs -u」ではありませんか?
フィロフェル

1
素晴らしい答えです!Seagate USBドライブにアクセスし、そこからすべてのsmartctlデータを取得できます。を削除して編集を試みましたが、u残念ながらドライブがハングアップしたため、SMARTデータを取得できず、起動時間が遅くなりました。ただし、追加し直したところu、完璧に機能します。
テランス

1
複数の場合は、次のようになりますquirks=0bc2:ab24:u,0bc2:ac30:u
トム・ヘイル

6

SMARTでは、外部ドライブ(USB経由と思われます)には注意が必要です。まったく機能しないものもあります。smartmontools人々が掲示コマンドラインでのハードドライブのリストに追加するスイッチsmartctl(5列目を参照します)。


特にSeagate Expansionドライブの場合、-d satまたはのいずれかが必要なようです-d sat,12。以下を試してください:

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

それらのいずれかが機能する場合-dsmartctlコマンドに追加するスイッチを示します。


どちらもエラーリンク
エドワードトーバルズ

外部hddの名前は、Seagate Expansion Externalです。サポートされているように見えますが、それでもオプションはエラーを出しています
エドワード・トーバルズ

3

アルバロの答えに追加するだけの更新

Ubuntu 18.04でこれをテストしたところsmartctl、ドライブをまったく読み取れなかった場所にある外部Seagateドライブを探しました。私は私のシステムの後ろに来て、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.

お役に立てれば!


この変更後、ドライブはマウントされなくなります。どうして ?
フィリップデルテイユ

@PhilippeDelteilドライブが正しくマウントされないことを聞いたことはありません。ドライブがに表示されている場合は、askubuntu.com / a / 952275/231142を試して、より永続的なドライブを設定できgnome-disksます。
テランス

3

Seagateドライブを2台接続したので、@ Terranceコマンドを次のように変更しました。

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

複数の要素に対して正しいセパレーター(およびフラグの繰り返し)を提供します。

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

「改行」文字の「、」によるこの置換は、おそらく最もエレガントな方法では行われません(を使用して余分な区切り文字を削除する必要がありますhead)が、動作するようです。

次に:

sudo update-initramfs -u

元の回答のように再起動します。


良い発見!私が私のドライブをテストしたときには、複数のドライブについては考えていませんでした。私は本当にこれが好きです!+1
テランス

1

サポートされているUSBデバイスの表を確認してください...

スイッチ-d satは、SATAポートを備えたドライブであると想定していることを示しています。

特定のUSBブリッジには特定のスイッチがあります- lsusb具体的な名前が表示される場合があります。ブリッジコントローラーの実装に問題がある可能性がある場合は、USBではなくSATAを介してネイティブに接続してください。

SCSIとATA(シェル出力による)はおそらく探しているものではありません:)


私はそれを買ったときにHDDに付属のケーブルを使用しています。これらのエラーを見たいかもしれません:リンク
エドワードトーバルズ

外部hddの名前は、Seagate Expansion Externalです。サポートされているように見えますが、それでもオプションはエラーを出しています
エドワード・トーバルズ

@edwardtorvaldsには2つの基本的な前提条件があります...ポートのBIOS / UEFIでSMARTを有効にし(該当する場合)、それを読み取る前にソフトウェアで有効にする... smartctl -T permissive --smart=on /dev/sdb(ログが話しているように見えますが)間違ったポートへ)
マーティンツァイトラー

そのためのブートオプションはありません。上記のコマンドを試してみました。このエラーが発生しました
Edward Torvalds

@edwardtorvaldsはまだSCSIコマンドを送信しているように見えます... -d satスイッチが欠落していsmartctl -d sat -T permissive --smart=on /dev/sdbます...そして上lsusbで書いたように、どのブリッジかをリストする必要があります。
マーティンツァイトラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.