dissabte, 8 d’octubre del 2016

Western Digital MyBook Live debrick. Reparació MBL

He tingut diversos NAS per casa, un Lacie NetworkSpace 1, un Dlink DNS323 i aquest WD Mybook Live de 2Tb. El WD no és molt popular, tot i que jo crec que és un aparell molt interessant perquè és molt més ràpid que els anteriors (4MBytes/s, vs, 11Mbytes/s vs. 32Mbytes/s) a un preu contingut. N´hi ha de més ràpids, però no es pot dir que vagi "malament".

El cas és que el disc va morir, i vaig pensar en canviar-lo, però el problema és que el disc es va emportar el sistema operatiu del NAS. Canviar el disc no ressucitava l'aperell.

I've used several NAS devices at home, a Lacie NetworkSpace 1, a Dlink DNS323 and this WD MyNook Live 2Tb. WD MBL is not very popular, but I find it is quite an interesting device because it offers speed versus low price (4MBytes/s for the Lacie, 11Mbytes/2 for the DNS323 and 32Mbytes/s for the MBL).

So life is hard for these devices and disk died. I inmediately thought about a disk replacement, but the problem was that the operating system of the device went with the disk,so a new disk will not get the device back to life.




Cercant per internet veig que és un aparell amb Linux Embedded! perfecte, això es deixarà remenar! Sembla que la CPU és un PowerPC... hummm.

Com que no soc el primer que se li peta un WDMybook Live, ja hi ha altra gent que s'hi ha barallat i solidàriament han escrit guies i tot. Per tant jo també ho faré,

Guia versió 1: basant-se en un script que a mi no em va funcionar per problemes amb el soft de RAID.
https://community.wd.com/t/guide-how-to-unbrick-a-totally-dead-mbl/56658

Guia versió 2: basat en una imatge de disc dur.
https://community.wd.com/t/guide-debrick-mybooklive-v2-0/58546

Alguns detalls de com es fan les coses des del shell de linux de l'aparell:
http://mybookworld.wikidot.com/forum/t-368098/debricking-script-that-can-keep-data

Jo vaig fer mig d'una cosa i mig de l'altre. Jo vaig preferir preparar el nou disc utilitzant la controladora del MyBook Live i la seva consola SSH.
Reading in Internet I could find that this device has Linux Embedded!. Excellent, this is going to be fun. But CPU is a PowerPC, hummm..

I'n not the only one that had a dead WD MyBook Live. Other people generated lots of documentation on their research and this helped me a lot: (so in turn I write too this documentation)

Debrick Guide v1: based on a script that didn't work for me due to software RAID issues.
https://community.wd.com/t/guide-how-to-unbrick-a-totally-dead-mbl/56658

Guia versió 2: based on a 1Tb disk drive image.
https://community.wd.com/t/guide-debrick-mybooklive-v2-0/58546

Scripts, shell commands issued inside the shell of the device...
http://mybookworld.wikidot.com/forum/t-368098/debricking-script-that-can-keep-data

I did a mix of some of these procedures.
I preferred to prepare the disk using the MBL controller and the SSH console.

1: Disassembly:




2: Disk Replacement:


Molta gent diu que el disc s'ha de canviar per un disc Western Digital i que ha de ser especialment un WD Green. Potser per el Script de debrick.sh sí que es necessari, però jo ho he pogut fer anar amb:

  • Hitachi 721010KLA330 de 1Tb
  • Seagate de 2Tb
  • WD20EZRX (Blue de 5400rpm)
Sí que he d'admetre que vaig tenir problemes amb un WD20EARX que tenia per aquí: el disc sembla funcionar correctament però en el moment de voler-lo formatejar des del controlador del MyBook Live no avança.


Lots o people think that they need to replace the disk with a WD one, and that it needs to be a WD Green of some sort. Maybe the debrick.sh script requires this, but I got it to work with next disks:
  • Hitachi 721010KLA330 de 1Tb
  • Seagate de 2Tb
  • WD20EZRX (Blue de 5400rpm)
I have to admit having problems with a spare WD20EARX I had laying around. Disk works when plugged to a PC, but it gets stuck when required by the WD MyBook Live Controller.

WD MyBook Live using a Hitachi Deskstar 721010KLA330 1Tb disk.

3: Operating system reinstall:


Bàsicament la Guia 2 funcionarà: es basa en enxufar el disc en un PC amb Linux:

  1. Enxufar el disc en un PC amb Linux.
  2. Clonar amb dd una imatge d'un MyBookLive de 1Tb en el nou disc, amb les particions, el Raid, el Swap, tot apunt.
  3. Cas que el disc sigui de 2Tb, fer servir el programa gparted per a agrandar-les.
  4. Enxufar al controlador de WD MyBook Live i engegar.


