|Model||Version||Current Release||Firmware OpenWrt Install||Firmware OpenWrt Upgrade||Firmware OEM Stock|
Warning: By installing OpenWrt, you will lose all existing data on your disk(s). Their MBR (master boot record) containing the partition table will be overwritten. In addition, the original Western Digital firmware's disk format uses a nonstandard 64 kB block size, rendering the data inaccessible to OpenWrt and most other systems. Back up your data to another drive before installing OpenWrt.
MBL Duo firmware builds prior to 18.06 (or snapshot r7526 dated 2018-07-16) contain a bug that prevents proper operation if two disks were used and either contained anything other or more than the default OpenWrt partitions. Although an official 17.04 build exists, for all intents and purposes, MBL Duo support started with OpenWrt 18.06.
Remove the disk from their enclosure (easy on MBL Duo, a bit more elaborated on MBL Single) and connect it to a host computer running Linux.
Download the OpenWrt firmware image to your host computer and gunzip it to receive the image file ending in .img (272 MB).
Write the firmware image to the disk using
# dd if=openwrt-apm821xx-sata-wd_mybooklive-ext4-rootfs.img of=/dev/sdx bs=256M
This usually requires root privileges on your system. Replace
/dev/sdx with the device the disk is attached to.
Warning: This overwrites the target disk with a new MBR (master boot record) and a new partition table. You will lose all existing data on the target disk. If you choose the wrong device, you may accidentally overwrite your system disk or another disk you may care about, so double and triple check to make sure you are writing to the correct disk.
Re-insert the disk into their enclosure. Like with other OpenWrt devices, the single ethernet port will be assigned to the LAN interface running DHCP. You can now proceed to configure OpenWrt to your liking, further partition the disk and install additional packages.
OpenWrt builds prior to 18.06 or snapshot r7526 (dated 2018-07-16) do not work correctly on an MBL Duo. It will fail to boot (boot loop) if two disks are used and either contains anything other than the two default OpenWrt partitions.
Contrary to Western Digital documentation and nomenclature, the MBL Duo enumerates its disks beginning from the right: SATA port 0 is located in the right bay (“Drive B” in the manual), SATA port 1 in the left bay (“Drive A” in the manual). If both disks are inserted, the disk in the right bay is assigned /dev/sda, the disk in the left bay /dev/sdb. OpenWrt will mount its root from /dev/sda2, consequently boot will fail if the disk in the right bay does not contain OpenWrt. If both disks contain OpenWrt, all changes to its configuration will be made to the disk in the right bay.
When used with two disks, the MBL Duo requires the disk in the right bay (“Drive B” in the manual) to contain OpenWrt.
If only one disk is inserted, it will be assigned /dev/sda regardless of the drive bay it is in. It is actually possible to hot-plug a disk into the other drive bay on a running system, but keep in mind that if you hotplug to the right drive bay, device enumeration will change after a reboot.
The aforementioned “backwards” enumeration of drives means that a sysupgrade will upgrade the system on the “right” drive. However, if both drives in a Duo contain OpenWrt, it will still load kernel and dtb from the “left” drive which has not been sysupgraded, so the kernel will not match the installed OpenWrt system. This can lead to a partial or completely unfunctional system.
The temporary fix is easy, if a bit cumbersome: sysupgrade both drives individually by taking out the respective other drive before booting. After that, both drives will again contain the same version of OpenWrt and can be inserted together. This will also be necessary once more when this bug has been resolved in OpenWrt.
OpenWrt on the MBL can be upgraded using LuCI and sysupgrade. It directly takes a gzipped image file ending in .img.gz which does not have to (and due to memory constraints probably shouldn't) be unzipped.
If you are updating from 17.01 (or a snapshot build dated before 2017-12-14), or if you are using a GPT partition table (necessary on disks > 2 TB), the upgrade will indiscriminately overwrite the MBR partition table. Any partitions you created beyond the default two OpenWrt partitions will be missing.
For MBR: Before upgrading, you should print out your partition table (“p”rint in fdisk) and carefully take note of the partition parameters. After upgrading, re-create the missing partitions using fdisk with the exact same parameters. fdisk will tell you that the new partition(s) already contain a file system and offer to erase it, which you should decline.
For GPT: After upgrading you can start gdisk which will tell you about a corrupted MBR. Tell it to use the GPT partition table and re-write it to disk.
In 18.06 and snapshots built after 2017-12-14, sysupgrade has been improved and additional partitions in an MBR partition table will be retained. It remains unaware of GPT, so for GPT disks the above procedure is still necessary.