Jump to content

BTRFS/Введение и разметка: различия между версиями

мНет описания правки
Статья снимается со стадии разработки.
Строка 3: Строка 3:
|}
|}


<div style="border: 2px solid #f39c12; background-color: #fff3cd; padding: 0.5em; margin-bottom: 1em;">
'''BTRFS''' (произносится как «би-ти-эф-эс», от '''B-Tree FS''') — это современная файловая система Linux, которая умеет не только хранить файлы, но и '''обнаруживать ошибки данных''', '''сжимать информацию''', '''создавать снимки системы''' и '''управлять несколькими дисками как одним'''.
⚠️ '''Эта статья находится в разработке.''' Содержание может измениться в ближайшее время.
</div>


BTRFS (произносится как "би-ти-эф-эс" от B-Tree FS) — это современная файловая система Linux, которая умеет не только хранить файлы, но и '''самостоятельно защищать их от ошибок''', '''сжимать данные''', '''создавать снимки системы''' и '''управлять несколькими дисками как одним'''.
Если вы раньше пользовались Windows, BTRFS можно сравнить с «умным аналогом NTFS», но с тем отличием, что многие функции (снимки, проверка целостности, управление дисками), которые в Windows реализованы отдельными утилитами, здесь встроены прямо в файловую систему.
 
Если вы раньше пользовались Windows, то можно сказать, что BTRFS — это "умный аналог NTFS", только с функциями, которые в Windows реализованы отдельными утилитами (вроде восстановления системы, сжатия дисков и проверки ошибок).


== Что делает BTRFS особенной ==
== Что делает BTRFS особенной ==


* '''Копирование при записи (Copy-on-Write)''' — данные не перезаписываются “поверх”, а записываются в новое место. Это защищает от потери данных при сбоях
* '''Копирование при записи (Copy-on-Write, CoW)''' — данные никогда не перезаписываются «поверх» старых. Новые версии записываются в другое место, что защищает от повреждений при сбоях питания или зависаниях
* '''Снимки (snapshots)''' — можно “заморозить” состояние системы и вернуться к нему позже (аналог точек восстановления Windows)
* '''Снимки (snapshots)''' — позволяют «заморозить» состояние системы и при необходимости вернуться к нему позже (аналог точек восстановления Windows)
* '''Сжатие файлов на лету''' — экономит место и ускоряет работу на SSD
* '''Сжатие данных на лету''' — экономит место и часто повышает производительность, особенно на SSD
* '''Проверка целостности''' — BTRFS хранит контрольные суммы и может выявить повреждения
* '''Проверка целостности''' — для данных и метаданных хранятся контрольные суммы, что позволяет выявлять повреждения
* '''Гибкость в управлении разделами''' — легко добавлять или удалять диски, расширять файловую систему
* '''Гибкое управление дисками''' — можно добавлять и удалять устройства, расширять файловую систему без форматирования


== Создание файловой системы BTRFS ==
== Создание файловой системы BTRFS ==


Требуется "отформатировать" раздел, чтобы он стал файловой системой BTRFS:
Чтобы начать использовать BTRFS, раздел необходимо отформатировать:


     # mkfs.btrfs -L ROSA /dev/sda2
     # mkfs.btrfs -L ROSA /dev/sda2


* '''mkfs.btrfs''' — создаёт файловую систему BTRFS
* '''mkfs.btrfs''' — создаёт файловую систему BTRFS
* '''-L ROSA''' — задаёт метку (название), чтобы её было легче узнавать
* '''-L ROSA''' — задаёт метку (название) файловой системы
* '''/dev/sda2''' — это тот раздел, на который вы ставите систему
* '''/dev/sda2''' — раздел, на который будет устанавливаться система


После этого раздел готов к использованию.
После выполнения команды раздел готов к использованию.


== Создание подтомов (subvolumes) ==
== Создание подтомов (subvolumes) ==


Подтомы в BTRFS — это как отдельные "папки-микросистемы".   
Подтомы (subvolumes) в BTRFS — это логические разделы внутри одной файловой системы.   
Например, один подтом для системы, другой — для пользователей. 
Их можно сравнить с «папками с особыми свойствами», каждая из которых может иметь собственные снимки.
Они позволяют делать снимки системы без затрагивания личных файлов.


1. '''Смонтируйте новый раздел:'''
Обычно создают отдельные подтомы для системы и пользовательских данных, чтобы снапшоты системы не затрагивали файлы пользователей.


  sudo mount /dev/sda2 /mnt
1. '''Смонтируйте раздел временно:'''
 
    sudo mount /dev/sda2 /mnt


2. '''Создайте подтомы:'''
2. '''Создайте подтомы:'''


  sudo btrfs subvolume create /mnt/@
    sudo btrfs subvolume create /mnt/@
  sudo btrfs subvolume create /mnt/@home
    sudo btrfs subvolume create /mnt/@home


Теперь у вас есть два логических подтома:
В результате будут созданы:
* '''@''' — основной корень системы '''(/)'''
* '''@''' — подтом для корневой файловой системы '''(/)'''
* '''@home''' — личные файлы пользователей
* '''@home''' — подтом для пользовательских данных '''(/home)'''
 
