0

0

linuxBtrfs文件系统管理工具是什么-btrfs 命令使用与实例

P粉390130307

P粉390130307

发布时间:2025-08-03 08:48:30

|

1127人浏览过

|

来源于https://www.runoob.com/linux/linux-comm-btrfs.html

转载

linuxbtrfs文件系统管理工具是什么-btrfs 命令使用与实例

Linux btrfs 命令


Btrfs(B-tree File System)是一种先进的 Linux 文件系统,由 Oracle 开发并于 2007 年首次发布。它的设计目标是解决传统文件系统的局限性,提供更好的扩展性、可靠性和管理功能。

核心特性

  • 写时复制(CoW):所有写入操作都不会覆盖原有数据,而是创建新副本
  • 快照功能:可以快速创建文件系统的即时快照,几乎不占用额外空间
  • 子卷管理:支持将文件系统划分为多个独立的子卷
  • 数据校验和:自动检测数据损坏
  • 透明压缩:支持文件数据的实时压缩和解压
  • RAID 支持:内置多种 RAID 级别支持

btrfs 基本命令语法

btrfs [选项]  [子命令选项] [参数]

常用选项

选项 描述
@@######@@ 详细输出模式
@@######@@ 显示帮助信息
@@######@@ 显示版本信息

主要子命令详解

文件系统创建与管理

创建 btrfs 文件系统

实例

# 在设备上创建 btrfs 文件系统
sudo mkfs.btrfs /dev/sdX

# 创建带标签的文件系统
sudo mkfs.btrfs -L mylabel /dev/sdX

# 使用多个设备创建 RAID1
sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdX /dev/sdY

挂载 btrfs 文件系统

实例

# 基本挂载
sudo mount /dev/sdX /mnt/btrfs

# 启用压缩(推荐 lzo 或 zstd)
sudo mount -o compress=lzo /dev/sdX /mnt/btrfs

# 显示挂载选项
mount | grep btrfs

子卷操作

创建子卷

实例

# 创建子卷
sudo btrfs subvolume create /mnt/btrfs/subvol1

# 列出子卷
sudo btrfs subvolume list /mnt/btrfs

# 删除子卷
sudo btrfs subvolume delete /mnt/btrfs/subvol1

快照管理

实例

# 创建快照
sudo btrfs subvolume snapshot /mnt/btrfs /mnt/btrfs/snapshot_$(date +%Y%m%d)

# 只读快照
sudo btrfs subvolume snapshot -r /mnt/btrfs /mnt/btrfs/readonly_snap

# 删除快照
sudo btrfs subvolume delete /mnt/btrfs/snapshot_20230101

空间管理

查看文件系统使用情况

实例

# 显示详细空间信息
sudo btrfs filesystem usage /mnt/btrfs

# 显示磁盘使用情况
sudo btrfs filesystem df /mnt/btrfs

# 平衡数据分布(谨慎使用,可能耗时)
sudo btrfs balance start /mnt/btrfs

调整文件系统大小

实例

# 扩大文件系统
sudo btrfs filesystem resize +10G /mnt/btrfs

# 缩小文件系统
sudo btrfs filesystem resize -5G /mnt/btrfs

数据完整性检查

检查文件系统

实例

# 只读检查
sudo btrfs check /dev/sdX

# 尝试修复(谨慎使用)
sudo btrfs check --repair /dev/sdX

清理和修复

实例

# 清理空闲空间
sudo btrfs filesystem defrag /mnt/btrfs

# 检查并修复文件系统
sudo btrfs scrub start /mnt/btrfs

# 查看修复状态
sudo btrfs scrub status /mnt/btrfs

实际应用示例

示例 1:设置带压缩的 btrfs 主目录

实例

# 创建分区
sudo mkfs.btrfs -L home /dev/sdX

# 挂载并启用压缩
sudo mount -o compress=zstd /dev/sdX /mnt/newhome

# 复制现有数据
sudo rsync -avx /home/ /mnt/newhome/

# 更新 fstab 实现自动挂载
echo "UUID=$(blkid -s UUID -o value /dev/sdX) /home btrfs defaults,compress=zstd 0 2" | sudo tee -a /etc/fstab

# 重新挂载
sudo umount /mnt/newhome
sudo mount -a

示例 2:定期快照和清理

实例

#!/bin/bash
# 创建每日快照
SNAP_DIR="/mnt/btrfs/.snapshots"
mkdir -p "$SNAP_DIR"
sudo btrfs subvolume snapshot -r /mnt/btrfs "$SNAP_DIR/$(date +%Y%m%d)"

# 保留最近7天的快照
find "$SNAP_DIR" -mindepth 1 -maxdepth 1 -type d -name "2*" | sort -r | tail -n +8 | xargs -r sudo btrfs subvolume delete

常见问题解决

问题 1:空间不足但 df 显示有空间

实例

# 检查未删除的快照占用空间
sudo btrfs subvolume list -s /mnt/btrfs

# 清理不需要的快照
sudo btrfs subvolume delete /mnt/btrfs/old_snapshot

问题 2:平衡操作卡住

实例

# 查看平衡状态
sudo btrfs balance status /mnt/btrfs

# 暂停平衡操作
sudo btrfs balance pause /mnt/btrfs

# 恢复平衡操作
sudo btrfs balance resume /mnt/btrfs

问题 3:挂载失败

实例

# 检查文件系统
sudo btrfs check /dev/sdX

# 尝试修复
sudo btrfs rescue zero-log /dev/sdX
sudo mount /dev/sdX /mnt/btrfs

最佳实践建议

  1. 启用压缩:特别是对于文本、日志等可压缩数据

    -v
  2. 定期创建快照:重要操作前手动创建快照

  3. 监控空间使用:btrfs 的空间报告与传统文件系统不同

  4. 避免 100% 满:保持至少 5-10% 的可用空间

    Riffusion
    Riffusion

    AI生成不同风格的音乐

    下载
  5. 谨慎使用 balance:仅在必要时执行,可能非常耗时

  6. 考虑 RAID 配置:对于重要数据使用 RAID1 或 RAID10

  7. 定期执行 scrub:检查数据完整性

    --help

通过本文,您应该已经掌握了 btrfs 文件系统的基本操作和管理方法。btrfs 的强大功能使其成为现代 Linux 系统的理想选择,特别适合需要高级存储功能的场景。


--version
# 推荐使用 zstd 压缩算法
mount -o compress=zstd /dev/sdX /mnt/btrfs
# 每月执行一次数据检查
sudo btrfs scrub start /mnt/btrfs

相关专题

更多
sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

387

2023.09.04

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.29

oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

264

2023.08.16

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

203

2023.09.15

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

235

2023.09.18

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

454

2023.09.19

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

440

2023.09.19

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

17

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号