Btrfs文件系统在Linux中的创建及其特性

Btrfs文件系统在Linux中的创建及其特性

Btrfs(B-tree file system,B-tree文件系统)是针对Linux开发的一个新的CoW(copy-on-write,写时复制)文件系统。它最初是由甲骨文公司在2007年着手开始开发的,并在2014年8月正式发布其稳定版。开发Btrfs的目的在于解决Linux文件系统中缺少池、快照、校验和以及集成的跨多设备访问等问题,目标在于实现Linux的规模化存储。规模化不仅仅是指解决存储问题,也意味着通过简洁的界面提供对存储的管控和管理能力,让大家能看到已使用的内容并使它更可靠。

你应该注意到,Btrfs才刚刚发布稳定版,所以强烈推荐你使用最新版的内核以避免可能出现的问题和漏洞。

Btrfs特性

新文件系统的最重要的特性有:

  • 基于扩展的文件存储
  • 文件大小上限16EiB
  • 小文件和索引目录的高效空间利用
  • 动态索引节点分配
  • 支持快照可写和快照只读
  • 子卷(分离内部文件系统的根)
  • 支持数据和元数据的校验和
  • 压缩 (gzip和LZO)
  • 整合的多设备支持
  • 支持文件条块化、文件镜像和文件条块化+镜像三种部署方案
  • 高效的增量备份
  • 后台消除进程支持查找和修复冗余副本上的文件错误
  • 支持在线文件系统碎片整理和离线文件系统检查
  • Btrfs文件系统对RAID 5/RAID 6加强支持,在linux 3.19中添加了许多漏洞修补

你可以在此关于本主题的维基文章中阅读关于新特性的内容

转换到Btrfs

警告:在尝试转换文件系统前,请务必备份数据!虽然此操作很稳定,也很安全,但它仍然可能导致数据丢失,而防止此情况发生的唯一途径就是进行数据备份。

将现存的ext4文件系统转换到btrfs是相当简单而易懂的。你首先需要使用fsck来检查你现存分区上是否存在错误,然后使用btrfs-convert命令进行转换。如果你想要对/dev/sda3分区进行转换,你可以进行以下操作:


  1. # fsck.ext4 /dev/sda4
  2. # btrfs-convert /dev/sda4

然后,你就可以使用mount命令将它挂载到你想要的任何位置。

btrfs-convert

转换根分区

如果你想要对你系统上的根分区进行转换,你首先需要使用Live CD启动。对于Ubuntu,你可以使用Ubuntu安装盘来完成此操作,在启动后第一个屏幕选择“尝试Ubuntu”。对于其它系统,你同样可以使用Live CD镜像,操作类似。

在启动后,打开终端,使用下面的命令来转换文件系统。


  1. # fsck.ext4 /dev/sda1
  2. # btrfs-convert /dev/sda1

接下来,chroot到文件系统,这样你就可以修改fstab并重新安装grub了。


  1. # mount /dev/sda1 /mnt
  2. # for i in dev dev/pts proc sys ; do mount --bind /$i /mnt/$i ; done
  3. # chroot /mnt
  4. # blkid | grep sda1

btrfs-root-convert

现在来编辑fstab,并根据blkid输出的结果来修改当前“/”文件系统的UUID,并将它的文件系统类型修改为btrfs,修改后的行如下:


  1. UUID=8e7e80aa-337e-4179-966d-d60128bd3714 / btrfs defaults 0 1

然后,重新安装Grub:


  1. # grub-install /dev/sda
  2. # update-grub

现在,你可以把启动光盘丢到一边了,重启机器后,你就可以使用新的文件系统了。

----------------------------------------------------------------------------------------------------------------------------

原文发布时间:2015-02-28
本文来自云栖合作伙伴“linux中国”
时间: 2024-08-03 21:43:25

Btrfs文件系统在Linux中的创建及其特性的相关文章

操作-在linux中,如何创建30个用户

问题描述 在linux中,如何创建30个用户 在linux中,如何创建30个用户?而且,给每个用户分配一个文件夹.每个用户只能拥有操作自己的文件夹的权限.(实在是没有悬赏积分了,还请大神们指点啊.) 解决方案 用useradd创建用户,指定用户组等,mkdir创建目录. chown chmod修改目录权限. 解决方案二: 在我的centos6.5上,直接用useradd就能达到你上面的所有要求.useradd默认创建和用户名一样的组名 创建和帐号一样的目录作为用户主文件夹,且权限为700

