当前位置: 首页 > article >正文

手把手教你用Btrfs的快照和压缩功能,为你的Linux桌面数据安全与空间‘上双保险’(基于Ubuntu 24.04)

手把手教你用Btrfs的快照和压缩功能为你的Linux桌面数据安全与空间‘上双保险’基于Ubuntu 24.04如果你是一位Linux桌面用户尤其是Ubuntu用户那么你可能已经听说过Btrfs文件系统。与传统的Ext4相比Btrfs提供了许多先进功能如写时复制(CoW)、快照和透明压缩等。本文将重点介绍如何在实际使用中充分发挥Btrfs的两大核心优势数据保护和空间优化。1. 为什么选择Btrfs作为桌面文件系统在深入技术细节之前让我们先理解为什么Btrfs特别适合现代Linux桌面环境。传统的Ext4文件系统虽然稳定可靠但它设计于SSD普及之前缺乏对现代存储需求的优化。Btrfs则原生支持SSD优化、数据校验和空间高效利用等特性。Btrfs三大桌面优势数据安全快照功能可以轻松恢复误删文件或系统崩溃空间节省透明压缩可显著减少SSD占用延长使用寿命维护简便内置碎片整理和自修复能力减少系统维护需求提示虽然Btrfs功能强大但建议新手先在非生产环境测试熟悉后再迁移主系统。2. Ubuntu 24.04上的Btrfs安装与基础配置2.1 安装时选择BtrfsUbuntu 24.04安装程序已原生支持Btrfs作为根文件系统选项。在分区步骤时选择自定义分区或其他选项为根目录(/)创建新分区在用作下拉菜单中选择Btrfs勾选格式化分区选项# 安装后验证文件系统类型 df -Th | grep -v tmpfs2.2 现有系统迁移到Btrfs如果已经使用Ext4可以通过以下步骤无损转换备份重要数据必须步骤从Live USB启动安装btrfs-convert工具执行转换命令sudo apt install btrfs-progs sudo btrfs-convert /dev/nvme0n1p2 # 替换为实际分区转换完成后建议运行完整性检查sudo btrfs scrub start / sudo btrfs scrub status /3. 掌握Btrfs快照你的数据时光机3.1 快照基础概念Btrfs快照不是传统意义上的完整备份而是利用CoW特性创建的数据状态点。创建快照几乎不占用额外空间只有后续修改才会增加存储需求。快照类型对比类型可写性用途空间占用只读否系统恢复点低可写是实验性修改中等3.2 创建和管理快照创建根文件系统的定时快照# 创建只读快照 sudo btrfs subvolume snapshot -r / /snapshots/root_$(date %Y%m%d) # 创建可写快照 sudo btrfs subvolume snapshot /home /snapshots/home_writable自动化快照管理脚本示例#!/bin/bash SNAPSHOT_DIR/snapshots DATE$(date %Y%m%d) # 保留最近7天快照 sudo btrfs subvolume snapshot -r / ${SNAPSHOT_DIR}/root_${DATE} find ${SNAPSHOT_DIR} -name root_* -mtime 7 -exec sudo btrfs subvolume delete {} \;3.3 从快照恢复系统当系统出现问题时可以从Live USB启动并执行恢复挂载根分区删除损坏的子卷从快照创建新子卷sudo mount /dev/nvme0n1p2 /mnt cd /mnt sudo mv _corrupted sudo btrfs subvolume snapshot /mnt/snapshots/root_20230601 /mnt/4. Btrfs压缩为SSD节省空间的秘密武器4.1 压缩算法选择Btrfs支持多种压缩算法各有特点zstd现代算法压缩率与速度平衡推荐lzo速度快但压缩率一般zlib压缩率高但速度慢# 查看当前压缩设置 sudo btrfs filesystem show /4.2 启用文件系统压缩编辑/etc/fstab文件在挂载选项中添加压缩参数UUIDxxxx-xxxx-xxxx / btrfs defaults,compresszstd:3,ssd,discardasync 0 1参数说明compresszstd:3使用zstd算法级别3ssd优化SSD性能discardasync异步TRIM支持4.3 压缩效果验证启用后可以检查压缩效果# 查看压缩统计 sudo compsize -x / # 示例输出 # Processed 283109 files, 112365 regular extents (112365 refs), 102951 inline. # Type Perc Disk Usage Uncompressed Referenced # TOTAL 76% 4.7G 6.1G 6.1G对于已有数据可以手动触发压缩sudo btrfs filesystem defrag -r -v -czstd /5. 高级技巧与日常维护5.1 空间使用优化Btrfs的空间计算与传统文件系统不同需要特殊工具查看sudo btrfs filesystem usage /输出示例Overall: Device size: 232.89GiB Device allocated: 112.77GiB Device unallocated: 120.12GiB Used: 98.23GiB Free (estimated): 132.66GiB5.2 平衡文件系统定期平衡可以优化数据分布# 轻度平衡 sudo btrfs balance start -dusage50 / # 完整平衡耗时较长 sudo btrfs balance start /5.3 常见问题排查问题1磁盘空间显示异常sudo btrfs filesystem df / sudo btrfs filesystem show /问题2性能下降# 检查碎片化程度 sudo btrfs filesystem defrag -r -v / # 查看IO状态 sudo iotop -o在实际使用中我发现将/tmp目录单独设置为nocow可以显著提升临时文件操作性能sudo chattr C /tmp

