How to get SMART on external drives

    • How to get SMART on external drives

      I have a new OMV installation, and notice the SMART info is not being read for my external hard drives.

      On other linux installations I use commands like this to get SMART working on those same drives, and the addition of the option -d sat is key,

      smartctl --health -d sat /dev/sdb

      That particular command doesn't work on OMV and just gives an error,

      Read Device Identity failed: scsi error unsupported field in scsi command.

      The drives are seagate 2.5 inch drives.

      For instance this is what I have used in the past. Putting a file similar to this in /etc/cron.daily/ gives a daily SMART status email,

      #!/bin/sh
      (
      echo "==SDA=="
      smartctl --health /dev/sda
      echo "==SDB=="
      smartctl --health -d sat /dev/sdb
      echo "==SDC=="
      smartctl --health /dev/sdc
      echo "==SDD=="
      smartctl --health -d sat /dev/sdd
      echo "==SDE=="
      smartctl --health /dev/sde
      echo "==SDF=="
      smartctl --health /dev/sdf
      ) | /bin/mail -s 'NAS Status' youremailaddres@something.com

      The post was edited 3 times, last by petermc ().

    • Apologies.

      Open Media Vault, version 4.120-1 (Akkakis)
      Linux 4.19.0-0.bpo.2-amd64
      smartctl 6.6 2016-05-31

      smartctl --health -d sat /dev/sde

      Gives me this,

      Read Device Identity failed: scsi error unsupported field in scsi command.

      And,

      smartctl --health /dev/sde

      Gives me,

      Unknown USB bridge [0x0bc2:0x231a (0x710)]

      I'm not sure what you want me to provide about the USB-to-SATA bridge in the drive enclosures? I do know that these drives do run with the command -d sat on the other linux system I was running.

      sudo smartctl --health -d sat -a -T verypermissive /dev/sde

      smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.19.0-0.bpo.2-amd64] (local build)
      Copyright (C) 2002-16, Bruce Allen, Christian Franke, 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: Tue Apr 2 19:03:23 2019 NZDT
      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.
      Checking to be sure by trying SMART RETURN STATUS command.
      SMART support is: Unknown - Try option -s with argument 'on' to enable it.
      Read SMART Data failed: scsi error unsupported field in scsi command

      The post was edited 4 times, last by petermc ().

    • petermc wrote:

      Linux 4.19.0-0.bpo.2-amd64
      I knew it. This kernel version is 'too new' since it contains a 'fix' that is somewhat counterproductive for SMART. Has been added with 4.14.

      You need to UAS blacklist your individual Seagate USB3 disks since otherwise SMART will always fail. See advice given here: Launch a custom script at reboot before system recognises USB devices

      Source Code

      1. echo "options usb-storage quirks=0bc2:231a:u" >> /etc/modprobe.d/usb-storage-quirks.conf
      2. update-initramfs -u
      3. reboot

      The post was edited 1 time, last by tkaiser ().

    • petermc wrote:

      It didn't work
      Well, this 'problem description' doesn't allow to help further. There's dmesg output you could look into and other stuff.

      Oh well, supporting OMV on x86 is soooo painstaking. If you would run OMV on ARM I would ask you for armbianmonitor -u output and would've all the information needed to help in one place.

      Note to myself: I should stop trying to support OMV on x86...
    • I was wrong. It is working on that one drive I set up. But how do I do it for multiple drives?

      Would this look right in /etc/modprobe.d/usb-storage-quirks.conf

      options usb-storage quirks=0bc2:231a:u
      options usb-storage quirks=0bc2:2322:u
      options usb-storage quirks=0bc2:2321:u

      Or should it have a different format for multiple drives? Or am I misunderstanding what the :u is for?

      I have this,

      lsusb -t
      /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
      |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
      |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M
      |__ Port 4: Dev 4, If 0, Class=Mass Storage, Driver=uas, 5000M
      /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    • Final solution, find drive details,

      lsusb

      Bus 002 Device 003: ID 0bc2:2322 Seagate RSS LLC
      Bus 002 Device 002: ID 0bc2:231a Seagate RSS LLC
      Bus 002 Device 004: ID 0bc2:2321 Seagate RSS LLC Expansion Portable
      Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

      Add multiple drives comma separated to /etc/modprobe.d/usb-storage-quirks.conf

      Source Code

      1. echo "options usb-storage quirks=0bc2:231a:u,0bc2:2322:u,0bc2:2321:u" >> /etc/modprobe.d/usb-storage-quirks.conf
      2. update-initramfs -u
      3. reboot
      lsusb -t

      /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
      |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
      |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
      |__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
      /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M

      All drives are usb-storage, all good. All are showing a smart status in the OMV UI.

      The post was edited 1 time, last by petermc ().

    • henfri wrote:

      or -better- port armbianmonitor
      Armbianmonitor is a diagnostics tool in this mode helping to diagnose problems OMV users on ARM won't have anyway (since it makes no sense to leave Linux users owning those somewhat problematic Seagate USB disks with functionality that doesn't work -- so I fixed it in the first place).

      And all this stuff is part of the base system (Armbian or ayufan's images where I helped porting all the relevant parts so that for end users there's no difference whether using Armbian as base or an ayufan image).

      I don't remember exactly when but I asked both @votdev and @ryecoaaron already whether it would make sense to include such optimizations/tools into OMV or OMV-Extras (same with zram compressed RAM storage instead of tmpfs for example).
    • tkaiser wrote:

      I don't remember exactly when but I asked both @votdev and @ryecoaaron already whether it would make sense to include such optimizations/tools into OMV or OMV-Extras
      Probably asked this before but I don't feel like finding it. Is it the format of Diagnostics -> System Information -> Report that you don't like or is it missing info that you want? We can add modules to /usr/share/openmediavault/sysinfo/modules.d to add more info to this report. Sending to ix.io would take a bit more work. Otherwise, I could add an entry to omv-extras that downloads armbianmonitor and executes armbianmonitor -u.
      omv 4.1.22 arrakis | 64 bit | 4.15 proxmox kernel | omvextrasorg 4.1.15
      omv-extras.org plugins source code and issue tracker - github

      Please read this before posting a question and this and this for docker questions.
      Please don't PM for support... Too many PMs!
    • I've the same issue on ARM (rpi 3) with Seagate .

      Open Media Vault, version 4.1.22-1 (Arrakis)
      Linux 4.14.98-v7+ #1200
      smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.14.98-v7+] (local build)

      smartctl --health -d sat /dev/sda

      Read Device Identity failed: scsi error unsupported field in scsi command
      A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

      with -T permissive

      smartctl --health -d sat -T permissive -x /dev/sda

      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: Thu May 16 23:55:02 2019 +04
      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

      I added UAS blacklist in /etc/modprobe.d/usb-storage-quirks.conf for this drive but it did not help.
      Actually without blacklisting lsusb -t shows that the driver is usb_storage and not uas:

      /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
      |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
      |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
      |__ Port 3: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480M

      Output of armbianmonitor -u
      ix.io/1Jf0

      @tkaiser you mentioned "on ARM all of this happens automagically in the background" - looks like this is why blacklisting did not make any difference in Driver.
      Any idea what can be the problem ?

      Thanks
    • electron wrote:

      Actually without blacklisting lsusb -t shows that the driver is usb_storage and not uas
      Oh, the RPi folks enabled UAS while their USB driver still doesn't support UAS with latest kernel updates: github.com/raspberrypi/linux/issues/2813

      It seems they did this to get specific 'per device' quirks enabled.

      electron wrote:

      @tkaiser you mentioned "on ARM all of this happens automagically in the background" - looks like this is why blacklisting did not make any difference in Driver.
      It's a bit different. The mechanism to automagically UAS blacklist Seagate and WD USB3 disks only works on the 'normal' OMV ARM images. On the RPi there was no UAS support in the past.

      The reason for blacklisting all different Seagate USB3 disks was that they all suffer from the same problem (broken ATA pass-through support) described in this commit comment: github.com/raspberrypi/linux/c…8d8212e28291b1a0243ecf2f1 -- after Hans committed this starting with kernel 4.14 the connection issues with Seagate USB3 disks on Linux should've been resolved while with the uas driver now a new problem occurred: not able to query the disk any more via SMART. That's why I decided to let Armbian still UAS blacklist all Seagate disks since being able to monitor drives via SMART is important in my opinion and with HDDs there's not much speed difference between usb-storage and uas anyway.

      But it seems this might now be the culprit. It would be great if you could double check with latest Raspbian release with all updates applied too whether you can query your disk via SMART there.
    • Thanks for the details @tkaiser.

      tkaiser wrote:

      It would be great if you could double check with latest Raspbian release with all updates applied too whether you can query your disk via SMART there.

      I was planning to give it a try as you suggested, but noticed new kernel version is available for OMV (and some other libs too) and after updating to the new kernel version the problem with SMART has gone, it works as expected.

      Linux 4.19.42

      smartctl -x /dev/sda
      smartctl 6.6 2016-05-31 r4324 [armv7l-linux-4.19.42-v7+] (local build)
      Copyright (C) 2002-16, Bruce Allen, Christian Franke, smartmontools.org

      === START OF INFORMATION SECTION ===
      Model Family: Seagate Samsung SpinPoint M8 (AF)
      Device Model: ST1000LM024 HN-M101MBB
      Serial Number: S2ZPJ9DD420656
      LU WWN Device Id: 5 0004cf 20a1a8a5d
      Firmware Version: 2AR20002
      User Capacity: 1,000,204,886,016 bytes [1.00 TB]
      Sector Sizes: 512 bytes logical, 4096 bytes physical
      Rotation Rate: 5400 rpm
      Form Factor: 2.5 inches
      Device is: In smartctl database [for details use: -P show]
      ATA Version is: ATA8-ACS T13/1699-D revision 6
      SATA Version is: SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
      Local Time is: Sat May 18 19:57:52 2019 +04
      SMART support is: Available - device has SMART capability.
      SMART support is: Enabled
      AAM feature is: Disabled
      APM level is: 127 (intermediate level with standby)
      Rd look-ahead is: Enabled
      Write cache is: Enabled
      ATA Security is: Disabled, NOT FROZEN [SEC1]
      Wt Cache Reorder: Enabled

      === START OF READ SMART DATA SECTION ===
      SMART overall-health self-assessment test result: PASSED