Translation(s): English - Русский
FileSystem > Btrfs
Btrfs (иногда произносится butter fs) — новая свободная файловая система, разрабатываемая при поддержке компании Oracle. Распространяется по лицензии GPL. Несмотря на то, что её разработка ещё далека от завершения, 9 января 2009 года файловая система была интегрирована в ядро Linux, и доступна в Debian Squueze.
Хотя Btrfs была включена в ядро 2.6.29, разработчики утверждают, что "начиная от ядра 2.6.31, мы только планируем сделать впредь совместимый формат изменений диска". Разработчики по-прежнему хотят улучшить пользовательские/управленческие средства, чтобы сделать их более удобными в использовании. Для получения дополнительной информации о Btrfs, по ссылке вСмотреть также section.
Ext2/3/4 могут быть превращены в Btrfs (но не наоборот).
Contents
Cтатус
Debian Squeeze и новые версии поддержывают Btrfs.
FAQ
- Какой пакет содержит утилиты для btrfs?
btrfs-tools (in DebianSqueeze and above)
Смотреть также: Btrfs wiki FAQ
Примеры команд по работе с 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
Подробнее: Conversion from ext3 (англ.) и Преобразование ext3fs в 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/xxx
Документация
/usr/share/doc/linux-doc-2.6.*/Documentation/filesystems/btrfs.txt.gz, also available online for 2.6.32
Manpages: mkfs.btrfs(8), btrfsctl(8), btrfs-show(8), mkfs.btrfs(8), and other binaries from btrfs-tools.
Btrfs wiki: https://btrfs.wiki.kernel.org/
Btrfs on Wikipedia
Смотреть также