3. '''Отмонтируйте раздел:'''


3. '''Отмонтируйте:'''
 
     sudo umount /mnt
     sudo umount /mnt


== Монтирование подтомов (fstab) ==
== Монтирование подтомов (fstab) ==


Чтобы система знала, какие подтомы подключать при загрузке, их нужно описать в файле '''/etc/fstab'''.
Чтобы подтомы автоматически подключались при загрузке системы, их необходимо прописать в файле '''/etc/fstab'''.


Пример строки:
Пример конфигурации:


    UUID=xxxx-xxxx /    btrfs subvol=@,defaults,compress=zstd 0 0
    UUID=xxxx-xxxx /home btrfs subvol=@home,defaults,compress=zstd 0 0


    UUID=xxxx-xxxx / btrfs subvol=@,defaults,compress=zstd,space_cache=v2 0 0
Обратите внимание: '''UUID одинаковый''', так как оба подтома находятся внутри одной файловой системы BTRFS.
    UUID=xxxx-xxxx /home btrfs subvol=@home,defaults,compress=zstd,space_cache=v2 0 0


=== Пояснение параметров ===
* '''UUID''' — уникальный идентификатор файловой системы (можно узнать командой '''blkid''')
* '''/''' и '''/home''' — точки монтирования
* '''btrfs''' — тип файловой системы
* '''subvol=@''' — указывает, какой подтом монтируется
* '''compress=zstd''' — включает сжатие данных алгоритмом Zstandard
* '''defaults''' — набор стандартных параметров монтирования


Объяснение:
* '''defaults''' —  это не один параметр, а '''набор стандартных монтировочных опций''', которые ядро применяет по умолчанию, если не указано иное.
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
!Опция
!Опция
Строка 72: Строка 76:
|-
|-
|'''rw'''
|'''rw'''
|монтирование в режиме чтения/записи
|монтирование в режиме чтения и записи
|-
|-
|'''suid'''
|'''suid'''
|разрешает выполнение файлов с установленными битами SUID/SGID
|разрешает использование битов SUID и SGID
|-
|-
|'''dev'''
|'''dev'''
|разрешает интерпретацию устройств (special files)
|разрешает использование файлов устройств
|-
|-
|'''exec'''
|'''exec'''
Строка 84: Строка 88:
|-
|-
|'''auto'''
|'''auto'''
|точка монтирования будет монтирована командой <code>mount -a</code>
|файловая система монтируется автоматически (в том числе через <code>mount -a</code>)
|-
|-
|'''nouser'''
|'''nouser'''
|монтировать может только root
|монтирование разрешено только пользователю root
|-
|-
|'''async'''
|'''async'''
|асинхронный ввод-вывод
|асинхронный ввод-вывод (поведение по умолчанию)
|}
|}
* '''UUID''' — уникальный номер раздела (можно узнать через '''blkid''')
 
* '''/''' — точка монтирования
Примечание: параметр '''space_cache=v2''' в современных версиях ядра Linux включён по умолчанию и может не указываться явно.
* '''btrfs''' — указывает тип файловой системы
* '''subvol=@''' — подключаем подтом с названием '''@'''
* '''compress=zstd''' — включает сжатие данных
* '''space_cache=v2''' — ускоряет работу с пространством на диске


== Проверка результата ==
== Проверка результата ==


1. '''Посмотреть список подтомов:'''
После настройки можно убедиться, что BTRFS работает корректно.
 
 
1. '''Список подтомов:'''
 
     sudo btrfs subvolume list /
     sudo btrfs subvolume list /


2. '''Проверить использование места:'''
2. '''Использование дискового пространства:'''


  sudo btrfs filesystem df /
    sudo btrfs filesystem df /


3. '''Посмотреть общую информацию:'''
3. '''Общая информация о файловой системе:'''


  sudo btrfs filesystem show
    sudo btrfs filesystem show


Если всё сделано правильно вы увидите свои подтомы, и система будет работать через BTRFS.
Если команды выполняются без ошибок и подтомы отображаются файловая система настроена корректно.


== Заключение ==
== Заключение ==


'''BTRFS''' — это гибкая и надёжная файловая система, которая подходит как новичкам, так и администраторам.
'''BTRFS''' — это гибкая и современная файловая система, подходящая как для новичков, так и для опытных администраторов.
Она сочетает функции нескольких инструментов Windows в одном:
 
* вместо “точек восстановления” — снимки
Она объединяет возможности, которые в Windows реализованы разными инструментами:
* вместо “очистки диска” — встроенная дефрагментация и балансировка
* вместо «точек восстановления» — снимки
* вместо “дисковых проверок” автоматическая проверка целостности данных
* вместо отдельных утилит управления дисками — встроенная балансировка и управление устройствами
* вместо ручной проверки файловой системы постоянный контроль целостности данных
 
BTRFS особенно хорошо подходит для систем, где важны надёжность, удобство резервного копирования и возможность быстрого отката изменений.


