Btrfs 也叫成 Butter FS、Better FS 或是 B-Tree FS,它是由 Oracle 于 2007 年开始设计、开发的一个现代文件系统,它于 2009 年开始便被合并入 Linux 2.6.29 内核。Btrfs 基于 GPL 许可,由于不是十分稳定,虽然许多 Linux 发行版都对其进行了集成,但并不作为默认文件系统进行使用。Btrfs 之所以被广泛集成,因其支持磁盘快照、支持递归快照、对 RAID 的支持,支持子卷(Subvolumes),以及允许在线调整文件系统大小等优秀特性。虽然目前大多 Linux 发行版都在用 Ext4 作为主要文件系统,但将来随时有可能被 Btrfs 所取代。

Btrfs 主要被设计用于解决当前 Linux 文件系统各种「弱点」的 COW(copy-on-write)文件系统, 有望提供更好的可扩展性和可靠性,其主要开发焦点都放在了容错、修复和易于管理等方面。

接下来我将主要向大家介绍如何使用 apt-btrfs-snapshot 将 Linux 中的 btrfs 文件系统快照回滚到之前的系统状态。使用 apt-btrfs-snapshot 创建和管理文件系统快照就像其它 APT 操作一样简单,使用它我们可以轻松地恢复 btrfs 文件系统的状态。

先决条件

为了创建并使用 btrfs 恢复你的 Linux 文件系统,当然需要使用的是 btrfs 文件系统,还需要没有使用 Ext 文件系统的单独 /boot 分区,不然就没法玩了。

安装Btrfs包

条件满足之后,就使用如下命令安装 apt-btrfs-snapshot 包:

apt-get install apt-btrfs-snapshot

安装完成之后使用如下 apt-btrfs-snapshot 命令检查是否支持 btrfs 快照的创建:

apt-btrfs-snapshot supported

如果满足 btrfs 文件系统的先决条件,会输出 Supported,否则会输出:

Sorry, your system lacks support for the snapshot feature

你可以使用如下命令检查 Ubuntu 上的 btrfs 子卷的默认布局:

btrfs subvolume list

使用ATP操作创建快照

为了测试回滚操作,我们先在当前系统中执行一些 apt 操作,例如 apt-get。

apt-get update && apt-get upgrade

按 Y 继续执行系统升级,你会看到 apt-btrfs-snapshot 已经自动为升级之前的系统状态创建了快照。

你也可以使用如下命令查看当前系统中的快照列表:

btrfs subvolume list /

apt-btrfs-snapshot list

还原Btrfs快照

例如在系统升级过程中遇到了问题,我们需要恢复升级之前的系统状态,可以将 btrfs 文件系统 mount 到一个单独的位置,例如 /mnt 下进行操作。

mount /dev/sda1 /mnt

查看 /mnt 目录会输出子卷:

ls -l /mnt/

其中的 @apt-snapshot-xxx 是之前 apt 操作时的 root 文件系统快照。将当前子卷重命名为 @ 开头,再将 @apt-snapshot-xxx 重命名为为当前子卷后重启系统,即对快照进行了恢复操作。

删除Btrfs快照

当快照恢复后,或需要腾出部分磁盘空间时,可以使用如下命令来删除快照:

mount /dev/sda1 /mnt/

btrfs subvolume delete /mnt/@_latest-root/

umount /mnt

说得直白一点,Btrfs 快照实际上就是与其它子卷进行数据共享的子卷,其使用 Btrfs 的 copy-on-write 能力共享数据和对快照进行修改,原始子卷并不可见。一旦快照创建完成,它就被视为原始文件系统的可替换版本。

