Title of the Blog

Rants, musings, and other bits of information that may or may not be useful and/or interesting.

Un-Bricking the Western Digital MyBook Live

So most of my media content is hosted on a Western Digital MyBook Live that I purchased back in 2011. This isn't a glowing review of the device, but it is still working. After a bit of effort which I'll elaborate on below.

The Problem

It turns out, the firmware updater is just a little flaky. I ran into what appears to be a common issue where the firmware update may complete successfully, but the web interface for the drive is stuck in an 'Initializing device' state. When in this condition, you are essentially blocked from interacting with the interface. Thankfully, the content of the device is still accessible, so you can continue using the drive as long as you are content to never change a setting. Ever. When I initially hit this, I did some digging for solutions, and most either didn't work, or involved wiping the device back to factory defaults. Since I really didn't want to mess with restoring over a TB of data, I filed the problem under 'crap to deal with later' and proceeded to forget about it for two years.

The Un-Brickening

Welcome to 'later'. I was able to successfully update the firmware on my device and restore it to full functionality. However, it wasn't the simplest process, so I'm going to outline it here.

Step 1: Get SSH access by any means possible.

By default, SSH access is not enabled on the device. Turning it on is quite easy, if you know where to go. Normally, you can just point your browser to http://<IP address of your device>/UI/ssh where you can enable SSH. (and not much else)

However, the above assumes you can do anything in your web UI. I was locked out by the 'Initializing device' popover, so even though I could hit the SSH url, I couldn't interact with anything on the page. To get around this, I got a little creative:

  1. Browse to http://<IP address of your device>/UI/ssh
  2. Open the Developer Tools for your browser. (In my case, I was using Safari's Web Inspector)
  3. In the HTML, find the element that corresponds to the full-window overlay. (I didn't get the name, sorry) You can find it by passing your mouse over the source until it highlights all the window content.
  4. In the element highlighted, look for a style tag of z-index: and set it to some value lower than everything else. (I made it negative)
  5. This should get the overlay blocking interaction out of the way, and let you check the box to enable SSH. The checkbox change didn't appear to persist for me, and on refresh, the overlay comes back. But for me it did actually work even if the UI said otherwise.

Step 2: Find the firmware

This is also not as easy as you'd expect it to be. Western Digital only provides instructions for using the device's web UI to update firmware, and if they do have direct download links for the various firmware versions, I can't find them anywhere.

I did find mirrors however. While they're listed as for the MyBook World, they did work for me. Grab the latest one, and unzip it to the Public folder on your device.

Step 3: Back to the CLI

(This bit courtesy of Myron on the WD community forums)

  1. ssh into your device. ssh root@<device_ip>
    • the default password is welc0me
  2. run /usr/local/sbin/updateFirmwareFromFile.sh /DataVolume/shares/Public/apnc-024105-034-20130215.deb (This should be a single command, no line break)
    • Replace with the proper filename for the firmware version you downloaded.
  3. Wait. It does not give any kind of visible indicator of progress, so you're going to have to be patient. It will do it's thing and restart itself. You do not want to close your SSH session before it's done.

Step 4: Ta-Daaa!

Once the firmware update is done and the device finishes restarting, you should be able to successfully access the web interface and manage your device again. I do highly recommend you disable SSH unless you're actively using it. (Or at the very least, harden it by changing the root password, changing the ssh port from the default 22, and/or using ssh keys instead of password-based auth)

comments powered by Disqus