相关文章:

手把手教你用Btrfs的快照和压缩功能,为你的Linux桌面数据安全与空间‘上双保险’(基于Ubuntu 24.04)

手把手教你用Btrfs的快照和压缩功能,为你的Linux桌面数据安全与空间‘上双保险’(基于Ubuntu 24.04) 如果你是一位Linux桌面用户,尤其是Ubuntu用户,那么你可能已经听说过Btrfs文件系统。与传统的Ext4相比,B…...

Dependency Analysis Gradle Plugin高级配置:自定义规则与排除策略

Dependency Analysis Gradle Plugin高级配置:自定义规则与排除策略 【免费下载链接】dependency-analysis-gradle-plugin Gradle plugin for JVM projects written in Java, Kotlin, Groovy, or Scala; and Android projects written in Java or Kotlin. Provides a…...

别再踩坑了!手把手教你配置MyBatis-Plus 3.5+的分页插件PaginationInnerInterceptor

MyBatis-Plus 3.5分页插件全指南:从原理到避坑实战 最近在技术社区看到不少开发者反馈MyBatis-Plus升级到3.5版本后分页功能突然失效,这其实是框架架构调整带来的配置变化。作为深度使用MyBatis-Plus的开发者,我完整经历了从旧版到新版的迁移…...

在 Claude Code 中配置 Taotoken 作为编程助手的可靠后端

在 Claude Code 中配置 Taotoken 作为编程助手的可靠后端 1. 准备工作 在开始配置之前,请确保您已安装 Claude Code 并拥有有效的 Taotoken API Key。您可以在 Taotoken 控制台的「API 密钥」页面创建新的密钥。同时,建议在模型广场查看当前支持的 Cla…...

AnLinux-App高级使用技巧:SSH连接、补丁管理与系统优化完全手册

AnLinux-App高级使用技巧:SSH连接、补丁管理与系统优化完全手册 【免费下载链接】AnLinux-App AnLinux allow you to run Linux on Android without root access. 项目地址: https://gitcode.com/gh_mirrors/an/AnLinux-App AnLinux-App是一款允许在Android设…...

基于安卓的企业固定资产盘点助手毕设

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一款基于安卓平台的企业固定资产盘点助手系统,以解决传统固定资产盘点过程中存在的效率低下、数据准确性不足以及管理成本高等问…...

Triangle 实战案例:10个创意图像艺术化项目分享

