I have an Ubuntu system with a 100GB SSD. I'm running out of space.

Since I have a 300GB disk from my old system, I'm thinking I could use it to boost space.

The obvious answer is to just add the disk, but I wonder, can I use the SSD to cache the larger disk?

My Questions:

  1. Is it possible to use BCache on the main disk in Ubuntu.
  2. Is it possible to make this change in place? Do I have to reinstall.
  3. Since my slower disk is only 300GB, does it really make sense to do this?

I'm on Ubuntu 12.10

2 Answers 2


It's possible, you can do it in place, and it makes sense as long as the total size of your HDDs is greater than your SSD size. Have a look at the blocks converting your root filesystem to bcache howto. Your case is more complicated than if you were starting from a HDD install; you'll also have to move your partitions (except the boot partition) from the SSD to the HDD. You should use a LiveCD/LiveUSB, use something like GParted to move your partitions to the HDD (you can also do that with an LVM conversion and pvmove, but it's more complicated to explain), then follow the rest of the blocks tutorial.

ObDisclaimer: I wrote blocks, the conversion tool.


I'm not sure about #1, but I can offer some suggestions/thoughts for #2 and #3.

#3. If you think that a 100GB cache for a 300GB backing store is too much, you don't have to use the full SSD for your cache; you can partition it. In most cases user data is going to be larger than system data (programs, etc), so you could make an appropriately-sized partition for your programs on the SSD (so they start up fast), make a second SSD partition for bcache, and put your data-heavy partitions on the larger 300GB disk (/home or /var, for example) using the bcache device (e.g., /dev/sda2) to cache them.

#2. You don't have to reinstall, but the ease with which you transition is based on your command line expertise. Here are two possibilities. In either case, you should either boot from a LiveCD or boot into single-user mode.

  • create partitions on the HDD, format, and mount them; use cp -a to transfer the data from the SSD. Confirm the data is copied correctly and then remove it from the HDD. Shrink the system partition on the SSD and create one for bcache. Don't forget to update /etc/fstab with your new filesystem layout.

  • or if you want to use the whole SSD, a blunt way to make the transition would be to use dd to image the smaller SSD to the larger HDD and then use partitioning and filesystem tools (or gparted) to expand the partition.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.