De resultes de les trifulques amb el WD20EARX que no va funcionar, vaig aprendre a fer part del procés amb la controladora del MyBook Live. Com que el disc ha de funcionar amb aquesta controladora, crec que sempre millor fer-ho així.

El meu problema és que el WD20EARX funcionava en el PC però no funcionava amb la controladora del MyBook Live

Guide 2 will work: it is based on:

  1.  plugging the new disk to a Linux PC
  2. Clone using dd an image from a 1Tb MBL to your new disk. You will get your Raid and your Swap working quite straightforward.
  3. If the disk is 2Tb you'll need to use gparted to enlarge the partitions.
  4. Plug the disk to WD MBL controller and start.
I was mad with WD20EARX not working so I learned better ways to go: Since the disk needs to work with the MBL controller, I do most part of the process using the MBL controller and not the PC. 

My WD20EARX worked in the PC but didn't work with the WD MBL Controller. weird.

3.1 Get the WD MyBook Live 1Tb image / Aconsegueix la imatge del WD MyBook Live de 1Tb


Instal.lar en el teu linux el 7zip

  • apt-get install p7zip-full
Després descarrega la imatge de:
La descomprimeixes i obtindras mybook.img
  • 7z x mybook.7z
Install 7zip in your linux

  • apt-get install p7zip-full
Download MBL 1Tb filesystem image from
Decompress the file and get mybook.img
  • 7z x mybook.7z

3.2 Write the image to the disk / Instal.lar la imatge al disc:


Endolla el disc nou al teu ordinador Linux (o fes servir un LiveCD però potser et quedaràs sense espai per operar). Pots enxufar-lo al USB o directament al SATA.

Pots trobar si està al sda, o sdb o sdc o sdd amb la comanda lsblk. A mi em va quedar al sdb, doncs al sda tinc el disc dur del PC