Triangle 实战案例:10个创意图像艺术化项目分享 【免费下载链接】triangle Convert images to computer generated art using delaunay triangulation. 项目地址: https://gitcode.com/gh_mirrors/tr/triangle Triangle 是一款基于 Delaunay 三角剖分算法的图…...

Swiftcord服务器管理:频道列表与服务器文件夹实现

Swiftcord服务器管理:频道列表与服务器文件夹实现 【免费下载链接】Swiftcord A fully native Discord client for macOS built 100% in Swift! 项目地址: https://gitcode.com/gh_mirrors/sw/Swiftcord Swiftcord是一款专为macOS打造的全原生Discord客户端&…...

PublicCMS权限管理系统深度解析:从角色管理到功能权限控制

PublicCMS权限管理系统深度解析:从角色管理到功能权限控制 【免费下载链接】PublicCMS More than 2.7 million lines of code modification continuously iterated for 9 years to modernize java cms, easily supporting tens of millions of data, tens of millio…...

G-Helper终极指南:华硕笔记本性能调校与散热优化完整教程

G-Helper终极指南:华硕笔记本性能调校与散热优化完整教程 【免费下载链接】g-helper G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, Vivobook, Zenbook…...

Audio Router:Windows音频路由的技术突破与应用革命

Audio Router:Windows音频路由的技术突破与应用革命 【免费下载链接】audio-router Routes audio from programs to different audio devices. 项目地址: https://gitcode.com/gh_mirrors/au/audio-router Audio Router作为一款开源Windows音频路由工具&…...

3分钟彻底告别百度网盘密码搜索:智能提取码工具带来的效率革命

3分钟彻底告别百度网盘密码搜索:智能提取码工具带来的效率革命 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 想象一下这样的场景:你在学习群中看到一个宝贵的课程资源链接,点击后却遇到熟…...

Cura 3D打印切片软件:从创意到实物的终极转换器

Cura 3D打印切片软件:从创意到实物的终极转换器 【免费下载链接】Cura 项目地址: https://gitcode.com/gh_mirrors/cur/Cura 你是否曾为3D打印的复杂参数设置而头疼?Cura作为业界领先的免费开源切片软件,正是解决这一痛点的完美工具。…...

如何快速配置大气层系统:面向新手的完整部署与优化指南

如何快速配置大气层系统:面向新手的完整部署与优化指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)是Nintendo Switch最流行…...

Swiftcord视图模型设计:MVVM架构在SwiftUI中的完美实践

Swiftcord视图模型设计:MVVM架构在SwiftUI中的完美实践 【免费下载链接】Swiftcord A fully native Discord client for macOS built 100% in Swift! 项目地址: https://gitcode.com/gh_mirrors/sw/Swiftcord Swiftcord作为一款完全基于Swift开发的macOS原生…...

G-Helper终极指南:3步解锁华硕笔记本隐藏性能,告别臃肿控制软件

G-Helper终极指南:3步解锁华硕笔记本隐藏性能,告别臃肿控制软件 【免费下载链接】g-helper G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, …...

告别命令行!用VSCode图形化调试嵌入式Linux程序(基于gdbserver)

嵌入式Linux开发者的效率革命:VSCode图形化调试实战指南 调试嵌入式Linux程序时,盯着黑底白字的终端窗口反复输入gdb命令的日子该结束了。想象一下:在舒适的IDE界面中点击鼠标设置断点,变量值自动显示在侧边栏,调用栈以…...

Dependency Analysis Gradle Plugin的进阶用法:自定义源集分析与配置

Dependency Analysis Gradle Plugin的进阶用法:自定义源集分析与配置 【免费下载链接】dependency-analysis-gradle-plugin Gradle plugin for JVM projects written in Java, Kotlin, Groovy, or Scala; and Android projects written in Java or Kotlin. Provides…...

Knock与移动应用集成:构建安全的移动API客户端

