文件系統及其管理 文件系統 文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構,即在存儲設備上組織文件的方法。 操作系統中負責管理和存儲文件信息的軟體結構稱為文件管理系統,簡稱文件系統。 從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和 ...
文件系統及其管理
文件系統
文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構,即在存儲設備上組織文件的方法。
操作系統中負責管理和存儲文件信息的軟體結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的系統。
具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮,加密等
linux支持的文件系統:
/lib/modules/`uname –r`/kernel/fs
/proc/filesystems
文件系統的分類
Linux文件系統:ext2(Extended file system)、ext3、ext4、 xfs (SGI )、btrfs (Oracle )、reiserfs、jfs(AIX )、swap、iso9660(光碟)。
Windows文件系統:FAT32、exFAT、NTFS。
Unix文件系統:FFS(fast)、UFS(unix)、JFS2。
網路文件系統:NFS、CIFS。
集群文件系統:GFS2、OCFS2(oracle)
分散式文件系統:fastdfs、ceph、moosefs、mogilefs、glusterfs、Lustre。
未經處理或者未經格式化產生的文件系統:RAW
日誌型文件系統: ext3, ext4, xfs, ...
非日誌型文件系統: ext2, vfat
linux的虛擬文件系統:VFS
文件系統的選擇:
類型 支持限制 root分區 boot分區 註釋
xfs 500TB YES YES 預設分區格式
ext4 50TB YES YES 相容ext3、ext2
brfs 50TB YES YES 技術預覽
gfs2 2-16個節點 YES NO 集群文件共用存儲
文件系統管理命令
mkfs
分區後,才可對新建的分區創建文件系統
mkfs - build a Linux file system
mkfs用於在設備上建立Linux文件系統,通常是一個硬碟分區。
mkfs [-V] [-t type] [fs-options] device [size]
-t, --type=<type> 指定文件系統的類型,當不指定時,採用 ext2 文件系統。
fs-options 所創建文件系統的選項參數。
<device> 設備的全路徑
<size> 指定設備的塊大小
-V, --verbose 顯示過程,specifying -V more than once will cause a dry-run
mke2fs
mke2fs - create an ext2/ext3/ext4 filesystem
mke2fs [options] device [blocks-count]
options:
-b<區塊大小>: 指定區塊大小,單位為位元組
-c: 檢查是否有損壞的區塊
-f<不連續區段大小>: 指定不連續區段的大小,單位為位元組
-F: 不管指定的設備為何,強制執行mke2fs
-i<位元組>: 指定"位元組/inode"的比例
-N<inode數>: 指定要建立的inode數目
-l<文件>: 從指定的文件中,讀取文件西中損壞區塊的信息
-L<標簽>: 設置文件系統的標簽名稱
-m<百分比值>: 指定給管理員保留區塊的比例,預設為5%
-M: 記錄最後一次掛入的目錄
-q: 執行時不顯示任何信息
-r: 指定要建立的ext2文件系統版本
-R=<區塊數>: 設置磁碟陣列參數
-S: 僅寫入superblock與group descriptors,而不更改inode able inode bitmap以及block bitmap
-v: 執行時顯示詳細信息
-V: 顯示版本信息。
device: 指定要創建的文件系統的分區設備文件名
blocks-count:指定要創建的文件系統的磁碟塊數量
mkfs.fs_type
分區後,才可對新建的分區創建文件系統
mkfs.fs_type - build a fs_type Linux file system,其中fs_type代表多種文件類型。
mkfs.fs_type可以是mkfs.btrfs、mkfs.cramfs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.fat、mkfs.minix、mkfs.msdos、mkfs.vfat、mkfs.xfs
上述每個命令都對應一個類型的文件系統,選項太多也就不再一一寫出了,當用到那個時,具體看幫助。
blkid
與之有關的文件/etc/fstab
blkid - locate/print block device attributes,塊設備屬性查看
blkid [options][<device>]
-c <file> 從文件中讀取,而不是從預設的緩存文件中讀取 (-c /dev/null means no cache)
-d 不編碼不列印的字元
-h 列印幫助信息
-g 丟棄收集到blkid緩存信息
-o <format> 輸出格式,可以是value, device, export or full中的一個,預設為full
-k 列出所有已經知道的文件系統或RAIDS並退出
-s <tag> 顯示指定的 tag(s),預設顯示所有 tags
-t <token> 用特定的象徵來找到設備(NAME=value pair)
-l 僅查找第一設備,配合使用的是-t token選項
-L <label> 轉換LABEL為設備名
-U <uuid> 轉換UUID為設備名
-V 輸出版本
<dev> 指定要檢查的設備(default: all devices)
-p 檢查低水平的超級塊 (bypass cache)
-i 收集關於I/O限制的信息
-S <size> 重寫設備尺寸
-O <offset> 檢查給定的偏移
-u <list> 過濾(e.g. -u filesystem,raid)
-n <list> 通過文件系統過濾 (e.g. -n vfat,ext3)
findfs
findfs - find a filesystem by label or UUID,通過label或uuid來查找文件系統
findfs {LABEL,UUID,PARTUUID,PARTLABEL}=<value>
tune2fs
tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems,重新設定ext系列可調整的參數。
tune2fs [options] device
-c: 調整最大載入次數;
-C: 設置文件系統已經被載入的次數;
-e: 設置內核代碼檢測到錯誤時的行為;
-f: 強制執行修改,即使發生錯誤;
-i: 設置相鄰兩次文件系統檢查的相隔時間;
-j: 為“ext2”文件系統添加日誌功能,將其轉換為“ext3”文件系統;
-l: 顯示文件超級塊內容;
-L: 設置文件系統捲標;
-m: 顯示文件保留塊的百分比;
-M: 設置文件系統最後被載入到的目錄;
-o: 設置或清除文件系統載入的特性或選項;
-O: 設置或清除文件系統的特性或選項;
-r: 設置文件系統保留塊的大小;
-T: 設置文件系統上次被檢查的時間;
-u: 設置可以使用文件系統保留塊的用戶;
-U: 設置文件系統的UUID。
dumpe2fs
dumpe2fs - dump ext2/ext3/ext4 filesystem information
dumpe2fs [options] <device>
-b: 列印文件系統中預留的塊信息;
-ob<超級塊>: 指定檢查文件系統時使用的超級塊;
-OB<塊大小>: 檢查文件系統時使用的指定的塊大小;
-h: 僅顯示超級塊信息;
-i: 從指定的文件系統映像文件中讀取文件系統信息;
-x: 以16進位格式列印信息塊成員。
e2label
e2label - Change the label on an ext2/ext3/ext4 filesystem
e2label device [ new-label ]
fsck
常用於發生於死機或者非正常關機之後,掛載為文件系統標記為“no clean” 的情況。註意,一定不要在掛載狀態下修複。
fsck - check and repair a Linux filesystem
fsck [-lrsAVRTMNP] [-C [fd]] [-t fstype] [filesystem...] [--] [fs-specific-options]
-a: 自動修複文件系統,不詢問任何問題;
-A: 依照/etc/fstab配置文件的內容,檢查文件內所列的全部文件系統;
-N: 不執行指令,僅列出實際執行會進行的動作;
-P: 當搭配"-A"參數使用時,則會同時檢查所有的文件系統;
-r: 採用互動模式,在執行修複時詢問問題,讓用戶得以確認並決定處理方式;
-R: 當搭配"-A"參數使用時,則會略過/目錄的文件系統不予檢查;
-s: 依序執行檢查作業,而非同時執行;
-t<文件系統類型>: 指定要檢查的文件系統類型;
-T: 執行fsck指令時,不顯示標題信息;
-V: 顯示指令執行過程。
返回數值所代表的信息:
0 沒有錯誤
1 文件系統錯誤糾正
2 系統應該被重啟
4 系統錯誤,未修正
8 操作錯誤
16 用法或語法錯誤Usage or syntax error
32 通過用戶請求檢查緩存
128 共用存儲錯誤
fsck.fs_tyoe
和mkfs.fs_tpe類型。fy_type代表許多文件系統。
fsck。fs_type用於針對不通的文件系統進行檢查和修複
fsck。fs_type可以是fsck.btrfs、fsck.cramfs、fsck.ext2、fsck.ext3、fsck.ext4、fsck.fat、fsck.minix、fsck.msdos、fsck.vfat、fsck.xfs
同樣由於選項太多就不一一描述了,用到那個具體查看man幫助等。
e2fsck
e2fsck - check a Linux ext2/ext3/ext4 file system
e2fsck [options] <device>
-p 自動修複 (no questions)
-n 對文件系統不做更改
-y 設置對所有文件回答為YES
-c 檢查的壞塊並添加到壞塊列表中
-f 強迫執行檢查,即使會把文件系統清空
-v 顯示詳情
-b superblock 使用更改的超級塊兒
-B blocksize 當查找超級塊兒時指定塊兒大小
-j external_journal 設置外部日誌的位置
-l bad_blocks_file 添加到壞塊列表中
-L bad_blocks_file 設置壞塊兒列表
df
df - report file system disk space usage,查看文件系統磁碟空間使用情況。
df [OPTION]... [FILE]...
-a, --all 顯示所有文件系統
-B, --block-size=SIZE 在顯示前通過SIZE來測量尺寸大小; e.g., '-BM' prints sizes in units of 1,048,576 bytes,
--direct 顯示文件狀態
--total 顯示總結
-h, --human-readable 用可讀性格式顯示尺寸大小(e.g., 1K 234M 2G)
-H, --si 用1000的格式而不是1024的格式顯示
-i, --inodes 顯示節點信息
-k 同 --block-size=1K
-l, --local 僅顯示本地文件系統
--no-sync 在得到有用信息之前不調用同步功能(default)
--output[=FIELD_LIST] 使用被FLELD_LIS定義的格式輸出,或如果FIELD_LIST被忽略就輸出所有區域。
-P, --portability 使用可移植性的系統介面POSIX輸出格式
--sync 在取得信息前,調用同步功能
-t, --type=TYPE 限制文件系統列出的類型
-T, --print-type 列印文件系統類型
-x, --exclude-type=TYPE 不限制文件系統的列出類型