Llavors clones la imatge: (substitueix sdb per el que convingui.

  • dd if=mybook.img of=/dev/sdb bs=1M

És important el bs=1M perquè si no tardarà una eternitat.
Plug your new disk to your Linux PC (or use a LiveCD but you may run out of space to work). Use a a USB-SATA or plug directly to SATA.

Locate your device (sda / sdb / sdc / sdd) using lsblk command. I got mine at sdb becuase sda was my boot disk.

Then clone image: replace sdb by what you need to make it work.
  • dd if=mybook.img of=/dev/sdb bs=1M
bs=1M is important. It will last forever if you miss it.


3.3 Install the disk to the MBL controller and operate there. / Instal.la el disc a la controladora del MBL i operar des d'allà.


Instal.la el disc a la controladora del MBL, connecta corrent i xarxa.

Engega el MyBookLive i veuràs que després de 3 minutets ja es posa verd.

Localitza la IP del MyBookLive amb un Portscanner. El meu estava a 192.168.1.103



Connecta't-hi amb el navegador i Acceptes els drets d'ús i entres. Veuras que indica que el disc és de 1Tb

  • http://192.168.1.103

Llavors habilites l'accés per SSH

  • http://192.168.1.103/UI/ssh
Ara t'hi connectes per ssh.
  • Per a Windows: putty usuari root
  • Per a Linux: ssh root@192.168.1.103
  • Password: welc0me
Attach the MBL controller to the disk and plug network and power.

After 3 minutes LED will be green.

Locate MyBookLive IP address using a PortScanner
Connect using a browser, accept the terms of use and login. You will see that the disk is 1Tb.
  • http://192.168.1.103
Llavors habilites l'accés per SSH

  • http://192.168.1.103/UI/ssh
Now connect through SSH
  • For Windows: use putty user root
  • For Linux: ssh root@192.168.1.103
  • Password: welc0me

3.4 Make the new Data Partition (Enlarge to 2Tb) / Fes la nova partició de dades (allargar fins a 2Tb)


Per a allargar la nova partició, eliminarem la de 1Tb que hi ha a la imatge que hem clonat, i la farem nova amb les característiques que toquen.

Com que no podem tocar particions que estan en ús (compartides) primer evitarem que el MBL les munti.
  • cd /etc/init.d
  • mv mountDataVolume.sh mountDataVolume.shBAK
  • reboot
Espera 2 minuts que reinicii. Torna a entrar.
  • ssh root@192.168.1.103
Parem els serveis que no han de funcionar sense la pertició de dades:
  • /etc/init.d/mionet stop
  • /etc/init.d/twonky stop
  • /etc/init.d/itunes stop
Ens assegurem que les particions de dades no estan actives:
  • umount /CacheVolume
  • umount /nfs
  • umount /shares
  • umount /DataVolume
Ara reparticionem
To enlarge the partition we will delete the 1Tb partition from the image we cloned and will make the new one with the propper options.

Since we can't mess with partitions in use, we need to prevent the MBL from mounting them.

  • cd /etc/init.d
  • mv mountDataVolume.sh mountDataVolume.shBAK
  • reboot
Wait 2 minutes for the MBL to restart and login again
  • ssh root@192.168.1.103
Stop the services that should'n work without the data partition:
  • /etc/init.d/mionet stop
  • /etc/init.d/twonky stop
  • /etc/init.d/itunes stop
Make sure that the data partitions are not munted:
  • umount /CacheVolume
  • umount /nfs
  • umount /shares
  • umount /DataVolume
Now we repartition:


3.4.1: Fix the partition table. / Arreglem la taula de partició


Per alguna extranya raó la taula de partició no està del tot bé, reparar-la.
Llavors arreglar la taula perquè vegi que l'espai del disc és de 2Tb i no de 1Tb.
For some strange reason, partition table is corrupt in the image we used. Fix.
Then fix partition table to see the available disk space of 2Tb.

MyBookLive:~#parted
(parted) p
Error: The backup GPT table is corrupt, but the primary appears OK, so that will
be used.
OK/Cancel? ok
Warning: Not all of the space available to /dev/sda appears to be used, you can
fix the GPT to use all of the space (an extra 1953504000 blocks) or continue
with the current setting?
Fix/Ignore? fix

3.4.2: Remove old 1Tb partition. / Esborrar la vella partició de 1Tb.


(parted) p                                                              
Model: ATA WDC WD20EARX-00P (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name     Flags
 3      15.7MB  528MB   513MB   linux-swap(v1)  primary
 1      528MB   2576MB  2048MB  ext3            primary  raid
 2      2576MB  4624MB  2048MB  ext3            primary  raid
 4      4624MB  1000GB  996GB   ext4            primary

(parted) unit s                                                        
(parted) p                                                              
Model: ATA WDC WD20EARX-00P (scsi)
Disk /dev/sda: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start     End          Size         File system     Name     Flags
 3      30720s    1032191s     1001472s     linux-swap(v1)  primary
 1      1032192s  5031935s     3999744s     ext3            primary  raid
 2      5031936s  9031679s     3999744s     ext3            primary  raid
 4      9031680s  1953523711s  1944492032s  ext4            primary

(parted) rm 4                                                          
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda
(Device or resource busy).  As a result, it may not reflect all of your changes
until after reboot.


3.4.3: Create the 2Tb partition. / Crea la partició de 2Tb


(parted)  mkpart primary 9031680s -1

Warning: You requested a partition from 9031680s to 3907029167s.        
The closest location we can manage is 9031680s to 3907029134s.
Is this still acceptable to you?
Yes/No? yes                                                            
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda
(Device or resource busy).  As a result, it may not reflect all of your changes
until after reboot.
(parted)            
(parted) p                                                              
Model: ATA WDC WD20EARX-00P (scsi)
Disk /dev/sda: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start     End          Size         File system     Name     Flags
 3      30720s    1032191s     1001472s     linux-swap(v1)  primary
 1      1032192s  5031935s     3999744s     ext3            primary  raid
 2      5031936s  9031679s     3999744s     ext3            primary  raid
 4      9031680s  3907029134s  3897997455s  ext4            primary

(parted) unit GiB                                                      
(parted) p                                                              
Model: ATA WDC WD20EARX-00P (scsi)
Disk /dev/sda: 1863GiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start    End      Size     File system     Name     Flags
 3      0.01GiB  0.49GiB  0.48GiB  linux-swap(v1)  primary
 1      0.49GiB  2.40GiB  1.91GiB  ext3            primary  raid
 2      2.40GiB  4.31GiB  1.91GiB  ext3            primary  raid
 4      4.31GiB  1863GiB  1859GiB  ext4            primary

(parted) quit                                                          
Information: You may need to update /etc/fstab.    
                 
MyBookLive:~# reboot

Acabarem reiniciant per assegurar que el Kernel llegeix bé les particions

Tardarà 2 minuts en reiniciar i tornaran a quedar les particions desmuntades.
We restart to let the Kernel read he new partitions.

After 2 minutes the MBL will be up again with the partitions unmounted.



3.4.4: Format the filesystem the propper way / Formateja correctament el filesystem.



Llegint els scripts interns d'inicialització, (/usr/local/sbin/factoryRestore.sh) podem veure que els formateja amb un BlockSize de 65535.
  • ssh root@192.168.1.103
Parem els serveis que no han de funcionar sense la pertició de dades:
  • /etc/init.d/mionet stop
  • /etc/init.d/twonky stop
  • /etc/init.d/itunes stop
Ens assegurem que les particions de dades no estan actives:
  • umount /CacheVolume
  • umount /nfs
  • umount /shares
  • umount /DataVolume
Ara formategem:

  • mkfs.ext4 -b 65536 -m 0 /dev/sda4
Reading the internal factory initialization scripts (/usr/local/sbin/factoryRestore.sh) we can see that the filesystem needs to be format using a BlockSize of 65535.
  • ssh root@192.168.1.103


Stop the services that should'n work without the data partition:
  • /etc/init.d/mionet stop
  • /etc/init.d/twonky stop
  • /etc/init.d/itunes stop
Make sure that the data partitions are not munted:
  • umount /CacheVolume
  • umount /nfs
  • umount /shares
  • umount /DataVolume
Now we format:
  • mkfs.ext4 -b 65536 -m 0 /dev/sda4



3.4.5: Prepare for FactoryRestore and it will be like new! / Preparem per a FactoryRestore perquè quedi com nou.



Tornem a posar el script perquè munti les particions de dades:


  • cd /etc/init.d
  • mv mountDataVolume.shBAK mountDataVolume.sh


Posem els tokens per a obligar a fer un FactoryRestore utilitzant el script del fabricant.


  • /usr/local/sbin/factoryRestore.sh
  • reboot


En reiniciar començarà el procés de inicialització i quedarà com nou.
Tardarà 35 minuts.

We recover the patition mount script back.


  • cd /etc/init.d
  • mv mountDataVolume.shBAK mountDataVolume.sh


We place the tokens to force a Factory Restore using the manufacturer's script


  • /usr/local/sbin/factoryRestore.sh
  • reboot


After restart it will initialize and in 35 minutes it will be like new.



3.4.6, Update Firmware, Device Test...



Quan hagi acabat ja pots entrar altra vegada a través del navegador, comprovar que el dic és de 2Tb, tornar a habilitar el ssh si vols i pots:

  • Actualitzar el Firmware
  • Fer un test del dispositiu.
Tot funciona.
Once finished, login again through browser, check that your disk is 2Tb, you can enable again SSH if you wish to.
Reccomended:
  • Update firmware
  • Do a device test



You'll see that everything works fine.

Fixing bad sectors / Arreglant sectors defectuosos:



Els MyBook Live es van fent vells i alguns experimenten l'aparició de sectors defectuosos.

Per a detectar-los, aplica:

Procediment per a evitar que es muntin les particions


  • ssh root@192.168.1.103
  • cd /etc/init.d
  • mv mountDataVolume.sh mountDataVolume.shBAK
  • reboot
Parem els serveis que no han de funcionar sense la pertició de dades:
  • ssh root@192.168.1.103
  • /etc/init.d/mionet stop
  • /etc/init.d/twonky stop
  • /etc/init.d/itunes stop
Ens assegurem que les particions de dades no estan actives:
  • umount /CacheVolume
  • umount /nfs
  • umount /shares
  • umount /DataVolume
I llavors engeges un test ReadWrite no destructiu per a detectar els sectors defectuosos:
  • fsck -vcck /dev/sda4
Compte que tardarà 40 hores! No tnaquis el ssh.

Per a saber quins blocks estan malament:
  • dumpe2fs -b /dev/sda4
Recupera el muntatge de les particons de dades i reinicia

  • cd /etc/init.d
  • mv mountDataVolume.shBAK mountDataVolume.sh
  • reboot

MyBook Live are getting old and develop bad sectors from time to time.

To check for them do:

Prevent the mounting of data partitions:


  • ssh root@192.168.1.103
  • cd /etc/init.d
  • mv mountDataVolume.sh mountDataVolume.shBAK
  • reboot
Stop the services that need to be down when there is no data partition
  • ssh root@192.168.1.103
  • /etc/init.d/mionet stop
  • /etc/init.d/twonky stop
  • /etc/init.d/itunes stop
Make sure that data partitions are not active
  • umount /CacheVolume
  • umount /nfs
  • umount /shares
  • umount /DataVolume
Start a non-destructive read/Write Test
  • fsck -vcck /dev/sda4
It will last for 40 hours! Don't close ssh.

To know what sectors were marked bad
  • dumpe2fs -b /dev/sda4
Recover the patition mount script back.

  • cd /etc/init.d
  • mv mountDataVolume.shBAK mountDataVolume.sh
  • reboot