I want to accelerate a 4TB HDD using a 100GB cache partition on an SSD on linux. I only need read-only-cache, so data corruption should not be a problem. I understand that bcache offers a relatively straightforward solution to this use-case. However, the solution (making the SSD-partition a caching partition, making the HDD partition a cached partition and linking them) requires the creation of a "superblock" wrapping the actual data partition on the HDD, in the meantime requiring a reformat of the drive. The partition itself does not differ from an uncached partition, but is not directly in the HDD's partition table, which only contains a pointer to the superblock to ensure that the partition is recognized as a cached partition. Now to my question:
I want to be able to read the partition with Windows, too. It will be an NTFS-partition. Windows can't understand bcache partitions to the best of my knowledge. What are my options?
The superblock should not be essential for devices only cached for reading, right? Is there a way to set up bcache without it? If not, here are two of my ideas:
- Write the superblock into a file and use mdadm to RAID it with the actual partition, tricking bcache into thinking it's dealing with a cached partition.
- Manipulate the partition table of the HDD to contain overlapping partitions, one starting at the superblock and one starting at the actual partition. Is this even possible?
Which is the saner approach? Are there better approaches to realize my use-case?