UmbrelOS not working (properly) after migrating from Core to Knots

Hey there,

I tried migrating from Bitcoin Core to Bitcoin Knots with this guide which should give you the ability to migrate without losing blockchain data so you won’t have to sync again: How to migrate from Core to Knots on Umbrel. | bc-guide

However, after entering the prompt shown in the guide, I checked if Knots is synced and at first it said it was starting but this seemed to be stuck there. Then later on I restarted Umbrel and then no app would open and the system is just unresponsive. Also data storage on my SSD is at 70GB now, while it was at 800/900GB.

Is there anybody that knows what’s up and how to fix?

Thanks in advance!

Hey, so the ssd is showing you’ve only got 70G in use whereas it was 800/900 Gig? Are you sure the file system with the blockchain is mounted? Have a look here and see what you can find out. ***Avoid “rm” commands for a bit… ***


You’ll need a few tools…

Install smartmontools

Since Umbrel is Debian-based, we can use apt to install smartmontools, which includes smartctl for detailed SSD health checks.

  1. SSH into Umbrel:
  • Run ssh umbrel@umbrel.local (or your node’s IP). Use your Umbrel dashboard password.
  1. Update Package Lists:
  • Run:

sudo apt update

  • This fetches the latest package info. If it fails (e.g., network issues), try sudo apt update --fix-missing or check your internet connection.
  1. Install smartmontools:
  • Run:

sudo apt install smartmontools

  • This installs smartctl and related tools. It’s a small package (~1MB), so it won’t strain your system.
  1. Verify Installation:
  • Check if smartctl is available:

smartctl --version

  • If it outputs a version (e.g., smartmontools 7.x), you’re good.

Work The Problem

The command you executed was:

cd umbrel/app-data/ && sudo rm -rf bitcoin-knots/data/ && sudo mv bitcoin/data/ bitcoin-knots/ && sudo rm -f bitcoin-knots/data/app/bitcoin-config.json

This command is intended to migrate blockchain data from Bitcoin Core to Bitcoin Knots by deleting Knots’ existing data directory, moving Core’s data directory to Knots, and removing a configuration file. Let’s dissect it:

  1. cd umbrel/app-data/: Changes the working directory to umbrel/app-data/, where Umbrel stores app data, including for Bitcoin Core (bitcoin) and Bitcoin Knots (bitcoin-knots). This part is fine.
  2. sudo rm -rf bitcoin-knots/data/: Deletes the entire bitcoin-knots/data/ directory, which likely contained any blockchain data Knots had started downloading or configuration files. This is destructive and assumes Knots’ data is disposable, which is reasonable if you’re replacing it with Core’s data, but risky if Knots was already partially synced or had critical configs.
  3. sudo mv bitcoin/data/ bitcoin-knots/: Moves the bitcoin/data/ directory (Bitcoin Core’s blockchain data) to bitcoin-knots/, effectively renaming it as Knots’ data directory. This is the core of the migration, aiming to reuse Core’s blockchain data to avoid resyncing. However, if the move operation was interrupted or misconfigured, it could leave the system in an inconsistent state.
  4. sudo rm -f bitcoin-knots/data/app/bitcoin-config.json: Deletes a specific configuration file for Knots. This might be intended to force Knots to regenerate its config, but if Knots relies on this file for proper operation, removing it could cause issues.

What Likely Went Wrong

Based on your description—Knots appearing stuck, the system becoming unresponsive, apps failing to open, and a massive drop in storage usage (from 800-900GB to 70GB)—several things could have happened:

  • Interrupted Move Operation: The mv command is generally atomic for small operations, but moving a massive directory (800-900GB of blockchain data) can take time and strain system resources. If Umbrel’s Docker environment, the SSD, or the system ran out of memory or became unstable during this process, the move could have been interrupted, leaving the data in a corrupted or incomplete state.
  • Storage Usage Drop: The drastic reduction from 800-900GB to 70GB is alarming. This suggests that either:
    • The bitcoin/data/ directory was partially deleted or corrupted during the move, or
    • The rm -rf bitcoin-knots/data/ command (or another unintended operation) wiped out more data than intended, possibly including parts of Core’s blockchain data before the move completed.
    • Alternatively, the SSD might be failing or misreporting usage, though this is less likely.
  • System Unresponsiveness: Umbrel runs apps in Docker containers, and the migration command manipulates files outside the normal app lifecycle. If the moved data was inconsistent or Knots failed to initialize properly, it could have caused Docker or Umbrel’s app management system to hang, making the system unresponsive. The restart you performed might have exacerbated this by leaving the system in a broken state.
  • Config File Deletion: Deleting bitcoin-config.json might have caused Knots to fail to start properly, especially if it needed specific settings to recognize the moved blockchain data. This could explain why Knots appeared stuck on “starting.”
  • Guide Reliability: The guide you followed assumes a clean setup and doesn’t account for edge cases like low system resources, SSD issues, or apps dependent on Bitcoin Core still running.

Immediate Steps to Diagnose and Recover

