Linux學習之四 磁碟與檔案系統管理

2022-02-07 13:49:05 字數 3087 閱讀 9987

一、一些基本定義

1. superblock:記錄此 filesystem 的整體資訊,包括inode/block的總量、使用量、剩餘量, 以及檔案系統的格式與相關資訊等;

2. inode:記錄檔案的屬性,乙個檔案占用乙個inode,同時記錄此檔案的資料所在的block 號碼;

3. block:實際記錄檔案的內容,若檔案太大時,會占用多個 block 。

二、linux支援的檔案系統

1. 檢視linux 支援的檔案系統有哪些:

ls -l /lib/modules/$(uname -r)/kernel/fs

2. 檢視系統目前已載入到記憶體中支援的檔案系統:

cat /proc/filesystems

linux vfs (virtual filesystem switch)來幫我們管理怎麼去訪問不同的檔案系統

三、ext2檔案系統介紹

1. block的特點

1) block 的大小與數量在格式化完就不能夠再改動了(除非重新格式化),一般為1k,2k或4k,其大小決定了最大單一檔案的大小和最大檔案系統總容量;

block 大小           1kb     2kb  4kb

最大單一檔案限制 16gb 256gb  2tb

最大檔案系統總容量 2tb    8tb 16tb

2) 每個 block 內最多隻能夠放置乙個檔案的資料;

3) 如果檔案大於 block 的大小,則乙個檔案會占用多個 block 數量;

4) 若檔案小於block ,則該 block 的剩餘容量就不能夠再被使用了(磁碟空間會浪費)。

2. inode的特點

1) 每個 inode 大小均固定為 128 bytes;

2) 每個檔案都僅會占用乙個 inode 而已;

3) 檔案系統能夠建立的檔案數量與 inode 的數量有關;

4) 系統讀檔案時需要先找到 inode,並分析 inode 所記錄的許可權與使用者是否符合,若符合才能夠開始實際讀 block 的內容。

5) inode 記錄 block 號碼的區域定義為12個直接,乙個間接, 乙個雙間接與乙個三間接記錄區。

四、檔案系統的相關操作

1. df:列出檔案系統的整體磁碟使用量

df [-ahikhtm] [目錄或檔名]

選項與引數:

-a :列出所有的檔案系統,包括系統特有的/proc 等檔案系統;

-k :以 kbytes 的容量顯示各檔案系統;

-m :以 mbytes 的容量顯示各檔案系統;

-h :以 m=1000k 取代 m=1024k 的進製方式;

-t :連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;

-i :不用硬碟容量,而以 inode 的數量來顯示

2. du:評估檔案系統的磁碟使用量

du [-ahskm] 檔案或目錄名稱

選項與引數:

-a :列出所有的檔案與目錄容量,因為預設僅統計目錄底下的檔案量而已。

-h :以人們較易讀的容量格式 (g/m) 顯示;

-s :列出總量而已,而不列出每個各別的目錄占用容量;

-s :不包括子目錄下的總計。du 缺省會將所有檔案的大小均列出,因此假設你在 /etc 底下使用 du 時, 所有的檔案大小,包括 /etc 底下的次目錄容量也會被計算一次。然後最終的容量 (/etc) 也會加總一次, 所以,如果想要列出某目錄下的全部資料, 也可以加上 -s 的選頃,減少次目錄的加總喔!

-k :以 kbytes 列出容量顯示;

-m :以 mbytes 列出容量顯示;

3. ln建立檔案鏈結

ln [-sf] **檔案 目標檔案

選項與引數:

-s :如果不加任何引數就進行鏈結,那就是hard link,至於 -s 就是symbolic link

-f :如果 目標檔案 存在時,就主動的將目標檔案直接移除後再建立!

新建目錄時link數量一般為2,而上層目錄的 link 數則會增加 1,比如/tmp/test有/tmp/test與/tmp/test/.兩個link,而對上層目錄來說,增加了link/tmp/test/..

4. fdisk 磁碟分割槽(分割槽2tb以上用parted)

fdisk -l檢視當前磁碟分割槽資訊

fdisk 磁碟: 進入磁碟分割槽管理系統

5. mkfs 磁碟格式化

mkfs [-t 檔案系統格式] 裝置檔名

選項與引數:

-t :可以接檔案系統格式,例如 ext3, ext2, vfat 等(系統有支援才會生效)

6. mke2fs 更細化的磁碟格式化

選項與引數:

-b :可以設定每個 block 的大小,目前支援 1024, 2048, 4096 bytes 三種;

-i : inode的大小

-c :檢查磁碟錯誤,僅下達一次 -c 時,會進行快速讀寫測試; 如果下達兩次 -c -c 的話,會測試讀寫(read-write),會很慢~

-l :後面可以接標頭名稱 (label)

-j :本來 mke2fs 是 ext2 ,加上 -j 後,會加入 journal 而成為 ext3。

7. fsck 來檢驗檔案系統是否出錯

8. badblocks 檢查硬碟或軟盤扇區有沒有壞軌

9. mount,unmount磁碟掛載與卸除

注意:1) 單一檔案系統不應該被重複掛載在不同的掛載點(目錄)中;

2) 單一目錄不應該重複掛載多個檔案系統;

3) 要作為掛載點的目錄,理論上應該都是空目錄。如果非空,則掛載後原有的檔案將被隱藏起來。

10. mknod 修改檔案系統的資訊,如主要裝置**,次要裝置**等

11. e2label 修改檔案系統標頭

12. tune2fs 修改檔案系統為ext2,ext3,ext4等

13. hdparm 硬碟為ide介面時設定一些引數

14. 可以用mkswap來將大檔案建立為swap檔案,並用swapon, swapoff 開啟或關閉swap file來實現虛擬記憶體。

小技巧,可以用dd if=/dev/zero of=/tmp/swap bs=1m count=128來建立大檔案。

深入學習Linux之Linux中的檔案系統管理

主分割槽1 dev sda1 主分割槽2 dev sda2 主分割槽3 dev sda3 擴充套件分割槽 dev sda4 邏輯分割槽1 dev sda5 邏輯分割槽2 dev sda6 邏輯分割槽3 dev sda7 主分割槽1 dev sda1 擴充套件分割槽 dev sda2 邏輯分割槽1 d...

Linux 學習「linux磁碟與檔案系統管理」

檔案系統一般將許可權與屬性放到inode中,將資料放到data block中 inode 記錄檔案的屬性,乙個檔案占用乙個inode,同時記錄此檔案的資料所在的block號碼 block 實際記錄檔案的內容,若檔案太大會占用多個block ext2是索引式的檔案系統,u盤則是fat,並沒有inode...

Linux基礎學習筆記之 磁碟與檔案系統(二)

現在我們知道磁碟的整體資料是在superblock區塊中,但是每個個別檔案的容量則在 inode 當中記錄的。那如何在文字介面底下顯示出這些資料呢?2.1.1 df root server df ahikhtm 目錄或檔名 選項與引數 a 列出所有的檔案系統,包括系統特有的 proc等檔案系統 k ...