linux系统盘打快照,使用Btrfs对Linux系统进行快照回滚相关推荐

  1. linux系统盘比较小,35M的中文linux硬盘简单安装方法Live-CD:SliTaz.tw-全世界最小的li...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Live-CD:SliTaz.tw-全世界最小的linux中文桌面环境 # menu.lst - See: grub(8), info grub, upd ...

  2. Linux笔记-SVN(subversion)创建仓库及客户端连接及文件回滚

    创建一个仓库: svnadmin create /var/svn/CFFProject cd /var/svn/CFFProject/ 修改文件: svnserve.conf [general] an ...

  3. linux恢复到某一时间点,使用回滚磁盘功能如何实现将一块云盘的数据恢复到之前的某一时刻...

    本篇文章给大家带来的内容是关于如何使用回滚磁盘功能实现将一块云盘的数据恢复到之前的某一时刻,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 回滚云盘 如果当前系统出现问题,您希望将一块 ...

  4. Linux系统的快照是什么,linux – 文件系统快照与简单复制文件有何不同?

    通过做这个, # btrfs subvolume snapshot /mnt/1 /mnt/1/snapshot # tree /mnt/1 /mnt/1 ├── a ├── snapshot │ ├ ...

  5. linux系统盘满了,mysql启动不了

    2019独角兽企业重金招聘Python工程师标准>>> linux系统盘满了,mysql启动不了 df -h查看系统情况 发现系统盘满了,httpd日志有个2.3g 转载于:http ...

  6. linux系统盘使用率达到100%的问题查找和解决方法

    linux系统盘使用率达到100%的问题查找和解决方法 参考文章: (1)linux系统盘使用率达到100%的问题查找和解决方法 (2)https://www.cnblogs.com/free-lon ...

  7. Linux系统盘爆满根目录100%,又找不到占空间的大文件 原因与解决方法

    最近一位朋友他的Linux(Centos7)根目录一直100%,也就是系统文件磁盘已经爆满了.虽然通过:df -h, du -sh * 等指令配合使用,发现当前系统任然存在大量可以使用的空间(6.5G ...

  8. 【linux】血泪经验,在安装Linux上一定要创建/data 分区,将数据盘和系统盘分开,方便重新安装系统,随时恢复Linux系统,其实特别简单,还有7个常用技巧

    目录 前言 1,关于Linux 系统盘 2,技巧1,安装linux,拆分/和 /data 分区,在安装配置好也会自动挂载 3,技巧2,使用英文系统,然后切换中文语言,让下载文件夹变英文 4,技巧3,切 ...

  9. 动态分区分配算法实现_阿里云上利用virtiope+colinux实现linux系统盘动态无损多分区...

    本文关键字:利用colinx+virtio winpe定制aliyun多分区linux系统盘,在winpe xp winpe中运行colinux,在windows pe下真正操作linux分区,利用c ...

  10. 阿里云上利用virtiope+colinux实现linux系统盘动态无损多分区

    本文关键字:利用colinx+virtio winpe定制aliyun多分区linux系统盘,在winpe xp winpe中运行colinux,在windows pe下真正操作linux分区,利用c ...

最新文章

  1. 【网络基础】URI 和 URL 的纠缠
  2. 功率信号与能量信号的超棒理解!
  3. java printwriter实例_PrintWriter做过滤流+FileWriter案例分析
  4. 红帽发布虚拟化策略 产品即将上市
  5. obs中音频和视频的同步
  6. .har 文件解析工具
  7. 电脑重装系统后如何删除微软商店下载记录
  8. Java金融计算机计算irr_手把手教你使用金融计算器
  9. 讲解UCOSII嵌入式操作系统的任务调度策略
  10. 简述电子计算机发展五个阶段,简述erp发展的5个阶段
  11. lg android tv 手机助手,LG电视安装第三方APP教程 仅针对安卓电视
  12. 激光雷达错位拼接技术
  13. 关于别名(alias)的尴尬
  14. How to make a Speech Machine
  15. 解读《森林防火视频监控系统技术规范》
  16. three.js 导入显示模型的时候自动计算模型缩放比例
  17. 医疗数字化的数据灾难:医院像渔网一样洒落着患者隐私
  18. 直接存储器存取(DMA)有哪3种工作方式?
  19. SEC官员:ICO指南即将发布
  20. 计算机电脑蓝屏原因,如何解决计算机蓝屏?计算机蓝屏的几种常见原因和解决方案...

热门文章

  1. 更新的ccna实训交换机基本配置(附图)
  2. 7.数据结构 --- 图
  3. 34. HTTP服务的七层架构技术解析及运用
  4. 41. 后台模块开发(6)
  5. 24. Magento 创建新闻模块(4)
  6. 【SQL】Mysql常用sql语句记录
  7. Splay模板 1.0
  8. SaltStack之state.sls
  9. 卡尔曼滤波(Kalman Filter)在目标边框预测中的应用
  10. spark配置lzo