Your system is in a fragile state, so let’s proceed cautiously to avoid further data loss. Here’s what to do, with a focus on clarity and minimizing risk:

  1. Check System Status via SSH:
  • If you can still SSH into your Umbrel node (e.g., ssh umbrel@umbrel.local), do so.
  • Run df -h to check disk usage and confirm the SSD is mounted and reporting 70GB. This will verify if the blockchain data was truly deleted or if it’s a reporting issue.
  • Run docker ps -a to see the status of Docker containers (Bitcoin Core, Knots, and other apps). Look for containers that are exited or unhealthy.
  • Check system resource usage with top or htop to see if something is overloading CPU or memory, causing unresponsiveness.
  1. Inspect the Data Directories:
  • Navigate to ~/umbrel/app-data/ and list the contents with ls -l.
  • Check if bitcoin/data/ still exists. If it’s gone, the mv command likely succeeded in moving it to bitcoin-knots/.
  • Check bitcoin-knots/data/ to see if the blockchain data (blocks/ and chainstate/ directories) is present and intact. Use du -sh bitcoin-knots/data/ to estimate its size—it should be close to 800-900GB if the move worked.
  • If bitcoin/data/ is empty or missing and bitcoin-knots/data/ is small (e.g., <100GB), the data may have been lost or corrupted during the move.
  1. Stop All Apps:
  • If Docker containers are running, stop them to prevent further writes to the SSD: Use gui if possible or try - docker stop $(docker ps -q).
  • This ensures no apps are trying to access the potentially corrupted data directories.
  1. Check Umbrel Logs:
  • Run docker logs bitcoin-knots and docker logs bitcoin (if Bitcoin Core is still installed) to see error messages. Look for issues like “database corrupted,” “invalid blockchain data,” or “missing configuration.”
  • Check Umbrel’s system logs in ~/umbrel/logs/ or with journalctl -u umbrel* for clues about why the system is unresponsive.
  1. Verify SSD Health:
  • Use smartctl (part of smartmontools) to check the SSD’s health: sudo smartctl -a /dev/sdX (replace sdX with your SSD’s device, e.g., sda). Look for reallocated sectors, wear leveling, or errors indicating hardware failure.
  • If the SSD is failing, this could explain the data loss and unresponsiveness.

Recovery Options

Possible options:

Option 1: Fix Knots Configuration

If the blockchain data is intact in bitcoin-knots/data/ (i.e., blocks/ and chainstate/ are present and roughly 800-900GB), the issue might be with Knots’ configuration or startup.

  • Recreate Configuration: Since you deleted bitcoin-config.json, try restarting Knots via the Umbrel dashboard or with docker restart bitcoin-knots. Umbrel might regenerate the config file.
  • Manually Inspect Config: If Knots still fails, check bitcoin-knots/data/bitcoin.conf (if it exists) and ensure it points to the correct data directory. You might need to add:

datadir=/umbrel/app-data/bitcoin-knots/data

  • Check Dependencies: Ensure no apps dependent on Bitcoin Core (e.g., Lightning, Mempool) are running, as they might conflict with Knots. Stop them via the Umbrel dashboard or docker stop <container_name>.

Option 2: Roll Back to Bitcoin Core

If Knots won’t start but the blockchain data is in bitcoin-knots/data/, you can try moving it back to Bitcoin Core to restore functionality.

  • Stop all Docker containers: docker stop $(docker ps -q).
  • Move the data back: sudo mv ~/umbrel/app-data/bitcoin-knots/data/ ~/umbrel/app-data/bitcoin/.
  • Restart Bitcoin Core via the Umbrel dashboard or docker restart bitcoin.
  • If Core starts syncing from 0%, the data might be corrupted, and you’ll need to proceed to Option 3.

Option 3: Recover Lost Data (if Possible)

If the blockchain data is gone (neither bitcoin/data/ nor bitcoin-knots/data/ contains the 800-900GB of blockchain data), the mv or rm commands likely deleted it. Recovery is tough but not impossible:

  • Check for Backups: If you have a backup of ~/umbrel/app-data/bitcoin/data/ from before the migration, restore it to bitcoin/data/ and restart Bitcoin Core.
  • Data Recovery Tools: If no backup exists, stop all writes to the SSD immediately to avoid overwriting deleted data. Boot the system with a live Linux USB, mount the SSD read-only, and use tools like testdisk or photorec to attempt recovery of the blocks/ and chainstate/ directories. This is a long shot and requires technical expertise.
  • Resync as Last Resort: If recovery fails, you’ll need to resync the blockchain from scratch, which takes days and ~625GB as of April 2025. Install Bitcoin Core or Knots fresh, ensure you have a 1TB+ SSD, and let it sync.

Option 4: Reinstall Umbrel

If the system remains unresponsive and data is unrecoverable, a full reinstall might be necessary.

  • Back up your Umbrel configuration (e.g., ~/umbrel/.env, wallet seeds, and app configs) if you can still access the filesystem.
  • Re-flash the Umbrel OS image to your SD card or reinstall on your device, following Umbrel’s official guide.
  • Set up Bitcoin Core or Knots fresh and start syncing. This will take days but ensures a clean slate.

Addressing The Migration Guide

  • Was the Command Proper? The command is consistent with community guides; however, it’s risky because it deletes and moves large directories without error handling or checks for running apps. It also doesn’t account for system resource constraints or SSD issues. A safer approach would include stopping all dependent apps first and verifying disk space.

  • Why Did Storage Drop? The drop to 70GB strongly suggests data was deleted, likely during the rm -rf or an interrupted mv. Check the data directories to confirm.

  • Why Is the System Unresponsive? Likely due to Docker containers failing to start with corrupted data or missing configs, combined with system resource exhaustion. The restart you performed might have left Umbrel in a broken state if the filesystem was inconsistent.

I hope you don’t have to start over. Best of luck.

I just noticed BTC Sessions on YouTube has put up a video on how to migrate from Core over to Knots. Looks very easy to do. Check it out.

Yes, it requires the copying of the ‘data’ folder from Core to the Knots’ one.
I did that but knots was stuck on ‘starting’. I tried to delete the instance of Core and see if it helped but I could not as other apps are connected to core.
How can I point my other apps that used Core to Knots? It does not mention that on the video.

Click on app icon and change it in the setting!