Knock与移动应用集成:构建安全的移动API客户端 【免费下载链接】knock Seamless JWT authentication for Rails API 项目地址: https://gitcode.com/gh_mirrors/kno/knock Knock是一款为Rails API提供无缝JWT认证的工具,能够帮助开发者轻松实现移…...

LGSideMenuController与UINavigationController完美整合指南

LGSideMenuController与UINavigationController完美整合指南 【免费下载链接】LGSideMenuController iOS view controller which manages left and right side views 项目地址: https://gitcode.com/gh_mirrors/lg/LGSideMenuController LGSideMenuController是一款功能…...

C语言跨平台编译失败?92%的适配问题源于这4个被忽视的ABI检查项(附GCC/Clang/MSVC对照速查表)

更多请点击: https://intelliparadigm.com 第一章:C语言跨平台编译失败的根源诊断 跨平台编译C代码时,看似相同的源码在Linux、Windows或macOS上频繁报错,其根本原因往往隐藏于工具链差异、ABI不一致及预处理器行为分歧之中。理解…...

如何快速实现livego直播服务器的IPv6双栈配置:完整指南

如何快速实现livego直播服务器的IPv6双栈配置:完整指南 【免费下载链接】livego live video streaming server in golang 项目地址: https://gitcode.com/gh_mirrors/li/livego livego是一款基于Golang开发的轻量级直播服务器,支持RTMP、HTTP-FLV…...

【FDA/CE双认证必过项】:C语言采集模块时序验证方法论——含Jitter分析脚本与DO-178C级测试用例模板

更多请点击: https://intelliparadigm.com 第一章:C语言医疗设备实时数据采集方法 在嵌入式医疗设备(如心电监护仪、血氧饱和度仪)中,C语言因其低开销、高确定性和硬件级控制能力,成为实时数据采集系统的核…...

智能运输车队横纵向跟驰控制策略【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)模糊PID纵向跟驰控制器设计:为提高车队…...

MiniMax-M1开源大模型:混合注意力与闪电机制解析与实战部署

1. 模型概览与核心设计思路 MiniMax-M1的发布,无疑是当前开源大模型领域的一枚重磅炸弹。作为全球首个公开权重的、大规模混合注意力推理模型,它直接瞄准了当前大模型应用中最核心的痛点:如何在处理超长上下文和复杂推理任务时,既…...

企业知识库迁移的终极方案:如何用feishu-doc-export实现97.9%效率提升

企业知识库迁移的终极方案:如何用feishu-doc-export实现97.9%效率提升 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 当一家拥有3000名员工的科技公司决定从飞书迁移到企业微信时&am…...

告别手动刷课:智慧树自动化学习助手全攻略

告别手动刷课:智慧树自动化学习助手全攻略 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 在线学习平台已经成为现代教育的重要组成部分&#xff0…...

利用 Taotoken 多模型能力为内容生成应用提供备选方案

利用 Taotoken 多模型能力为内容生成应用提供备选方案 1. 内容生成应用的常见挑战 在构建自动生成文章摘要与标签的应用时,运营与内容团队常面临两个核心问题:模型服务的稳定性与输出质量的一致性。单一模型供应商可能因突发流量限制、区域性服务波动或…...

Flutter数据可视化神器:Syncfusion Charts组件深度解析与实战

Flutter数据可视化神器:Syncfusion Charts组件深度解析与实战 【免费下载链接】flutter-examples This repository contains the Syncfusion Flutter UI widgets examples and the guide to use them. 项目地址: https://gitcode.com/gh_mirrors/flu/flutter-exam…...

别再死记硬背了!用Python+Jupyter Notebook图解CRC-8校验原理(以SAE J1850为例)

用Python动态图解CRC-8校验:从寄存器移位到SAE J1850实战 当你用汽车诊断仪读取发动机数据时,设备与ECU之间传输的每个字节都经过CRC校验的保护。这种看似简单的校验机制,实际上蕴含着精妙的数学设计。本文将用Jupyter Notebook和Python带你拆…...