2016-02-21 Disk Checking

Interesting stuff I need to remember when buying my next disk:

http://nilisnotnull.blogspot.ch/2016/02/what-to-do-with-new-disk.html

I have a SMART monitor for the laptop’s disk but the external USB disks don’t support it. As Peter says, though: “why did you buy it?”

For my Mac I still use SMARTReporter 2.7.1. Their website says the current version is 3.7.2 and that 2.7 is an “old and unnsupported version with less features” and “available for free and as open-source”. Oh well.

Their website

Using Homebrew, I just did the following:

brew install smartmontools
brew install gsmartcontrol

And for my external USB drives, I installed the OS X SAT SMART Driver version 0.8 because of what the README file said:

OS X SAT SMART Driver

Note for Yosemite (Mac OS X 10.10) users: Try first version 0.8. If it works for you, then just use it. If not or you want to try newer version or participate on development, then you must allow unsigned kernel extensions with command:
sudo nvram boot-args="kext-dev-mode=1"
  sudo nvram boot-args="kext-dev-mode=1"

The instructions are simple:

Sadly, my disk appears to be unsupported.

I used `diskutil list` to list the disks I have and `diskutil info disk1s2` which is my external harddisk:

...
   SMART Status:             Not Supported
...

DiskUtility identifies my external disk as “WD 10EACS External Media”.

For a short moment I thought that perhaps Peter’s reference to the `-d sat` option would fix it. He writes: «Notice that I had to use the “`-d sat`” option to tell smartctl that there’s really a SATA drive hiding behind all the USB stuff. (Took me a while to realize that I can do that, I used to think that SMART just doesn’t work at all over USB.)»

When I googled for the identifier of my disk, I found the following product listing: “Western Digital WD10EACS 1TB 16MB Cache SATA300 Hard Drive - New OEM w/1 Year Warranty”. It mentioned the magic SATA keyword. That sounds good.

But no such luck, apparently.

alex@Megabombus:~$ smartctl -d sat,auto -i /dev/disk1s2
smartctl 6.4 2015-06-04 r4109 [x86_64-apple-darwin15.0.0] (local build)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/disk1s2: Type 'sat,auto+...': Not a device of type 'scsi'
=======> VALID ARGUMENTS ARE: ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, auto, test <=======

Use smartctl -h to get a usage summary

OK, so I wondered: is this SATSMART kernel extension working? Of course not.

alex@Megabombus:~$ sudo kextutil -t /System/Library/Extensions/SATSMARTDriver.kext
Password:
Notice: /System/Library/Extensions/SATSMARTDriver.kext has debug properties set.
Diagnostics for /System/Library/Extensions/SATSMARTDriver.kext:
Code Signing Failure: not code signed
Untrusted kexts are not allowed
ERROR: invalid signature for fi.dungeon.driver.SATSMARTDriver, will not load

I checked back and found issue ​#39: Which version works under OS X El Capitan 10.11.x? The answer is: They all do, but you can’t install them from the driver’s homepage because it’s not *signed*. But you can download a signed copy from the website of DriveDx. There, they offer the same driver but signed. And so I uninstalled the stuff I had installed...

Which version works under OS X El Capitan 10.11.x?

alex@Megabombus:~$ sudo rm -r /System/Library/Extensions/SATSMARTDriver.kext
alex@Megabombus:~$ sudo rm -r /System/Library/Extensions/SATSMARTLib.plugin

And I installed v0.10 for OS X Yosemite 10.10+ from the External USB / FireWire drive diagnostics support page instead – and it works:

External USB / FireWire drive diagnostics support

alex@Megabombus:~$ diskutil info disk1
...
   Device / Media Name:      WDC WD10EACS-00ZJB0
...
   Media Type:               Generic
   Protocol:                 USB
   SMART Status:             Verified

Yay!

And my old SMARTReporter 2.7 is picking it up, too. This is great. 👍

But now, on with the tests Peter suggested. The short tests take a few seconds to run.

alex@Megabombus:~$ smartctl -t short /dev/disk0
...
alex@Megabombus:~$ smartctl -t short /dev/disk1
...
alex@Megabombus:~$ smartctl -a /dev/disk0
...
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
1. 1  Short offline       Completed without error       00%      4070         -
...
alex@Megabombus:~$ smartctl -a /dev/disk1
...
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
1. 1  Short offline       Completed without error       00%     39724         -
...

Oops, 4070 hours left for this laptop’s primary disk is *not cool!* Or is it the other way around? I guess “life time” is simply the *age* of the disk. In which case: no problem! 🙂

Time to run the long tests.

alex@Megabombus:~$ smartctl -t long /dev/disk0
...
alex@Megabombus:~$ smartctl -t long /dev/disk1
...

