How to Completely Disable the ‘bcache’ Service in Ubuntu Server

bcache (block cache) is a Linux kernel feature that allows a fast solid-state drive (SSD) to act as a cache for one or more slower mechanical hard disk drives (HDDs). While it provides a massive performance boost for legacy storage arrays, the bcache kernel module and its associated udev rules are often loaded by default during the Ubuntu boot sequence. If your server is built entirely on modern NVMe or SSD storage and you are not utilizing tiered caching, initializing the bcache subsystem adds unnecessary complexity to the boot process and wastes a minuscule amount of system resources.

This guide explains how to completely disable the bcache subsystem in Ubuntu Server by blacklisting the kernel module.

Blacklist the Bcache Kernel Module

Because bcache is deeply integrated into the kernel and storage stack, you cannot simply stop a systemd daemon. You must instruct the Linux kernel to explicitly ignore and refuse to load the module during the initial boot phase.

  1. Log into your Ubuntu Server via SSH or local console using an account with sudo privileges.
  2. Open the kernel module blacklist configuration file using a text editor like nano:
    sudo nano /etc/modprobe.d/blacklist.conf
  3. Scroll to the absolute bottom of the file using your arrow keys.
  4. Add the following line to strictly forbid the kernel from loading the module:
    blacklist bcache
  5. Press Ctrl+O then Enter to save the file, followed by Ctrl+X to exit the nano editor.
  6. Crucially, you must rebuild the Initial RAM Disk (initramfs) so the kernel reads this new rule during the very first stages of the boot process before the root filesystem is mounted:
    sudo update-initramfs -u
  7. Once the rebuild is complete, reboot the server to apply the changes:
    sudo reboot

Verify the Module Lockdown

By updating the initramfs, you guarantee that the kernel will not attempt to probe or initialize any block devices for caching metadata.

To verify the lockdown is successful, log back into the server after the reboot. Run the following command to query the active kernel modules:

lsmod | grep bcache

The output should be completely blank. If the module were loaded, it would list bcache alongside its size and dependencies. The blank output confirms that your Ubuntu Server is operating strictly with its native block devices, entirely bypassing the unnecessary caching layer.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.