Btrfs - что это и как это

Btrfs (иногда произносится butter fs) — новая свободная файловая система, разрабатываемая при поддержке компании Oracle. Распространяется по лицензии GPL. Несмотря на то, что её разработка ещё далека от завершения, 9 января 2009 года файловая система была интегрирована в ядро Linux, и доступна в Debian Squueze.
Хотя Btrfs была включена в ядро 2.6.29, разработчики утверждают, что “начиная от ядра 2.6.31, мы только планируем сделать впредь совместимый формат изменений диска”. Разработчики по-прежнему хотят улучшить пользовательские/управленческие средства, чтобы сделать их более удобными в использовании.
Ext2/3/4 могут быть превращены в Btrfs (но не наоборот).
Примеры команд по работе с btrfs#
Создание файловой системы:
mkfs.btrfsУправление томами, подтомами, снимками; проверка целостности файловой системы:
btrfsctlСканирование в поисках файловых систем btrfs:
btrfsctl -a
btrfsctl -A /dev/sda2Создание снимков и подтомов:
mount -t btrfs -o subvol=. /dev/sda2 /mnt
btrfsctl -s new_subvol_name /mnt
btrfsctl -s snapshot_of_default /mnt/default
btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name
btrfsctl -s snapshot_of_a_snapshot /mnt/snapshot_of_new_subvol
ls /mntПроверка extent-деревьев файловой системы:
btrfsckВывести метаданные в текстовой форме:
debug-tree
debug-tree /dev/sda2 >& big_output_fileПоказать файловые системы btrfs на жестком диске:
btrfs-show /dev/sda*Дефрагментация (по умолчанию не требуется):
btrfs filesystem defragment /mntили
btrfs filesystem defragment /mnt/file.isoПревращение файловой системы ext3 в btrfs#
Файловую систему ext3 можно превратить в btrfs, и работать с ней дальше уже как с новой файловой системой. Причём состояние исходной файловой системы ext3, будет доступно и потом.
# Always run fsck first
fsck.ext3 -f /dev/xxx
# Convert from Ext3->Btrfs
btrfs-convert /dev/xxx
# Mount the resulting Btrfs filesystem
mount -t btrfs /dev/xxx /btrfs
# Mount the ext3 snapshot
mount -t btrfs -o subvol=ext2_saved /dev/xxx /ext2_saved
# Loopback mount the image file
mount -t ext3 -o loop,ro /ext2_saved/image /ext3Теперь в каталоге /ext3 видно состояние исходной файловой системы.
Размонтирование происходит в обратном порядке:
umount /ext3
umount /ext2_saved
umount /btrfsМожно вернуться на файловую систему ext3 и потерять сделанные изменения:
btrfs-convert -r /dev/xxxИли можно остаться на btrfs и удалить сохранённый образ файловой системы ext3:
rm /ext2_saved/imageПримечание: у новой файловой системы после конвертирования иногда бывает очень большой размер метаданных.
Посмотреть размер метаданных:
btrfs filesystem df /mnt/data1tb/Нормализировать их размер:
btrfs fi balance /mnt/btrfsИзменение размера файловой системы и разделов#
Для btrfs доступно онлайн (на лету) изменение размера файловой системы. Для начала нужно примонтировать нужный раздел:
mount -t btrfs /dev/xxx /mntДобавление 2Гб:
btrfs filesystem resize +2G /mntили
btrfsctl -r +2g /mntУменьшение на 4Гб:
btrfs filesystem resize -4g /mntили
btrfsctl -r -4g /mntЗадать размер в 20Гб файловой системе:
btrfsctl -r 20g /mntили
btrfs filesystem resize 20g /mntИспользование всего свободного места:
btrfs filesystem resize max /mntили
btrfsctl -r max /mntВышеперечисленные команды справедливы только для файловой системы. Чтобы изменить размер раздела, надо воспользоваеться еще другими утилитами, например fdisk. Рассмотрим пример для уменьшения раздела на 4Гб. Монтируем и уменьшаем раздел:
mount -t btrfs /dev/xxx /mnt
btrfsctl -r -4g /mntТеперь отмонтируем раздел и используем fdisk:
umount /mnt
fdisk /dev/xxxгде:
dev/xxx- жесткий диск с нужным нам разделомp- выводит список разделов, узнаем номер нужного нам (N)d- удалить раздел, не пугайтесь- Номер раздела (1-4):
N- вводим число - номер нужного нам раздела n- создать новый раздел на месте старого:p- основной раздел- Номер раздела (1-4):
N- вводим конечно тоже самое число - Первый цилиндр, ставим тот, который программа предлагает по умолчанию
- Последний цилиндр ставим как разницу старого размера раздела и 4Гб: например, если размер был 100Гб, ставим:
+96G p- посмотреть в списке разделов, все ли сделано правильноw- записать изменения
После надо перемонтировать раздел или перезагрузиться. Проверяем на ошибки новый раздел(нужно отмонтировать):
btrfsck /dev/xxxProfit!
Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат , а так же подписывайся на канал .
О способах отблагодарить автора можно почитать на странице “Донаты ”.