Bcachefs — файловая система с copy-on-write, контрольными суммами, сжатием, шифрованием, снапшотами и репликацией, которая задумывалась как объединение удобства Btrfs и надёжности ZFS. В 2026 году у неё непростая история: код больше не входит в основное ядро Linux, а метку «экспериментальная» сняли только летом. Разберём, что это значит на практике, как установить и обслуживать bcachefs и почему резервная копия остаётся обязательной.

Где bcachefs находится в 2026 году

Bcachefs попала в mainline в ядре 6.7 в 2024 году. Конфликт разработчика с Линусом Торвальдсом привёл к статусу «externally maintained» в 6.17 и удалению из дерева в 6.18. С этого момента файловая система поставляется как модуль DKMS — по той же схеме, что и OpenZFS. Модуль собирается для ядер 6.16 и новее, а инструменты живут в отдельном пакете bcachefs-tools.

В июне 2026 года вышел выпуск инструментов 1.38.6, вместе с которым проект снял с себя ярлык экспериментального. Стирающее кодирование также перестало считаться экспериментальным. Это важная веха, но не сертификат production-ready: метку снял сам автор проекта, а не независимая команда тестирования.

Что даёт файловая система

Bcachefs проверяет контрольные суммы данных и метаданных. По умолчанию используется crc32c, при форматировании можно выбрать crc64 или xxhash. Поддерживаются сжатие lz4, gzip и zstd, шифрование ChaCha20/Poly1305, подтома и снапшоты, репликация между устройствами, tiering и стирающее кодирование. Снапшоты устроены через версионирование ключей в btree, поэтому создаются почти мгновенно и не требуют клонирования деревьев, как в Btrfs.

Главная оговорка: контрольная сумма обнаруживает повреждение, но не восстанавливает данные. На одном диске bcachefs сможет сказать, что блок испорчен, и вернуть ошибку чтения. Лечить повреждения можно только при наличии второй реплики, parity или резервной копии. Поэтому репликация и бэкап — не украшение, а условие осмысленного использования.

Установка и проверка модуля

В Arch Linux и NixOS пакет bcachefs-tools уже тянет всё необходимое. В Debian и Ubuntu модуль ставят из репозитория apt.bcachefs.org, в Fedora — из COPR-репозитория ngompa/bcachefs, в openSUSE — из проекта filesystems:bcachefs. Для сборки DKMS нужны заголовки текущего ядра и компилятор; при каждом обновлении ядра модуль пересобирается автоматически.

sudo pacman -S bcachefs-tools
bcachefs version
dkms status | grep bcachefs
modinfo bcachefs | head -n 5

Команда modinfo показывает путь и версию модуля. Если dkms status пуст, модуль не собрался: смотрите /var/lib/dkms/bcachefs/*/build/make.log и журнал ядра. Версии модуля и bcachefs-tools лучше держать одинаковыми, иначе возможны несовместимости при работе с новыми возможностями.

Форматирование и монтирование

Сначала проверьте схему на виртуальной машине с двумя пустыми дисками. Форматирование уничтожает данные, поэтому ещё раз сверьте имена устройств через lsblk. В примере — том на /dev/vdb и /dev/vdc с двумя репликами и zstd.

sudo bcachefs format \
  --compression=zstd --background_compression=zstd \
  --data_checksum=crc32c --metadata_checksum=crc32c \
  --replicas=2 /dev/vdb /dev/vdc
sudo mkdir -p /mnt/data
sudo mount -t bcachefs /dev/vdb:/dev/vdc /mnt/data
bcachefs fs usage -h /mnt/data

Для постоянного монтирования используйте UUID из вывода format. В fstab указывайте тип bcachefs, опцию noatime и нулевой код проверки: fsck для bcachefs запускается отдельно, а не из systemd при загрузке. Для мультиустройства применяйте UUID, а не список устройств через двоеточие: так systemd корректно находит том.

UUID=ВАШ-UUID /mnt/data bcachefs defaults,noatime,compression=zstd 0 0
sudo systemctl daemon-reload
sudo mount -a
findmnt /mnt/data

Если bcachefs используется для корня, модуль должен попасть в initramfs. В Arch добавьте bcachefs в MODULES и HOOKS файла mkinitcpio.conf и пересоберите образ; в Debian и Ubuntu проверьте, что модуль включён в initramfs-tools. Отдельный /boot на ext4 сильно упрощает восстановление, если после обновления ядра модуль не соберётся.

Снапшоты и подтома

Подтома позволяют разделить данные и делать снимки отдельных каталогов. Снапшот записываемый: в него можно продолжать писать, а изменения в оригинале не затрагивают снимок. Удаление снапшота освобождает блоки, которые больше никем не используются.

sudo bcachefs subvolume create /mnt/data/home
sudo bcachefs subvolume snapshot /mnt/data/home /mnt/data/home-2026-11-05
bcachefs subvolume list -R /mnt/data
sudo bcachefs subvolume delete /mnt/data/home-2026-11-05

Снапшоты удобны перед обновлением или рискованной миграцией, но они лежат в том же пуле. Потеря диска, контроллера или ошибка в модуле унесёт и оригинал, и снимок. Для защиты от этого нужен внешний носитель и проверенная процедура восстановления.

Обслуживание и диагностика

Штатная проверка показывает распределение данных, метаданных, журнала и parity. show-super выводит суперблок: контрольные суммы, сжатие, устройства. Полный fsck запускается только на размонтированном томе. Безопаснее начать с -n, затем повторить с -y.

bcachefs fs usage -h /mnt/data
sudo bcachefs show-super /dev/vdb
sudo umount /mnt/data
sudo bcachefs fsck -ny /dev/vdb /dev/vdc
journalctl -k -b | grep -i bcachefs

При замене диска эвакуируйте данные, удалите устройство и запустите rereplicate, чтобы восстановить число реплик. Работы проводите в окно обслуживания.

sudo bcachefs device evacuate /dev/vdc
sudo bcachefs device remove /dev/vdc
sudo bcachefs data rereplicate /mnt/data
smartctl -a /dev/vdb | grep -E 'Reallocated|Pending|Temperature'

Риски и резервные копии

Первый риск — сборка модуля. DKMS-модуль пересобирается при каждом обновлении ядра, и неудачная сборка может оставить систему без доступа к корню. Держите второе ядро, рабочий initramfs и возможность загрузиться с live-носителя. Второй риск — зрелость: один основной разработчик и небольшая команда, а инструменты восстановления слабее, чем у ext4, XFS или Btrfs. Третий риск — новые функции вроде erasure coding: им стоит дать время на обкатку вне критичных данных.

Резервное копирование стройте по схеме 3-2-1: три копии, два носителя, одна копия вне площадки. Используйте restic или borg на внешний диск либо NAS с другой файловой системой. Раз в квартал восстанавливайте несколько файлов и проверяйте, что архив читается. Снапшоты bcachefs — дополнение к бэкапу, а не замена. Перед включением в продакшен пройдите чек-лист:

  • тест на виртуальной машине с двумя дисками;
  • отдельный /boot на проверенной файловой системе;
  • совпадение версий модуля и bcachefs-tools;
  • мониторинг SMART и dmesg после обновлений;
  • восстановление из резервной копии, а не только её создание.

Итог

Bcachefs в 2026 году — интересная и уже не «экспериментальная» файловая система с сильным набором функций, но с непростой историей сопровождения и повышенными требованиями к дисциплине администратора. Она уместна для экспериментов, домашней лаборатории и второстепенных данных, где есть свежий бэкап. Для ответственного хранения без продуманной схемы резервного копирования выбирать её рано.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте