文件系統管理
文件系統包含着文件中的數據而且還有文件系統的結構;所有Linux用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。
在Linux中普通文件和目錄文件保存在稱爲塊物理設備的磁盤上。一套Linux系統支持若干物理盤,每個物理盤可定義一個或者多個文件系統。每個文件系統由邏輯塊的序列組成,一個邏輯盤空間一般劃分爲幾個用途各不相同的部分,即引導塊、超級塊、inode區以及數據區等
引導塊:在文件系統的開頭,通常爲一個扇區,其中存放引導程序,用於讀入並啓動操作系統;超級塊:用於記錄文件系統的管理信息。特定的文件系統定義了特定的超級塊;inode區(索引節點):一個文件或目錄佔據一個索引節點。第一個索引節點是該文件系統的根節點。利用根節點,可以把一個文件系統掛在另一個文件系統的非葉節點上;數據區:用於存放文件數據或者管理數據。
磁盤也叫硬盤;硬盤的接口類型有並行和串行,並行的有IDEH和SCSI,串行的有SATA、SAS和USB
磁盤設備的設備文件命令格式爲:/dev/DEV_FILE
IDE: /dev/hd...
SCSI,SATA,SAS,USB: /dev/sd...
不同的設備後面跟的不同,一般是a-z
例:/dev/sda,/dev/sdb,......
同一設備上的不同分區:1,2,...
例:/dev/sda1,/dev/sda5
硬盤現在有機械式硬盤和固態硬盤。機械式硬盤包括磁道、柱面和扇區。分區是按柱面進行的。還有一個扇區不屬於任何分區,就叫0磁道0扇區吧,它有512bytes;裏面存放上整個磁盤管理的內容後,就叫MBR(Master Boot Record)了。這512bytes中,前446bytes用來存bootloader(引導加載器)的,後面64bytes用來存放分區表,最後2bytes存放4個16進制數,來標識MBR的有效性(如果是55AA,前面的字節所存的信息有效;否則,無效)。16bytes標識一個分區,所以一個磁盤最多有4個主分區。隨着科技的發展,磁盤越來越大,所以一般是3個主分區和一個擴展分區(這個擴展分區可以再分多個邏輯分區,這個擴展分區不能存儲數據,邏輯分區的編號一般從5開始)
MBR只能識別2T大小的硬盤,要是更大的硬盤就需要使用GPT
分區管理工具有fdisk,partx,sfdisk:
fdisk:對於一塊硬盤來說,最多隻能管理15個分區
fdisk -l [-u] [device...]——查看磁盤分區的信息,如果後面不跟設備名,顯示所有設備磁盤分區信息
fdisk device(設備名)
子命令:管理功能
p:print, 顯示已有分區
m: 獲取幫助
n: new, 創建
d:delete, 刪除
w:write, 保存並退出
q:quit, 放棄更新並退出
t:調整分區id
l:列表顯示所有分區id
在裏面分好後查看下,在這裏查看到,並不意味着在內核中已經實現了,需要查看/proc/partitions文件,如果裏面也同步了,意味着在內核中實現了新的分區
從中可以看出沒有同步到內核中,
要通知內核讀取新的分區需要使用partx命令來識別
partx –a /dev/sda就行了;或者使用partx –a –n 4:6 /dev/sda
使用kpartx –a /dev/sda同樣可以
再次查看,就可以看到存在了
Linux文件系統:
Linux文件系統包括 :ext2, ext3, ext4,xfs, btrfs, reiserfs, jfs, swap(交換分區,就是把磁盤空間當內存使用)等
根據其是否支持“journal”(日誌)功能分爲:
日誌型文件系統:ext3,ext4,xfs,...
非日誌型文件系統:ext2,vfat
文件系統的組成部分:
內核中的模塊:ext4
用戶空間的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
用戶面對的不是這個組成部分,而是Linux虛擬文件系統(VFS),就是消除底層的不同,爲上層提供一個相同的服務
創建文件系統:
(A)、mkfs命令:
使用格式:(1)mkfs.FS_TYPE /dev/DEVICE
(ext4,xfs,btrfs,vfat)
(2)mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL': 設定卷標
使用blkid /dev/sda5可以查看磁盤分區的信息
(B)、mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j: 相當於 -t ext3
-i #: 爲數據空間中每多少個字節創建一個inode;此大小不應該小於block的大小;
-N #:爲數據空間創建個多少個inode;
-m #: 爲管理人員預留的空間佔據的百分比;
-O FEATURE[,...]:啓用指定特性
-O ^FEATURE:關閉指定特性
創建ext3的文件系統可以使用:mkfs.ext3; mkfs -t ext3 ; mke2fs -j ; mke2fs -t ext3
(C)、mkswap:創建交換分區
mkswap [options]device
-L 'LABEL'
這個命令有個前提:其分區的ID必須爲爲82;如果不是要使用fdisk命令的-t選項調整爲82
其它常用工具:
1、blkid:塊設備屬性信息查看
blkid [OPTION]... [DEVICE]
-U UUID: 根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
2、e2label:管理ext系列文件系統的LABEL
# e2label DEVICE [LABEL]
3、tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級爲ext3
-O: 文件系統屬性啓用或禁用
-o: 調整文件系統的默認掛載選項
-U UUID: 修改UUID號;
文件系統檢測:
1、fsck: File System CheCk
fsck.FS_TYPE/dev/DEVICE
(檢測某個文件系統,必須使用相對應的文件系統,FS_TYPE一定要與分區上已經文件類型相同)
fsck-t FS_TYPE
-a:自動修復錯誤
-r:交互式修復錯誤
2、e2fsck:ext系列文件專用的檢測修復工具
-y:自動回答爲yes;
-f:強制修復;
設備文件的掛載使用mount命令,卸載使用umount,查看當前內核已掛載的設備,使用mount回車,或者使用cat /pron/mounts,或者df都可以。