Warning: This method worked for me and I used this source for it. Proceed at your own risk. Also I need to note that I do not use Cache in any form.
The problem:
You have rebooted your unRAID server and your docker service is refusing to start. What you may see is the following:
and
Apr 2 02:25:30 Tower emhttpd: shcmd (264): /etc/rc.d/rc.docker start Apr 2 02:25:30 Tower root: starting dockerd ... Apr 2 02:25:36 Tower kernel: BTRFS error (device loop2): parent transid verify failed on 23757324288 wanted 2572174 found 2572201 Apr 2 02:25:36 Tower kernel: BTRFS error (device loop2): parent transid verify failed on 23757324288 wanted 2572174 found 2572201 Apr 2 02:25:46 Tower kernel: BTRFS error (device loop2): parent transid verify failed on 23729225728 wanted 2572162 found 2572190 Apr 2 02:25:46 Tower kernel: BTRFS error (device loop2): parent transid verify failed on 23729225728 wanted 2572162 found 2572190 Apr 2 02:25:46 Tower kernel: BTRFS: error (device loop2) in __btrfs_free_extent:6805: errno=-5 IO failure Apr 2 02:25:46 Tower kernel: BTRFS info (device loop2): forced readonly Apr 2 02:25:46 Tower kernel: BTRFS: error (device loop2) in btrfs_run_delayed_refs:2935: errno=-5 IO failure Apr 2 02:25:46 Tower kernel: BTRFS warning (device loop2): btrfs_uuid_scan_kthread failed -30 Apr 2 02:25:51 Tower emhttpd: shcmd (266): umount /var/lib/docker Apr 2 02:25:51 Tower root: umount: /var/lib/docker: target is busy.
This of course, made me extremely nervous. Luckily this only meant that my docker file got corrupted. It happened most likely while I was moving it while the docker service was still active. Yeah, it happens.
Solution:
It’s fairly simple, but it takes a little bit of time.
- Go to Settings -> Docker -> Enable Docker, and set to No, then click the Apply button (this disables Docker support)
- Go to the location of your docker image and rename the file to docker.img.bak – The file may be in
/mnt/user/system/docker
I’m asking you to make a backup, because in all cases, safety first. “Why didn’t you have a backup in the first place?”, I hear you say. Yeah yeah, we all make mistakes every so often! D:
- Go to Settings -> Docker -> Enable Docker, and set to Yes and this creates a fresh and empty Docker image. The docker service should now be started. You can see this as this on the docker settings page:
and on the dashboard you should now see an empty docker field.
- Now go to the Apps Tab, Previous Apps Section. Then check off all of your previous applications and hit “Install”
I recommend to do it one by one so you can double-check the settings and clean up the unused templates after you’re done. If you want to make a copy of the templates, FTP into your server and go to
/boot/config/plugins/dockerMan
After you have restored your docker apps, you’re done. Check all the things and make a backup 😉