Posted on :: 490 Words :: Tags: , ,

Upgrading My Bitcoin Node SSD

About four years ago I decided to set up a bitcoin node as a little project. These days Umbrel offer plug-and-play home servers, but back then was just an operating system, with a list of suggested hardware to get everything up and running.

So I've been running my node all this time on a Raspberry Pi 4 connected to a 1TB SSD, but recently I noticed there was only about 80GB of free space left on the drive. I wasn't sure how many more months it would be before I ran out of space completely, so I figured it was time to upgrade to a larger drive.

The existing drive was a Crucial MX500 2.5" SSD, and the drive I got to replace it was a 2TB Samsung T7.

I found a few different posts about how to do this, with lots of recommendations for cloning software and many asking for help with problems users had encountered. I decided to use dd, the powerful-yet-dangerous-in-the-wrong-hands command line tool that can be used in Linux or MacOS. The steps I took were very similar to this post in fact, except I used my Pop!_OS laptop.

After shutting down my Umbrel node, I connected the old Crucial SSD to my Metabox laptop via the USB A 3.1 port, and the new T7 drive to the Thunbolt 4 port.

I then ran the following command:

sudo dd if=/dev/sdb1 of=/dev/sda1 bs=256k status=progress conv=fsync

Where:

  • if is the input file (the path to the old drive I wanted to clone)
  • of is the output file (the path to the new drive I was cloning to)
  • bs is the blocksize to read and write (256k was the recommended in the post I read, so I went with that)
  • status=progress shows the progress
  • conv=fsync ensures data is written before the process is completed

I'd seen in several posts that the cloning process could take a long time, but for me it was done in just over an hour. After cloning had completed and I checked the new drive in GParted and saw a warning that about 1TB of space was unallocated. This is expected when the destination drive is larger than the source. The quickest way to fix it is to go to Partition -> Check, and GParted will then resize to use the unallocated space.

Once this process was complete I connected the new drive to my Raspberry Pi and started it up. Within a couple of minutes I was able to connect to the web interface and could see everything was running as expected, and within another ten minutes the blockchain was fully synced. Total downtime was less than two hours!

I might come back and add a couple of screenshots to this post once I've resized the images I have, but that's all for now.