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分区进行转换,你可以进行以下操作:
# fsck.ext4 /dev/sda4
# btrfs-convert /dev/sda4
然后,你就可以使用mount命令将它挂载到你想要的任何位置。
btrfs-convert
转换根分区
如果你想要对你系统上的根分区进行转换,你首先需要使用Live CD启动。对于Ubuntu,你可以使用Ubuntu安装盘来完成此操作,在启动后第一个屏幕选择“尝试Ubuntu”。对于其它系统,你同样可以使用Live CD镜像,操作类似。
在启动后,打开终端,使用下面的命令来转换文件系统。
# fsck.ext4 /dev/sda1
# btrfs-convert /dev/sda1
接下来,chroot到文件系统,这样你就可以修改fstab并重新安装grub了。
# mount /dev/sda1 /mnt
# for i in dev dev/pts proc sys ; do mount --bind /$i /mnt/$i ; done
# chroot /mnt
# blkid | grep sda1
btrfs-root-convert
现在来编辑fstab,并根据blkid输出的结果来修改当前“/”文件系统的UUID,并将它的文件系统类型修改为btrfs,修改后的行如下:
UUID=8e7e80aa-337e-4179-966d-d60128bd3714 / btrfs defaults 01
然后,重新安装Grub:
# grub-install /dev/sda
# update-grub
现在,你可以把启动光盘丢到一边了,重启机器后,你就可以使用新的文件系统了。

时间: 2024-11-08 18:16:56

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

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

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

Linux中 mkdir 创建文件夹命令

语法 mkdir (选项)(参数) 选项 -Z:设置安全上下文,当使用SELinux时有效: -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限: -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录: --version 显示版本信息. 参数 目录:指定要创建的目录列表,多个目录之间用空格隔开. 常用实例 1.在当前文件夹下创建多个文件夹 2.指定绝对路径创建xxx文件夹,同时当前路径创建vvv文件夹(举一反三,也可以同时多个绝

在Linux中批量创建文件或者目录

[[email protected] Auto_Ops]$ touch `seq 10` [[email protected] Auto_Ops]$ ls 1  10  2  3  4  5  6  7  8  9 [[email protected] Auto_Ops]$ mkdir $(echo {a..f}) [[email protected] Auto_Ops]$ ls 1  10  2  3  4  5  6  7  8  9  a  b  c  d  e  f [[email pr

运维基础--Linux中bash的基础特性

bash 的基础特性如下: 一.命令的别名--alias 命令 用来定义和显示命令的别名,unalias撤销定义的别名:但是要注意以下几点: 1.alias的效果仅限于当前shell的生命期: 2.如果修改.bashrc配置文件,其中保存的别名不会立即生效,只有在重新加载该文件的内容后,才会生效且永久生效: 3.为了能够保证设置的别名有效,通常两种操作都要做: 二.命令历史 shell进程会其会话中保存此前用户提交执行过的命令,history是shell的内置命令   1.命令语法格式: his

Linux学习笔记之 Btrfs文件系统简介及使用

Btrfs相关介绍: Btrfs 是一个 Linux 中的新的写时复制(copy-on-write (COW))的文件系统,目的是实现高级功能的同时着重与容错功能,修复功能以及易于管理.目前由Oracle, Red Hat, 富士通, Intel, SUSE以及其他组织共同开发,在 GPL 许可证下发行,同时向任何人公开代码. Btrfs核心特性: 多物理卷支持:btrfs可由多个底层物理卷组成:支持RAID,以联机"添加"."移除"."修改":

在Linux中创建静态库.a和动态库.so

转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用函数制作成函数库,供其它程序使用. 函数库分为静态库和动态库两种. 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译

btrfs文件系统、压缩工具及for语句、程序包管理

btrfs(b-tree.butter fs.better fs)oracle 公司研发的替代ext系列的cow(写时复制)机制的文件系统,并遵循GPL协定 核心特性:1.多物理卷支持:支持将多个底层物理设备组织成同一个文件系统,类似物理卷,btrfs可由多个地城物理卷组成,支持raid,以联机实现物理卷的"添加"."移除"."修改"2.写时复制更新机制(CoW);复制.更新及替换指针,而非"就地"更新不修改文件时,复制的文件

btrfs文件系统的简单管理及应用

一.btrfs的命令选项 mkfs.btrfs -L 'LABEL' 指定卷标 -d <type>: raid0,raid1, raid5, raid6, raid10, single   指明数据存储类型 -m <profile>: raid0,raid1, raid5, raid6, raid10, single, dup  指明源数据存储的机制 -O <feature> 指明在格式化时使用的特性 -O list-all: 列出支持的所有feature man bt

Linux内核分析:实验六--Linux进程的创建过程分析

刘畅 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本次实验在MenuOS中加入fork系统调用,并通过GDB的调试跟踪,近距离的观察Linux中进程创建的过程.阅读Linux进程部分的源码,结合起来理解Linux内核创建新进程的过程. Linux中对进程的描述 Linux中task_struct结构体用于描述系统中的进程,对应x86机器的此结构体定义放在了/include/li