Skip to content

Instantly share code, notes, and snippets.

@v0lkan
Last active Aug 15, 2021
Embed
What would you like to do?
How to Have a Silent and High-Performing Western Digital MyCloud Mirror
#
# Needless to say, I (Volkan Ozcelik) take no responsibility, whatsoever,
# about what will happen to your NAS when you try these.
# When did it to mine, I observed *ENORMOUS* performance gain and a zen-like silence.
#
# +----------------------------------------------------------+
# | WHAT YOU ARE GOING TO DO CAN LIKELY VOID YOUR WARRANTY |
# | SO PROCEED WITH CAUTION |
# +----------------------------------------------------------+
#
# There I said. That’s not for the faint-hearted.
# Though if you are fed up with your WD’s poor performance
# and if you feel adventurous, read on…
#
# Where was I?
# So if your WD NAS is torturously sloooow, the hard drives spin ever and ever,
# your web admin interface does not load in “minutes” and when it does you can brew
# a fresh irish cream latte and also drink it while navigating from one page to another,
# if your CPU utilization is around 50%-90% ALL THE TIME, then what you’ll read here
# might help you.
#
# The root cause of all these issues is that WD Cloud attempts to index all the images
# on your hard drive and create thumbnails for them — If you are an average Joe who
# uploads a bunch of family photos, that’s no big deal. — But if you are like me,
# who have mostly front-end-related projects, digital design, and artwork, that has
# been accumulated over the last 15 years; that indexing process can take YEARS to complete.
#
# ** I’m sorry WD, and I am not gonna wait for a year to have a silent and healthy drive!!!!!! **
#
# The good thing is, the indexing process can be disabled.
# The not-so-good thing is, you’ll need to ROOT into the device, which can void your warranty.
# If you are ready, let’s move on:
# Step 1) Enable SSH from the admin console.
# Log in to the web admin UI and then go to Settings » Network » SSH, and turn it on.
# Step 2) Shell into the device:
ssh -oHostKeyAlgorithms=+ssh-dss sshd@your-western-digital-local-ip-address
# You HAVE TO use `-oHostKeyAlgorithms=+ssh-dss` because your
# WD drive’s OS (the particular flavor of Linux (BusyBox) on the device)
# does not support secure SSH access.
# When you log in you’ll be prompted with something like this:
# root@WDMyCloudMirror root #
# Step 3) Stop the bastards:
/etc/init.d/wdmcserverd stop
/etc/init.d/wdphotodbmergerd stop
# Step 4) Check and verify that they are indeed stopped:
ps aux | grep wd
# You are all set!
#
# Enjoy your performant and quiet NAS!
# Extras
# ------
# There is probably a script somewhere that enables these services (wdmcserverd, wdphotodbmergerd) on reboot.
# If you feel extra adventurous, feel free to hack into the system and disable that script too.
# When you do, I’dd appreciate if you comment on this gist as well.
#
# When you restart the hard drive, or when there is a power loss and a reboot, those services will go up.
# So you’ll have to shell into the box and kill them again.
# Extra Extra Tip
# ---------------
# Moving things around is MUCH faster when you SSH into the box instead of managing
# them from your remote NAS mount. “The Cloud” is especially a bit foggy when
# you are connecting through the wifi. Whenever possible prefer a gigabit ethernet
# connection to your private cloud.
@yehgdotnet

This comment has been minimized.

Copy link

@yehgdotnet yehgdotnet commented Apr 22, 2018

I just use WD only as file storage through sftp/ftp, not as media players Timemachine backups.
So, I solved it by disabling a couple of services.

Reboot after the following commands:

update-rc.d netatalk disable
update-rc.d restsdk-serverd disable
update-rc.d samba disable
update-rc.d nfs-kernel-server disable
update-rc.d nfs-common disable
update-rc.d upnp_nas disable
update-rc.d mDNSResponder disable
update-rc.d mdadm disable
update-rc.d rpcbind disable
update-rc.d itunes disable
update-rc.d wdphotodbmergerd disable
​update-rd.d wdmcserverd disable
​update-rc.d twonky disable
​update-rc.d openvpn disable
​update-rc.d ssh enable
update-rc.d vsftpd enable
update-rc.d apache2 enable

@lonmiller

This comment has been minimized.

Copy link

@lonmiller lonmiller commented Jun 20, 2018

update-rc.d is no longer found on some models of WD My Cloud. There are workarounds about startup scripts to run the stop command, etc but WD is doing integrity checks on the devices post-firmware update and changes like this can get your device in an unstable state and make it difficult to connect without a re-image.

@Pedrolitor

This comment has been minimized.

Copy link

@Pedrolitor Pedrolitor commented Dec 14, 2019

Hi thank you for this amazing tutorial it worked perfectly the first time.
But this time, after the last update, when i try to stop the bastards (step 3) I get that message :