{| style="width:100%; margin-top:1em; font-size:95%;"
{| style="width:100%; margin-top:1em; font-size:95%;"
| style="text-align:right;" | [[BTRFS/Оптимизация|Вперёд: Оптимизация →]]
| style="text-align:right;" | [[BTRFS/Оптимизация|Вперёд: Оптимизация →]]
|}
|}

Версия от 16:25, 11 января 2026

Вперёд: Оптимизация →

BTRFS (произносится как «би-ти-эф-эс», от B-Tree FS) — это современная файловая система Linux, которая умеет не только хранить файлы, но и обнаруживать ошибки данных, сжимать информацию, создавать снимки системы и управлять несколькими дисками как одним.

Если вы раньше пользовались Windows, BTRFS можно сравнить с «умным аналогом NTFS», но с тем отличием, что многие функции (снимки, проверка целостности, управление дисками), которые в Windows реализованы отдельными утилитами, здесь встроены прямо в файловую систему.

Что делает BTRFS особенной

  • Копирование при записи (Copy-on-Write, CoW) — данные никогда не перезаписываются «поверх» старых. Новые версии записываются в другое место, что защищает от повреждений при сбоях питания или зависаниях
  • Снимки (snapshots) — позволяют «заморозить» состояние системы и при необходимости вернуться к нему позже (аналог точек восстановления Windows)
  • Сжатие данных на лету — экономит место и часто повышает производительность, особенно на SSD
  • Проверка целостности — для данных и метаданных хранятся контрольные суммы, что позволяет выявлять повреждения
  • Гибкое управление дисками — можно добавлять и удалять устройства, расширять файловую систему без форматирования

Создание файловой системы BTRFS

Чтобы начать использовать BTRFS, раздел необходимо отформатировать:

   # mkfs.btrfs -L ROSA /dev/sda2
  • mkfs.btrfs — создаёт файловую систему BTRFS
  • -L ROSA — задаёт метку (название) файловой системы
  • /dev/sda2 — раздел, на который будет устанавливаться система

После выполнения команды раздел готов к использованию.

Создание подтомов (subvolumes)

Подтомы (subvolumes) в BTRFS — это логические разделы внутри одной файловой системы. Их можно сравнить с «папками с особыми свойствами», каждая из которых может иметь собственные снимки.

Обычно создают отдельные подтомы для системы и пользовательских данных, чтобы снапшоты системы не затрагивали файлы пользователей.

1. Смонтируйте раздел временно:

   sudo mount /dev/sda2 /mnt

2. Создайте подтомы:

   sudo btrfs subvolume create /mnt/@
   sudo btrfs subvolume create /mnt/@home

В результате будут созданы:

  • @ — подтом для корневой файловой системы (/)
  • @home — подтом для пользовательских данных (/home)

3. Отмонтируйте раздел:

   sudo umount /mnt

Монтирование подтомов (fstab)

Чтобы подтомы автоматически подключались при загрузке системы, их необходимо прописать в файле /etc/fstab.

Пример конфигурации:

   UUID=xxxx-xxxx /     btrfs subvol=@,defaults,compress=zstd 0 0
   UUID=xxxx-xxxx /home btrfs subvol=@home,defaults,compress=zstd 0 0

Обратите внимание: UUID одинаковый, так как оба подтома находятся внутри одной файловой системы BTRFS.

Пояснение параметров

  • UUID — уникальный идентификатор файловой системы (можно узнать командой blkid)
  • / и /home — точки монтирования
  • btrfs — тип файловой системы
  • subvol=@ — указывает, какой подтом монтируется
  • compress=zstd — включает сжатие данных алгоритмом Zstandard
  • defaults — набор стандартных параметров монтирования
Опция Значение
rw монтирование в режиме чтения и записи
suid разрешает использование битов SUID и SGID
dev разрешает использование файлов устройств
exec разрешает выполнение бинарных файлов
auto файловая система монтируется автоматически (в том числе через mount -a)
nouser монтирование разрешено только пользователю root
async асинхронный ввод-вывод (поведение по умолчанию)

Примечание: параметр space_cache=v2 в современных версиях ядра Linux включён по умолчанию и может не указываться явно.

Проверка результата

После настройки можно убедиться, что BTRFS работает корректно.

1. Список подтомов:

   sudo btrfs subvolume list /

2. Использование дискового пространства:

   sudo btrfs filesystem df /

3. Общая информация о файловой системе:

   sudo btrfs filesystem show

Если команды выполняются без ошибок и подтомы отображаются — файловая система настроена корректно.

Заключение

BTRFS — это гибкая и современная файловая система, подходящая как для новичков, так и для опытных администраторов.

Она объединяет возможности, которые в Windows реализованы разными инструментами:

  • вместо «точек восстановления» — снимки
  • вместо отдельных утилит управления дисками — встроенная балансировка и управление устройствами
  • вместо ручной проверки файловой системы — постоянный контроль целостности данных

BTRFS особенно хорошо подходит для систем, где важны надёжность, удобство резервного копирования и возможность быстрого отката изменений.

Вперёд: Оптимизация →