文件系統知一二
What?文件系統是什么?
我們經常說文件系統,那么文件系統是什么東西呢?
計算機的文件系統是一種存儲和組織計算機數據的組織結構。
常見的文件系統有哪些?
Linux文件系統:ext2,ext3,ext4,xfs,btrfs,reiserfs,swap
Windows文件系統:fat32,ntfs
Unix文件系統:FFS,UFS,JFS2
網絡文件系統:NFS,CIFS
集群文件系統:GFS2,OCFS2
分布式文件系統:ceph,
mosefs, mogilefs, GlusterFS, Lustre
根據其是否支持“journal(日志)”功能分為:
日志型文件系統:ext3,ext4,xfs……
非日志型文件系統:ext2,vfat
文件系統的組成部分
內核中的模塊:ext4,xfs,vfat,……
用戶空間的管理工具:mkfs.ext4,mkefs.xfs,mkfs.vfat
Linux上常見的文件系統
1) ext系列的ext[2-4],ext2系統沒有日志功能,ext[3-4]文件系統有日志功能。
2) XFS文件系統,一種性能強大的日志文件系統,CentOS 7和RHEL 7在安裝時默認使用XFS文件系統
3) btrfs文件系統,也是一個日志型文件系統,對大文件和小文件有很高的處理效率。
4) JFS(Journaling File System),由IBM創建的一種日志型文件系統
5) Swap,交換分區,當內存不足時,可以將一部分硬盤空間虛擬成內存使用,解決內存容量不足的問題,但是速度比較慢。
Why?為什么需要文件系統?文件系統的存在意義是什么?
文件系統使得對硬盤數據的訪問和查找變得容易,文件系統使用文件和樹形目錄的抽象邏輯概念代替了硬盤和光盤等物理設備使用數據塊的概念,用戶使用文件系統來保存數據不必關心數據實際保存在硬盤(或者光盤)的地址為多少的數據塊上,只需要記住這個文件的所屬目錄和文件名。 在寫入新數據之前,用戶不必關心硬盤上的那個塊地址沒有被使用,硬盤上的存儲空間管理(分配和釋放)功能由文件系統自動完成,用戶只需要記住數據被寫入到了哪個文件系統中。
早期沒有文件系統的時期,計算機用戶在使用計算機時,需要人工的去查找磁盤關系表去查看要找的數據保存在硬盤上的地址以及要通過磁盤關系表了解哪些地址沒有被使用,以便對磁盤進行正確的讀寫操作。
目前的計算機存儲,查找數據地址這些事情都是由文件系統來完成,用戶只需要知道存儲的數據文件名是什么在哪個目錄下。
任何事物的發展都是從麻煩到簡單,用戶體驗也都是越來越完善。
文件系統的存在意義也就是為了提高的用戶對磁盤的使用效率,用戶體驗更加友好。
When?什么時候會用到文件系統?
當我們創建一塊兒新分區的時候,需要對其進行格式化指定的文件系統,否則就無法對這塊兒分區進行讀寫操作。
Where?在哪兒使用文件系統
新建一塊兒分區的時候,這時候我我們就要對其進行格式化,在命令行終端中使用指定的文件系統的管理命令即可完成。
How?文件系統的使用方法?
創建文件系統:
mkfs命令:
1) # mkfs.FS_TYPE /dev/DEVICE
FS_TYPE(文件系統類型):
ext4
xfs
btrfs
vfat
2) # mkfs –t FS_TYPE /dev/DEVICE
-L ‘LABEL’:設定卷標
[root@Daniel ~]# mkfs -t btrfs -L 'mydata' -f /dev/sda6 # -f 表示強制,因為之前/dev/sda6的文件系統為ext3 SMALL VOLUME: forcing mixed metadata/data groups btrfs-progs v3.19.1 See http://btrfs.wiki.kernel.org for more information. Turning ON incompat feature 'mixed-bg': mixed data and metadata block groups Turning ON incompat feature 'extref': increased hardlink limit per file to 65536 Turning ON incompat feature 'skinny-metadata': reduced-size metadata extent refs Created a data/metadata chunk of size 8388608 fs created label mydata on /dev/sda6 nodesize 4096 leafsize 4096 sectorsize 4096 size 500.00MiB [root@Daniel ~]# blikd /dev/sda6 bash: blikd: 未找到命令... 相似命令是: 'blkid' [root@Daniel ~]# blkid /dev/sda6 /dev/sda6: LABEL="mydata" UUID="a66d6fcb-6930-4506-8afa-9bcf6abe49bd" UUID_SUB="0a0420dd-be44-486d-9d0b-7055dcf24c6b" TYPE="btrfs"
mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j: 相當于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大??;
-N #:為數據空間創建個多少個inode;
-m #: 為管理人員預留的空間占據的百分比;
-O FEATURE[,…]:啟用指定特性
-O ^FEATURE:關閉指定特性
[root@Daniel ~]# mke2fs -t ext3 /dev/sda7 mke2fs 1.42.9 (28-Dec-2013) 文件系統標簽= OS type: Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 128016 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user 第一個數據塊=1 Maximum filesystem blocks=67633152 63 block groups 8192 blocks per group, 8192 fragments per group 2032 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@Daniel ~]# blkid /dev/sda7 /dev/sda7: UUID="7c80361d-517b-4b29-aa27-b2fa8b1a8263" SEC_TYPE="ext2" TYPE="ext3"
mkswap:創建交換分區
mkswap [options] device
-c, –check 創建交換區前檢查壞塊
-f, –force 允許交換區大于設備大小
-p, –pagesize SIZE 指定頁大小為 SIZE 字節
-L, –label LABEL 指定標簽為 LABEL
-v, –swapversion NUM 指定交換空間版本號為 NUM
-U, –uuid UUID 指定要使用的 UUID
-V, –version 輸出版本信息并退出
-h, –help 顯示此幫助并退出
前提:調整其分區的ID為82;
其他常用工具:
blkid:塊設備屬性信息查看
blkid [OPTION]… [DEVICE]
-U UUID: 根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
[root@Daniel ~]# blkid /dev/sda5 /dev/sda5: UUID="1ffe8df2-9df0-4260-a9e5-c59aaf6b5215" TYPE="xfs" [root@Daniel ~]# blkid /dev/sda6 /dev/sda6: UUID="9583a476-da62-4836-aee5-8847d7b79381" UUID_SUB="4a86922c-9293-4b4a-8958-f961f7c9b96c" TYPE="btrfs" [root@Daniel ~]# blkid /dev/sda7 /dev/sda7: UUID="7c80361d-517b-4b29-aa27-b2fa8b1a8263" SEC_TYPE="ext2" TYPE="ext3" [root@Daniel ~]# blkid /dev/sda8 /dev/sda8: LABEL="mydata" UUID="81a0c29c-8f66-407e-a338-dd1468407100" TYPE="ext4" [root@Daniel ~]# blkid -L 'mydata' /dev/sda8
e2lable:管理ext系列文件系統的LABEL
# e2label DEVICE [LABEL]
[root@Daniel ~]# e2label /dev/sda8 'TEST' [root@Daniel ~]# blkid /dev/sda8 /dev/sda8: LABEL="TEST" UUID="81a0c29c-8f66-407e-a338-dd1468407100" TYPE="ext4"
tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用
-o: 調整文件系統的默認掛載選項
-U UUID: 修改UUID號;
dumpe2fs:查看超級塊信息
-h:查看超級塊信息
文件系統檢測:
fack: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自動修復錯誤
-r: 交互式修復錯誤
Note: FS_TYPE一定要與分區上已經文件類型相同;
e2fsck:ext系列文件系統專用的檢測修復工具
-y:自動回答為yes;
-f:強制修復;
原創文章,作者:Daniel-W,如若轉載,請注明出處:http://www.www58058.com/12510
為寫標簽的細節點贊