[GUIDE] How to unbrick a totally dead MBL

Thank you very much sir! Your guide helped me recover an old WD Book Live lying around for years.

Had my old WD running years with an WD Red 8TB (NASware3.0 WD80EFZX-68UW8N0) drive. After it broke, I decided to replace it with a WD Red Plus 4TB (NASware3.0 WD40EFZX-68AWUNO) which unfortunately does NOT work, as for some reason the SATA interface seems to be incompatible.
After several tries I connected a serial console to the UART and got this error

U-Boot 2009.08 (Sep 02 2010 - 21:48:57), Build: 0.2.3

CPU:   AMCC PowerPC APM82181 Rev. C at 800 MHz (PLB=200, OPB=100, EBC=100 MHz)
       Security support
       Bootstrap Option E - Boot ROM Location NOR/SRAM (8 bits)
       32 kB I-Cache 32 kB D-Cache
Board: Apollo-3G - APM82181 Board, 2*SATA, 1*USB
I2C:   ready
DRAM:  Auto calibration 256 MB
FLASH: 512 kB
DTT:   1 FAILED INIT
Net:   PHY EC1 Register: 0x2c8c
ppc_4xx_eth0

Type run flash_nfs to mount root filesystem over NFS

Hit any key to stop autoboot:  0 
SATA DWC initialization 1
Do initialization on SATA1 ...
Waiting for device...
sata_dwc: Device found
sata_dwc: Waiting for device...
set port freeze.
failed to READ SECTORS (I/O error, err_mask=0x4)
sata_dwc : Hard disk read error.
Loading file "/testcfg/mfg_test_cfg" from sata device 1:1 (gpt1)
Machine Check Exception.
Caused by (from msr): regs 0fe76638 Data Write PLB Error
NIP: 0FFA7B50 XER: 00000000 LR: 0FFA7B2C REGS: 0fe76638 TRAP: 0200 DEAR: 80800000
MSR: 00029000 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 00000000 0FE76728 0FE76F44 00000058 FFFFFF64 00000001 00000001 5C78F150 
GPR08: 0FF7BF58 E20D1820 05F5E101 E20D1818 44FA4F28 00828048 0FFC0400 0FFB4730 
GPR16: 0FF83120 0FFB470C 0FE76DA4 0FE76CA4 0FFC00A8 0FE76748 00000001 0FE76818 
GPR24: 00000000 00000000 00000000 00000000 00000001 00000000 0FFC2040 0FFBF288 
Call backtrace: 
0FFA7B2C 0FFA8E6C 0FFA9050 0FFA7450 0FFA7770 0FFA61B0 0FFA5D60 
0FF84960 0FF9AF00 0FF9B034 0FF94864 0FF95608 0FF7BAB4 0FF79710 
machine check

The drive is detected correctly, and in general read does also work but satatest raises an exceltion and triggers a reboot.

=> sata info

SATA device 0: Model:  Firm:  Ser#: 
            Type: Hard Disk
            Capacity: not available
SATA device 1: Model: WDC WD40EFZX-68AWUN0 Firm: 81.00B81 Ser#:      WD-WX82DA1PF7Y7
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 3815447.8 MB = 3726.0 GB (7814037168 x 512)
=> sata read 8000 1 1

SATA read: device 1 block # 0, count 1 ... 1 blocks read: OK
=> satatest
NIP: 00000000 XER: 00000000 LR: 0FF99E1C REGS: 0fe5dca0 TRAP: 0700 DEAR: 80800200
MSR: 00029000 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: FFFFFFFF 0FE5DD90 0FE76F44 FFFFFFFF 000F4240 00000000 00000064 0FE6A5B0 
GPR08: 0FE76DE8 00000000 55555555 00003200 48F22F42 00828048 0FFC0400 00000000 
GPR16: 0FFB46C4 0FFBAD8C 00000000 00000000 00000000 00000000 00000000 00000000 
GPR24: 0FE76DB0 0FFCD490 0FFBAF98 0FE6A5B0 0FE5DDA0 0FFBC650 0FFC19AC 0FE76DB0 
** Trap Instruction **
Call backtrace: 
FFFFF7FF 0FF931F8 0FF92904 0FF92A74 0FF9561C 0FF7BAB4 0FF79710 
Program Check Exception

On my computer the drive works perfectly.

I also tried setting the 3Gb/s Jumper on the drive, as described here, but it does not work.
Really a pitty. I now put the original drive in it and it works like a charm. So it is not a general problem of the electronics.

I don’t expect any support of course for our old fellow, just letting you know it seems to be time to retire him.

As the topic didn’t give me any peace, I kept trying and finally succeeded with some help of a Russian forum, thanks to google translate.

After upgrading the uboot from 0.2.3 to 0.2.5 (using the old drive) the system boots up perfectly again.

Short guide on how it works in case someone else comes across this problem:

  • Download uboot_update.tgz, which was posted by “shadows” in the forum linked above.
  • Boot the MBL with a working drive
  • Copy the file onto the drive, e.g. via scp uboot_update.tgz root@mybooklive:
  • Log into via SSH and unpack archive using tar xzf uboot_update.tgz
  • cd uboot_update
  • I executed the update_uboot.sh file line by line myself, cat uboot_update/update_uboot.sh, but you can also use sh uboot_update/update_uboot.sh
  • Double check the flashing was successful by checking the checksums, especially the first to uboot_was_updated.bin and mbl_uboot_0.2.5.bin must be identical.
MyBookLive:~/uboot_update# cat backup/md5.txt 
6ea86cb23a1129c58e66befada41e823  mbl_uboot_0.2.5.bin
6ea86cb23a1129c58e66befada41e823  backup/uboot_was_updated.bin
9d3a281f4dfacf56d27b8087e0541227  backup/uboot_backup.bin
9d3a281f4dfacf56d27b8087e0541227  mbl_uboot_0.2.3.bin
  • Type reboot and hope for the best, that the system boots up again, if not you completely bricked your system :slight_smile:
  • If it worked, poweroff the system, switch the drives and again hope for the best, that it works.

My MBL slowly broke over a long period of time, until it just wouldn’t connect to the network at all. I shucked the drive and then tried a number of suggestions here, including Access to Ext 2/3/4, HFS and ReiserFS from Windows | DiskInternals and Ext2 File System Driver for Windows download | SourceForge.net. No luck whatsoever, and I just don’t have the stomach to mess around with linux commands to try and navigate and recover the data.

I remembered a tool that I used successfully probably 20 years ago, and now I have it recovering files as we speak. So, for anybody who just wants their data, give GetDataBack a whirl: GetDataBack — Data Recovery Software For Crashed Hard Drives