From Fedora Project Wiki

The various bcache test cases require some preparation.


There's no "easy way" to convert an existing filesystem to a bcache based filesystem: bcache is an additional block layer that writes its own superblock on the underlying block devices. There is a blocks tool under development, but for now the only solution is to backup your data some where, recreate your filesystem on a bcache device, and then restore the data.

Another limitation is the fact that bcache is EXPERIMENTAL. Although it works really well in general, you should be careful to store important data on it.

Physical or Virtual

Although performance (of course) is a very important aspect of SSD caching, testing it is not required on the test day. Because of this testing can be done both on physical and virtual hardware, on a true SSD or a HDD. There is however a slight preference to do the testing on real hardware, with a real SSD.

Whenever the terms HDD or SDD are used below, they can be both physical and virtual. The same is true for the terms "system", "CPU", "RAM`and "bootable media".

Hardware & Software requirements

  • A fresh system:
 * 10GB+ HDD
 * 2GB+ SSD
 * 256MB+ RAM
 * x86 CPU (32bit or 64bit)
 * internet connection
  • bootable media containg Rawhide/F20 (?) netinst (?) image.

Disk partitioning

To prepare for the test cases, it is important to use the following partitioning:

 sda1 500MB  /boot
 sda2 2GB    /home
 sda3 2GB    /
 sda4 (>4G)  free space (only used when testing in combination with LVM)
 sdb1 >2GB   (caching device)

sda is (or models) the rotational disk device, sdb is (or models) the solid state disk device. It would be best to have sdb (on) a true SSD, but if you don't have an SSD then an ordinary disk will do as well for the testing (except for performance testing)

When using a VM sda and sdb may be read as vda and vdb.


Please disable SElinux. There's some copying involved in the testcases, and SElinux may break the testcases when the copied data is not accessible.

To disable SElinux you should edit your /etc/selinux/config and set SELINUX=permissive instead of SELINUX=enforcing.

Return enforcing mode after testing!

Other requirements

  • Knowledge on how to build physical or virtual machines
  • Knowledge how to use the Linux command line (There's no graphical installer yet)
  • A desire to break software