1. 程式人生 > >Linux 入門記錄:八、Linux 文件系統

Linux 入門記錄:八、Linux 文件系統

文件的 讀寫 com 發行版 信息 查看 block 系統日誌 成功

一、文件系統

操作系統通過文件系統管理文件及數據,磁盤或分區需要創建文件系統之後,才能被操作系統所用,創建文件系統的過程又稱之為格式化。沒有文件系統的設備又稱之為裸設備(raw),某些環境會需要裸設備,例如安裝 Oracle 時會需要裸設備。

常見的文件系統類型

常見的文件系統有 fat32、NTFS、ext2、ext3、ext4、xfs、HFS 等。其中,fat32 和 NTFS 是 Windows 中的文件系統,ext2、ext3、ext4、xfs、HFS 是 Linux 中的文件系統。NTFS 是當今 Windows 主流的文件系統,ext3、ext4 是 Linux 中主流的文件系統。

不同文件系統之間的區別

  • 是否帶有日誌
  • 支持的分區大小
  • 支持的單個文件大小
  • 性能
  • ......

二、Linux 支持的文件系統

常見的有 ext2、ext3、ext4、fat(msdos)、vfat、nfs、iso9660(光盤的文件系統)、proc(Linux 內存中的虛擬文件系統)、gfs(Linux 中的 global file system,全局文件系統)、jfs (帶日誌的文件系統)等等,不同的 Linux 發行版本,文件系統略有不同。

三、mke2fs命令

命令 mke2fs 用來創建文件系統:

mke2fs -t ext4 /dev/sda3     給第一塊 SATA 硬盤的 3 號分區創建 ext4 文件系統

常用參數:

-b blocksize   指定文件系統塊大小(文件系統每次讀寫數據時的最小單位)
-c             建立文件系統時檢查塊壞損(check,檢查)
-L label       打標簽(類似 Windows 的磁盤卷標)
-j             建立文件系統日誌(journal,日誌),ext3 和 ext4 默認帶日誌

技術分享

四、mkfs命令

命令 mkfs 也可以用來創建文件系統,相較於 mke2fs 更加簡答,但是支持的參數較少,不能進行精細化的控制。

它還有一些子命令:

mkfs.ext3 /dev/sda3
mkfs.ext4 /dev/sda3
mkfs.vfat /dev/sda3

技術分享

五、dumpe2fs命令

命令 dumpe2fs 可以用來查看分區的文件系統信息:

dumpe2fs /dev/sda1

六、journal日誌

帶日誌的文件系統(ext3、ext4)擁有較強的穩定性,主要體現在出錯時可以恢復。

使用帶日誌的文件系統,文件系統會使用一個叫做“兩階段提交”的方式進行磁盤操作,當進行磁盤操作時,文件系統進行以下操作:

  1. 文件系統將準備執行的事務的具體內容寫入日誌
  2. 文件系統進行操作
  3. 操作成功後,將事務的具體內容從日誌刪除

這樣做的好處是,當事務執行的時候如果出現意外(如斷電或磁盤故障),可以通過查詢日誌進行恢復操作。缺點是會喪失一定的性能(額外的日誌讀寫操作)。

七、e2label命令

命令 e2label 可以用來為文件系統打標簽:

e2label /dev/sda2           顯示 sda2 的標簽
e2label /dev/sda2 MYLABEL   將 sda2 的標簽設置為 MYLABEL

技術分享

八、fsck命令

命令 fsck 用來檢查並修復壞損的文件系統:

fsck /dev/sda2
  • 使用 -y 參數不提示而直接進行修復
  • 默認fsck 會自動判斷文件系統類型,如果文件系統損壞比較嚴重,請使用 -t 參數指定文件系統類型
  • 對於識別為文件的損壞數據(文件系統無記錄),fsck 會將該文件放入 lost+found 目錄
  • 系統啟動時會對磁盤進行fsck 操作

技術分享

Linux 入門記錄:八、Linux 文件系統