And now I get to listen to some audiobooks while the disks test themselves.

The result for the disk in the laptop:

alex@Megabombus:~$ smartctl -a /dev/disk0
smartctl 6.4 2015-06-04 r4109 [x86_64-apple-darwin15.0.0] (local build)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

###  START OF INFORMATION SECTION
Device Model:     Hitachi HTS545025B9SA02
Serial Number:    100806PBL200CSHY1MMN
LU WWN Device Id: 5 000cca 62adb4c65
Firmware Version: PB2AC60W
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 2.6, 1.5 Gb/s
Local Time is:    Mon Feb 22 22:50:26 2016 CET
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

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

And for the external disk:

alex@Megabombus:~$ smartctl -a /dev/disk1
smartctl 6.4 2015-06-04 r4109 [x86_64-apple-darwin15.0.0] (local build)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

###  START OF INFORMATION SECTION
Model Family:     Western Digital Caviar Green
Device Model:     WDC WD10EACS-00ZJB0
Serial Number:    WD-WCASJ1380062
LU WWN Device Id: 5 0014ee 2013be398
Firmware Version: 01.01B01
User Capacity:    1,000,204,886,016 bytes [1,00 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.5, 3.0 Gb/s
Local Time is:    Mon Feb 22 22:57:27 2016 CET
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

General SMART Values:
Offline data collection status:  (0x85)	Offline data collection activity
					was aborted by an interrupting command from host.
					Auto Offline Data Collection: Enabled.
Self-test execution status:      ( 245)	Self-test routine in progress...
					50% of test remaining.
...

OK, this 1TB disk takes a little longer...

...
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
1. 1  Extended offline    Completed without error       00%     39736         -
1. 2  Short offline       Completed without error       00%     39724         -
...

​#Gadgets ​#Administration

Comments

(Please contact me if you want to remove your comment.)

I don’t think LifeTime counts down, AFAIK it counts up. My new disks started at 0 but YMMV.

– Peter Froehlich 2016-02-22 20:25 UTC

Peter Froehlich

---

Ah, that makes sense. Theses disks aren’t new. 😄

– Alex Schroeder 2016-02-22 21:06 UTC

---

Some time has passed and I’m using a different backup disk (I store them outside our apartment). And it won’t mount!

No mounting of the backup disk means trouble.

I started the *console* app with which to log at the log files. After I plug the disk, it makes the usual noise and then I see the following:

18.03.16 22:24:09.000 kernel[0]: 001042.114709 LaCie Hard Drive USB@26400000: IOUSBHostDevice::getDescriptorGated: type 0x03 index 3 length 62 completed with 0xe00002e8 and bytesTransferred 0
18.03.16 22:24:09.000 kernel[0]: USBMSC Identifier (non-unique): 0x59f 0x1018 0x1
18.03.16 22:24:09.168 cfprefsd[122]: BUG in libdispatch: 15D21 - 1631 - 0x0
18.03.16 22:24:22.000 kernel[0]: IOUSBMassStorageDriver::BulkOnlyUSBCompletion BOT reset completed with 0xe00002d6
18.03.16 22:24:22.000 kernel[0]: IOUSBMassStorageDriverNub::ResetDevice - hostDevice at locationID = 0x26400000 will be reset!
18.03.16 22:24:22.000 kernel[0]: 001055.644514 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 100 ms
18.03.16 22:24:23.000 kernel[0]: 001055.971994 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 200 ms
18.03.16 22:24:23.000 kernel[0]: 001056.521410 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 400 ms
18.03.16 22:24:24.000 kernel[0]: 001057.509058 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 800 ms
18.03.16 22:24:26.000 kernel[0]: 001059.377953 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 1600 ms
18.03.16 22:24:30.000 kernel[0]: 001063.006289 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 3200 ms
18.03.16 22:24:32.000 kernel[0]: IOUSBMassStorageDriverNub::ResetTimeOut - device failed to re-instantiate!
18.03.16 22:24:32.000 kernel[0]: IOUSBMassStorageDriverNub::ResetTimeOut - USB Mass Storage stack will be terminated!
18.03.16 22:24:32.000 kernel[0]: IOUSBMassStorageDriver::AbortCurrentSCSITask - fConsecutiveResetCount = 1
18.03.16 22:24:32.000 kernel[0]: IOSATDriver::Send_ATA_SMART_READ_DATA failed 1 4
18.03.16 22:24:32.000 kernel[0]: senseData: VALID_RESPONSE_CODE=137 (7=valid),
18.03.16 22:24:32.000 kernel[0]: :          SEGMENT_NUMBER=0,
18.03.16 22:24:32.000 kernel[0]: :          SENSE_KEY=94 (7 = FILEMARK, 6 = EOM, 5 = ILI, 3-0 = SENSE KEY)
18.03.16 22:24:32.000 kernel[0]: :          INFORMATION_1,_2,_3,_4=225,218,137,112,
18.03.16 22:24:32.000 kernel[0]: :          ADDITIONAL_SENSE_LENGTH=162,
18.03.16 22:24:32.000 kernel[0]: :          COMMAND_SPECIFIC_INFORMATION_1,_2,_3,_4=64,20,7,15,
18.03.16 22:24:32.000 kernel[0]: :          ADDITIONAL_SENSE_CODE=128,
18.03.16 22:24:32.000 kernel[0]: :          ADDITIONAL_SENSE_CODE_QUALIFIER=255,
18.03.16 22:24:32.000 kernel[0]: :          FIELD_REPLACEABLE_UNIT_CODE=255,
18.03.16 22:24:32.000 kernel[0]: :          SKSV_SENSE_KEY_SPECIFIC_MSB=255 (7 = Sense Key Specific Valid bit, 6-0 Sense Key Specific MSB),
18.03.16 22:24:32.000 kernel[0]: :          SENSE_KEY_SPECIFIC_MID=1,
18.03.16 22:24:32.000 kernel[0]: :          SENSE_KEY_SPECIFIC_LSB=0
18.03.16 22:24:32.000 kernel[0]: SATSMARTDriver v0.10: enclosure 'LaCie Hard Disk (Neil Poulton design)', disk is not SAT capable
18.03.16 22:24:32.000 kernel[0]: SATSMARTDriver v0.10: enclosure 'LaCie Hard Disk (Neil Poulton design)', disk is not SAT capable
18.03.16 22:24:32.000 kernel[0]: PRT4: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:32.000 kernel[0]: EHC2: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:32.000 kernel[0]: EHC2: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:32.000 kernel[0]: AppleACPIPCI: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:32.000 kernel[0]: PCI0: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:32.000 kernel[0]: AppleACPIPlatformExpert: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:32.000 kernel[0]: MacBookPro7,1: bad busy count (0,-1)
18.03.16 22:24:32.000 kernel[0]: Backtrace 0xffffff800088d6ef 0xffffff7f8169a334 0xffffff80008b537e 0xffffff8000891754 0xffffff80008919d7 0xffffff80003ccf77 0x0
18.03.16 22:24:32.000 kernel[0]: Kernel Extensions in backtrace:
18.03.16 22:24:32.000 kernel[0]: com.apple.iokit.IOUSBMassStorageDriver(1.0)[B9DE23AE-01F9-3985-927E-57555C1C503D]@0xffffff7f81699000->0xffffff7f816c5fff
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOUSBHostFamily(1.0.1)[5FF3F801-2AB5-38D2-93C2-51E00427D8FA]@0xffffff7f81627000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOStorageFamily(2.1)[DC1AAB7C-F417-3238-BB3F-2A5B84D67B90]@0xffffff7f80a4c000
18.03.16 22:24:32.000 kernel[0]: dependency: com.apple.iokit.IOSCSIArchitectureModelFamily(3.7.7)[49F2C1F9-18D8-3D7C-B3DA-B7716B41B0BF]@0xffffff7f80ae9000
18.03.16 22:24:37.000 kernel[0]: 001070.155189 PRT4@26400000: AppleUSBHostPort::resetGated: retrying enumeration in 6400 ms
18.03.16 22:24:51.000 kernel[0]: 001084.341034 PRT4@26400000: AppleUSBHostPort::resetGated: unrecoverable enumeration failure after 8 attempts

– Alex Schroeder 2016-03-18 21:34 UTC

---

OK, I’m going to try uninstalling the SATSMART kernel extension.

sudo rm -r /System/Library/Extensions/SATSMARTDriver.kext
sudo rm -r /System/Library/Extensions/SATSMARTLib.plugin

And reboot the system... I guess? Yes, a reboot is required.

The drive was left plugged as I rebooted and did not mount. When I power cycled the drive, however, it got mounted. So yes, SATSMARTDriver 0.10 interfered with this disk!

I’m going to try and install the 0.8 version of the driver...

– Alex Schroeder 2016-03-18 21:59 UTC

---

And confirmed. This drive cannot be mounted with SATSMARTDriver 0.8, either.

Sadly, this does not mean that I can mount the first drive with SMART status enabled and the second drive with SMART status disabled. It means the second drive cannot be mounted *at all*.

I think I will have to get rid of this kernel extension – and get new disk drives, eventually.

– Alex Schroeder 2016-03-18 22:04 UTC