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
如今,你能夠把啓動光盤丟到一邊了,重啓機器後,你就可使用新的文件系統了。linux