sh: you need to specify whom to kill

Do you know what it means?

@v0lkan

This comment has been minimized.

Copy link
Owner Author

@v0lkan v0lkan commented Dec 15, 2019

Hi @Pedrolitor; happy to help.

Unfortuntaley, I removed the hard drives in that unit (after being fed up enough) and switched using a QNAP Direct Attached Storage.

Since I can access a DAS (attached to my PC, and my PC is never down) from the network anyway, it is still doubles as a NAS to a certain extent without all the useless crap.

I think unless you have an organization of 4-5 people with different users, profiles, and needs; a NAS is kinda overrated.

So I don’t know what that command may entail; but since you’ve rooted into the system at least you can cat /etc/init.d/wdmcserverd and try to see what it is trying to do and what it’s not finding.

Hope that helps.

@lonmiller

This comment has been minimized.

Copy link

@lonmiller lonmiller commented Jan 3, 2020

The issue is here in the script (this is for /etc/init.d/wdphotodbmerger but same for wdmcserved).

stop)
echo "Stopping wdphotodbmerger"
kill -9 pidof wdphotodbmerger
# Wait a little and remove stale PID file
sleep 1

the kill process is complaining about the process id because the pidof wdphotodbmerger command should return a process id for kill to, well, kill but that command returns null. Which means either wdphotodbmerger is not running, or it's at some other level that isn't available to the shell.

running ps -ef | grep wdphotodbmerger returns nothing (just the grep statement itself), so apparently it's no longer running.

@v0lkan

This comment has been minimized.

Copy link
Owner Author

@v0lkan v0lkan commented Jan 5, 2020

Thanks for the update 🤘.

@Pedrolitor

This comment has been minimized.

Copy link

@Pedrolitor Pedrolitor commented Jan 9, 2020

Thank you so much for the updates guys. @v0lkan sorry I took so long to respond I didnt see your response, you answered too quickly ^^
The NAS is actually my parent's, we use it mostly for photo storage, important documents and movies/tvshows. We are multiple users, inside or outside the home. We used DLNA to stream pictures and movies from the NAS on the TV but the dashboard was getting slower and slower (sometimes it took too long to load a page that it disconnected because of connection delay) and the DLNA was unstable. After a few research online I saw that the problem was those two bastards as you call them.

Now we use Plex, and let it manage the DLNA (no plex app on this tv...) but only for movies/tvshows. I'm not sure it's better because the DLNA is still really unstable. Sometimes it works just fine, sometimes we dont see the server on the TV but my brother 600km away can stream 1080p movies from the server on his phone using plex. I think the problem come from the NAS that is not powerful enough.
I try to have a dashboard we can navigate without waiting 5 minutes between each clicks, make plex run correctly and maybe cast photos on tv. Next challenge would be to have our own music streaming server,using plex or else, by ripping our CDs and putting them in the NAS . I'm afraid to sync pictures to plex because there is so much of them.
I'm just thinking that the NAS never goes to sleep since we disabled this setting day 1, is it a bad idea?

@lonmiller I didn't get all you said (sorry I have poor english and zero SSH skills) but what I understood is that they were both already stopped that's why it couldn't stop them. Since they were and update lately I just stopped them and it worked! But the dashboard and metadata agents in plex are still incredibly slow (and no one is using neither the nas or plex right now...)
Sorry for the long post and poor english.

@chiefbobo

This comment has been minimized.

Copy link

@chiefbobo chiefbobo commented Jan 15, 2021

Thanks for the excellent tip. Unfortunately it didn't work for me.

Here's what I go when I entered the kill commands:

/etc/init.d/wdmcserverd not found
/etc/init.d/wdphotodbmergerd not found

Any ideas?

@pateldeepp

This comment has been minimized.

Copy link

@pateldeepp pateldeepp commented Jan 19, 2021

Thanks for the tips. I also don't find any wdmcserverd & wdphotodbmergerd.

When I list directory /etc/init.d I have found only 3 files / folders

  1. S20wdtmsd
  2. atop
  3. wdtmsd
@matthijsvk

This comment has been minimized.

Copy link

@matthijsvk matthijsvk commented Aug 11, 2021

same for me, it looks like the recent devices don't have these services anymore, or they're renamed.
I tried stopping the 'S20wdtmsd', but I still have the process 'rest-sdk-server' taking up 80% CPU and indexing taking forever :(

@v0lkan

This comment has been minimized.

Copy link
Owner Author

@v0lkan v0lkan commented Aug 15, 2021

I ended up ditching it entirely; taking the hard disks out of it, formatting them, and putting them into a QNAP DAS enclosure.

Best thing I did to myself.

Hey Western Digital:
Just because you can add software to your hardware, does not mean you should.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment