公眾號文章匯總
919
2025-04-02
文件系統概念
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體來說,它負責為用戶建立文件,存入,讀出,修改,轉儲文件,控制文件的權限,安全控制,日志,壓縮,加密等
支持的文件系統
/lib/modules/`uname -r`/kernel/fs
各種文件系統:https://en.wikipedia.org/wiki/Comparison_of_file_systems
幫助:man 5 fs
文件系統類型
Linux常用文件系統
ext2:Extended file System適用于那些分區容量不是太大,更新也不頻繁的情況,例如/boot分區
ext3:是ext2的改進版本,其支持日志功能,能夠幫助系統從非正常關機導致的異常中恢復
ext4:是ext文件系統的最新版,提供了很多新的特性,包括納秒級時間戳、創建和使用巨型文件(16TB)、最大1EB的文件系統,以及速度的提升
xfs:SGI,支持最大8EB的文件系統
swap
iso9660光盤
btrfs(Oracle)
reiserfs
Windows常用文件系統
FAT32
NTFS
exFAT
Unix:
FFS(fast)
UFS(unix)
IFS2
網絡文件系統:
NFS
CIFS
集群文件系統:
GFS2
OCFS2(Oracle)
fastdfs
ceph
moosefs
mogilefs
glusterfs
Lustre
RAW:
裸文件系統,未經處理或者未經格式化產生的文件系統
常用的文件系統特性:
FAT32:
最多只能支持16TB的文件系統和4GB的文件
NFTS:
最多只能支持16EB的文件系統和16EB的文件
EXT3:
最多只能支持32TB的文件系統和2TB的文件,實際只能容納2TB的文件系統和16GB的文件
Ext3目前只支持32000個子目錄
Ext3文件系統使用32位空間記錄塊數量和inode數量
當數據寫入到Ext3文件系統中時,Ext3的數據塊分配器每次只能分配一個4KB的塊
EXT4:
EXT4是Linux系統下的日志文件系統,是EXT3文件系統的后繼版本
EXT4的文件系統容量達到1EB,而支持單個文件則達到16TB
理論上支持無限數量的子目錄
EXT4文件系統使用64位空間記錄塊數量和inode數量
EXT4的多塊分配器支持一次調用分配多個數據塊
修復速度更快
XFS:
根據所記錄的日志在很短的時間內迅速恢復磁盤文件內容
用優化算法,日志記錄對整體文件操作影響非常小
是是一個全64位的文件系統,最大可以支持8EB的文件系統,而支持單個文件則達到8EB
能以接近裸設備I/O的性能存儲數據
查看支持的文件系統:
cat /proc/filesystems
文件系統的組成部分
內核中的模塊:EXT4,XFS,VFAT
Linux的虛擬文件系統:VFS
用戶空間的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
文件系統選擇管理
創建文件系統
mkfs命令:
mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
mkfs.t FS_TYPE /dev/DEVICE
-L ‘LABEL’ 設定卷標
mke2fs:ext系列文件系統專用管理工具
常用選項:
-t {ext2|ext3|ext4|xfs} 指定文件系統類型 -b {1024|2048|4096} 指定塊block大小 -L 'LABEL' 設置卷標 -j 相當于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 -i # 為數據空間中每多少個字節創建一個inode,不應該小于block大小 -N # 指定分區中創建多少個inode -I 一個inode記錄占用的磁盤空間大小,128-4096 -m # 默認5%,為管理人員預留空間占總空間的百分比 -O FEATURE[...] 啟用指定特性 -O ^FEATURE 關閉指定特性
查看和管理分區信息
blkid 可以查看塊設備屬性信息
格式:
blkid [OPTION]... [DEVICE]
常用選項:
-U UUID 根據指定的UUID來查找對應的設備
-L LABEL 根據指定的LABEL來查找對象對應的設備
e2label:管理ext系列文件系統的LABEL
e2label DEVICE [LABEL]
findfs:查找分區
findfs [options] LABEL=
tune2fs:重新設定ext系列文件系統可調整參數的值
-l 查看指定文件系統超級塊信息;super block -L 'LABEL' 修改卷標 -m # 修改預留給管理員的空間百分比 -j 將ext2升級為ext3 -O 文件系統屬性啟用或禁用,-O ^has_journal -o 調整文件系統的默認掛載選項,-o ^acl -U UUID 修改UUID號
dumppe2fs:顯示ext文件系統信息,將磁盤塊分組管理
-h 查看超級塊信息,不顯示分組信息 例如:dumpe2fs /dev/sda1
塊組描述符表(GDT)
EXT文件系統每一個塊組信息使用32字節描述,這32個字節稱為塊組描述符,所有塊組的塊組描述符組成塊組描述符表GDT(Group Descriptor Table)。雖然每個塊組都需要塊組描述符來記錄塊組的信息和屬性元數據,但是不是每個塊組中都存放了塊組描述符。將所有塊組的塊組信息組成一個GDT保存,并將該GDT存放于某些塊組中,類似存放superblock和備份superblock的塊
文件系統檢測和修復
文件系統夾故障常發生于死機或非正常關機之后,掛載為文件系統標記為"no clean"
注意:一定不要在掛載狀態下執行下面命令修復
fsck:File System Check
fsck.FS_TYPE fsck -t FS_TYPE
注意:FS_TYPE 一定要與分區上的文件類型相同
常用選項:
-a 自動修復 -r 交互式修復錯誤
e2fsck:ext系列文件專用的檢測修復工具
常用選項:
-y 自動回答為yes -f 強制修復 -p 自動進行安全的修復文件系統問題
xfs_repair:xfs文件系統專用檢測修復工具
常用選項:
-f 修復文件,和設備 -n 只檢查 -d 允許修復只讀的掛載設備,在單用戶下修復/時使用,然后立即reboot
例子:修改破壞的ext文件系統
mount /dev/sdb2 /mnt cp /etc/fstab /mnt/f1 cp /etc/fstab /mnt/f2 ls /mnt dd if=/dev/zero of=/dev/sdb2 bs=1M count=1 ls /mnt tune2fs -l /dev/sdb2 df umount /mnt e2fsck /dev/sdb2 e2fsck /dev/sdb2 -y mount /dev/sdb2 /mnt ls /mnt cat /mnt/f1
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。