Linux中,创建聊天服务器、移除冗余软件包的实用命令

这里,我们来看Linux命令行实用技巧的下一个部分.如果你错过了Linux Tracks之前的文章,可以从这里找到. 5个有趣的Linux命令行技巧 本篇中,我们将会介绍6个命令行小技巧,包括使用Netcat命令创建Linux命令行聊天,从某个命令的输出中对某一列做加法,移除Debian和CentOS上多余的包,从命令行中获取本地与远程的IP地址,在终端获得彩色的输出与解码各样的颜色,最后是Linux命令行里井号标签的使用.让我们来一个一个地看一下. 6个实用的命令行技巧 1. 创建Linux命

linux中fork创建进程讲解(转)

大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难.我们举个例子来看看fork的用法吧.         大家用fork的时候记住fork是"分叉"的意思就很好理解了.         记得初学fork() 函数及遇到这个函数时,总是不能理解fork为什么会这样写,就会分成父子两个进程.    先看一下fork() 的经典模式 //------------------------------------------------

linux中如何创建和解压tar.xz文件

根据维基百科的解释, xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式.和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案文件.相反,xz通常作为一种归档文件自身的压缩格式,例如使用tar或cpioUnix程序创建的归档.xz 在GNU coreutils(版本 7.1 或更新)中被使用.xz 作为压缩软件包被收录在 Fedora (自Fedora 12起), Arch Linux, FreeBSD. Slackware Linux.CRUX

linux中vagrant创建配置开发环境

vagrant解决的问题 稍微有点团队协作开发经验的程序员都应该知道团队协作开发环境是多么的重要,起初的时候,大家的开发环境是windows,max os x,ubuntu,centos等等,我们各个程序员都是那么坚信程序在"我"的机器上是真的正常的.但是就线上就是出了问题,或者A程序员开发环境跑不起来,而且常常提交文件时,由于目录结构的差异,会导致误提交.由于开发环境的异构会导致我们浪费大量的时间去解决这些开发环境的问题. 所以vagrant可以解决上述的问题,可以实现开发环境的跨平

Linux中mysql创建新账号及权限设置教程

1.权限赋予 说明:mysql部署在服务器A上,内网上主机B通过客户端工具连接服务器A以进行数据库操作,需要服务器A赋予主机B操作mysql的权限 1.1 在服务器A上进入mysql,假设在服务器A上mysql的账户是root: mysql - u root -p然后回车键入密码! 1.2 赋予主机B操作数据库的权限 mysql> grant usage on *.* to username@192.168.0.1 identified by 'password';说明:赋予username@1

Linux 中 7 个判断文件系统类型的方法

文件通过文件系统在磁盘及分区上命名.存储.检索以及更新,文件系统是在磁盘上组织文件的方式. 文件系统分为两个部分:用户数据和元数据(文件名.创建时间.修改时间.大小以及目录层次结构中的位置等). 在本指南中,我们将用 7 种方法来识别你的 Linux 文件系统类型,如 Ext2.Ext3.Ext4.BtrFS.GlusterFS 等等. 1. 使用 df 命令 df 命令报告文件系统磁盘空间利用率,要显示特定的磁盘分区的文件系统类型,像下面那样使用 -T 标志: $ df -Th 或者 $ df

Linux中7个判断文件系统类型的方法

文件通过文件系统在磁盘及分区上命名.存储.检索以及更新,文件系统是在磁盘上组织文件的方式. 文件系统分为两个部分:用户数据和元数据(文件名.创建时间.修改时间.大小以及目录层次结构中的位置等). 在本指南中,我们将用 7 种方法来识别你的 Linux 文件系统类型,如 Ext2.Ext3.Ext4.BtrFS.GlusterFS 等等. 1. 使用 df 命令 df 命令报告文件系统磁盘空间利用率,要显示特定的磁盘分区的文件系统类型,像下面那样使用 -T 标志: $ df -Th  或者  $ 

学习 Linux,101: 创建分区和文件系统

概述 在本文中,学习磁盘分区和 Linux 文件系统相关内容.学习: 创建分区 使用 mkfs 命令来设置 ext2.ext3.ext4.xfs.Reiser v3 和 vfat 文件系统 创建和管理交换空间 本文帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试 101 中主题 104 下的目标 104.1.该目标的权值为 2. 注意:本文包含适用于 LPI Exam 101: Objecti