Linux 入門記錄:八、Linux 檔案系統,linux入門
一、檔案系統
作業系統通過檔案系統管理檔案及資料,磁碟或分區需要建立檔案系統之後,才能被作業系統所用,建立檔案系統的過程又稱之為格式化。沒有檔案系統的裝置又稱之為裸裝置(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/sda3mkfs.ext4 /dev/sda3mkfs.vfat /dev/sda3
五、dumpe2fs命令
命令 dumpe2fs 可以用來查看分區的檔案系統資訊:
dumpe2fs /dev/sda1
六、journal日誌
帶日誌的檔案系統(ext3、ext4)擁有較強的穩定性,主要體現在出錯時可以恢複。
使用帶日誌的檔案系統,檔案系統會使用一個叫做“兩階段交易認可”的方式進行磁碟操作,當進行磁碟操作時,檔案系統進行以下操作:
這樣做的好處是,當事務執行的時候如果出現意外(如斷電或磁碟故障),可以通過查詢日誌進行恢複操作。缺點是會喪失一定的效能(額外的日誌讀寫操作)。
七、e2label命令
命令 e2label 可以用來為檔案系統打標籤:
e2label /dev/sda2 顯示 sda2 的標籤e2label /dev/sda2 MYLABEL 將 sda2 的標籤設定為 MYLABEL
八、fsck命令
命令 fsck 用來檢查並修複壞損的檔案系統:
fsck /dev/sda2
- 使用 -y 參數不提示而直接進行修複
- 預設fsck 會自動判斷檔案系統類型,如果檔案系統損壞比較嚴重,請使用 -t 參數指定檔案系統類型
- 對於識別為檔案的損壞資料(檔案系統無記錄),fsck 會將該檔案放入 lost+found 目錄
- 系統啟動時會對磁碟進行fsck 操作