Hey everyone, if you are like me and you upgraded your storage with an external harddrive with the intention of storing bitcoin data on that drive, you might have initially done this via a symlink.
The new (and much improved) v1.0.0 of bitcoin node app does break this because the entire app was re-architectured. You might see the following troubleshooting log
bitcoin_app_1 | [Error: ENOENT: no such file or directory, mkdir '/data/bitcoin'] {
bitcoin_app_1 | errno: -2,
bitcoin_app_1 | code: 'ENOENT',
bitcoin_app_1 | syscall: 'mkdir',
bitcoin_app_1 | path: '/data/bitcoin'
bitcoin_app_1 | }
I unfortunately cannot guarantee this persists between updates, you may need to repeat these steps every update
To fix this Iā¦
- SSH into your umbrel - see other guides on how to do this
- Checked if my symlink was still there. If you had setup correctly previously, to check it your command should be
ls -la ~/umbrel/app-data/bitcoin/data/
My response was
ls -la ~/umbrel/app-data/bitcoin/data/
total 4
drwxr-xr-x 4 umbrel umbrel 1024 Dec 9 2024 .
drwxr-xr-x 5 umbrel umbrel 1024 Jun 25 16:24 ..
drwxr-xr-x 2 umbrel umbrel 1024 Dec 9 2024 app
lrwxrwxrwx 1 umbrel umbrel 19 Dec 9 2024 bitcoin -> /mnt/extssd/bitcoin
drwxr-xr-x 7 umbrel umbrel 1024 Jan 2 2024 i2pd
- Now check to see if the symlink target is still accessible and has the right permissions
ls -la /mnt/extssd/bitcoin
My response was
total 32744
drwxr-xr-x 9 umbrel umbrel 4096 Jun 25 16:14 .
drwxr-xr-x 4 root root 4096 Dec 9 2024 ..
-rw------- 1 umbrel umbrel 0 Dec 9 2024 .lock
-rw------- 1 umbrel umbrel 75 Jun 25 16:14 anchors.dat
-rw------- 1 umbrel umbrel 31 Jan 2 2024 banlist.json
-rw-r--r-- 1 umbrel umbrel 101 Jan 5 2024 bitcoin-orig.conf
-rw-r--r-- 1 umbrel umbrel 211 Jan 6 2024 bitcoin.conf
drwx------ 3 umbrel umbrel 266240 Jun 25 10:15 blocks
drwx------ 2 umbrel umbrel 262144 Jun 25 16:14 chainstate
drwx------ 2 umbrel umbrel 4096 Jun 25 16:14 cormorant
-rw------- 1 umbrel umbrel 11733562 Jun 25 16:14 debug.log
drwx------ 2 umbrel umbrel 4096 Dec 16 2024 descriptor_wallet
-rw------- 1 umbrel umbrel 247985 Jun 25 16:14 fee_estimates.dat
drwx------ 4 umbrel umbrel 4096 Jan 2 2024 indexes
-rw------- 1 umbrel umbrel 16059698 Jun 25 16:14 mempool.dat
-rw------- 1 umbrel umbrel 4888682 Jun 25 16:14 peers.dat
-rw------- 1 umbrel umbrel 254 Jun 11 16:19 settings.json
-rw-r--r-- 1 umbrel umbrel 1996 Jan 5 2024 umbrel-bitcoin-orig.conf
-rw-r--r-- 1 umbrel umbrel 2089 Dec 9 2024 umbrel-bitcoin.conf
drwx------ 2 umbrel umbrel 4096 Dec 16 2024 watchonly_wallet
NOTE: Yours may look a little different. But if you get a response you should be good.
- Solution: Use Direct Volume Mount Instead of Symlink
I unfortunately cannot guarantee this persists between updates but I had to swap out the volumes in thedocker-compose.yml
of the bitcoin app found in~/umbrel/app-data/bitcoin/
I ranvim ~/umbrel/app-data/bitcoin/docker-compose.yml
I removed
- ${APP_DATA_DIR}/data:/data # data/app and data/bitcoin
And added in
- ${APP_DATA_DIR}/data/app:/data/app # app configuration data
- /mnt/extssd/bitcoin:/data/bitcoin # bitcoin blockchain data on external drive
NOTE what you put in here depends on the outputs above. For me, my drive is /mnt/extssd
but yours would be found from previous commands showing the symlink target.
I saved using :wq
and then restarted my bitcoin app from the umbrel UI.
This got it working again.
Hope this helps.