一、基礎概念
文件系統是一種管理存儲設備上所存儲的文件的一種內生性軟件。
能與硬件的存儲設備進行交互的只有內核。在操作系統還沒有啓動的時候,內核也沒有啓動,由於內核必須依靠文件系統才能啓動。然而文件系統由存放於內核中,內核啓動前文件系統不存在。這樣環繞的問題,類似一個“雞生蛋,蛋生雞”的問題。其實,在操作系統啓動時,MBR中的Bootloader會自動識別根文件系統(/),隨之根文件系統中的內核便會啓動,操作系統啓動完成。
二、文件系統類型
虛擬文件系統(VFS):可以識別其他不同的文件系統,並轉換成本機可以識別的文件系統。
基本文件系統:ext2,ext3,ext4,xfs,jfs,ntfs等。
網絡文件系統:NFS等。
光盤文件系統:iso9660。
集羣文件系統:GFS,其分佈於多臺計算機上,計算機之間通過某種方式通行,將集羣內所有存儲空間的資源整合,並向外以統一的接口提供文件訪問的一種文件系統等。
交換分區:swap。
三、ext4文件系統對於文件的管理方式
ext4是目前比較常用的文件系統,一下就該文件系統的管理做簡單介紹。
block:文件系統管理文件的基本單元,block的大小通常是2^nK。
inode:存放文件的屬主、屬組、訪問權限、時間戳。最重要的是存放文件所在的數據塊信息。
inode位圖:存放閒置的inode和已使用的inode信息。方便在存儲文件時,爲文件分配相應的inode。
block位圖:與inode位圖類似,存放閒置的block和已使用的block。方便爲文件分配block,存儲文件內容。
super block:存放inode、inode位圖以及block位圖的在文件系統中的存儲位置。
日誌記錄區:防止在存儲文件過程中,由於斷電等硬件故障導致文件存儲失敗,再次開機時,刪除該無效文件。在存儲文件的時候,給文件分配一個inode之後,在inode區和日誌記錄區均有記載,如果存儲成功,該inode會被刪除,如果在存儲過程中遇到故障,就會記錄該inode,便於下次開機對文件系統的檢測和清理。
四、文件系統操作:
1、分區只能由4個主分區,爲什麼?
啓動操作系統的MBR一共含有512字節,前446字節存放Bootloader用於啓動操作系統,接着64字節存放分區信息,每16個字節存放一個分區信息,所以一個操作系統只能由四個主分區,若想使用多個分區,可以將其中一個或者兩個分區設置爲擴展分區,然後再擴展分區中可以創建多個邏輯分區。
2、分區操作:
命令:fdisk <device-name>, 進入交互式界面。
交互式的常用Command:
n:增加新分區
d:刪除分區
p:打印當前磁盤的分區信息
t:調整分區標記(分區ID)
L:列出所有分區的ID信息
w:保存分區信息並退出
q:不保存退出
m:獲取幫助
新建的分區信息查看方式:
1、/proc/partition文件中保存所有存儲設備的分區信息。
2、使用命令。fdisk -l <device-name>
2、格式化
命令:mke2fs [option] <device-name>、mkfs;
Option:
-t fs-type: 指定文件系統類型(常用)
-L label: 指定卷標
-b block-size: 指定數據塊大小
-i byte_per_inode: 指定幾個字節對應一個inode
-N inode-num; 指定inode數目
-I inode-size: 指定inode大小
創建ext4分區的不同方式(其他文件系統類似):
1、# mke2fs -t ext4 /dev/sdb1;
2、# mkfs.ext4
3、# mkfs -t ext4 /dev/sdb1
其他命令:
1、blkid <device-name> 查看存儲設備的文件系統類型。
# blkid /dev/sdb1
2、dumpe2fs [option] <device-mname> 查看塊組信息。
Option:-h 只顯示super block中的信息。
3、tune2fs [option] <device-name> 調整超級塊中的信息
Option:
-l :查看超級塊信息
-L label :修改卷標信息
-j:如果原文件系統爲ext2,則升級爲ext3,並不影響數據。
-o mount-option:指定掛載屬性
-O:調整分區特性
關閉某特性:tune2fs ^feature <device-path>
打開某特性:tune2fs feature <device-path>
4、fsck、e2fsck。檢測文件系統。
3、掛載|卸載存儲設備
掛載:mount <device-path> <destdir-name>
# mount /dev/sdb1 /mnt/sdb_data
自動掛載:將需要掛載的設備在/etc/fstab文件中進行編輯,然後執行命令“mount -a”即可。
卸載:umount {device-path | destdir-name}
# umount /dev/sdb1
# umount /mnt/sdb_data
4、查看磁盤使用情況
命令:df,du
df [option] <device-name>:查看掛在設備使用情況
Option:-h 換算成人容易識別的單位
-i 查看inode 使用情況
du [option] <file-name>:查看文件佔用存儲設備的情況
Option:-h human-readable
-s 整個目錄在磁盤中的使用情況
五、交換分區的創建
1、調整分區類型:
2、格式化交換分區:
命令:mkswap <device-name>
# mkswap /dev/sdb1
3、啓動|關閉交換分區
命令:swapon [option] <device-path>、swapoff [option] <device-path>
Option: -a :(啓動|禁用)所有交換分區
-p # :啓動時指定優先級
啓動:# swapon /dev/sdb1
關閉:# swapoff /dev/sdb1
================= 以上就是我對文件系統的淺談,如有不妥歡迎指出 =========================