linux的文件系統管理是重點也是難點,知識點很多。大概分成4個部分進行講解:linux文件系統的構成、設備掛載、分區與格式化原理、磁盤配額。
一、文件系統構成
文件系統構成首先應該掌握linux有哪些目錄,這些目錄有些什么用


在大概了解了一些重要的目錄情況之后,接著介紹幾個文件系統命令:
(1)df 查看分區使用情況
df -h 以M單位顯示內容

(2)du 查看文件目錄大小
du -h 以M單位顯示大小
du -sh 查看目錄大小要加上s(
statistics)

(3)fsck 文件系統檢測修復命令file system check
fsck -p 自動修復
fsck -y 回答yes的修復
(4)file 判斷文件類型命令
file 文件
二、設備掛載
首先要知道設備一般分兩種,一種是塊(block)設備,一種是字符設備(char)。通過下圖ls查看的第一個字母可知。

(1)光驅掛載

通常建議在mnt目錄下創建目錄進行掛載,因為mnt是文件系統的臨時掛載點。
光盤卸載使用 umount 掛載點 有時候會提示忙,因為你的當前目錄可能在掛載點中,所以可以用eject彈出光盤。
(2)U盤掛載
三、添加硬盤分區并格式化 首先在設置里給虛擬機添加一塊硬盤

然后重啟或者開機,開機以后通過
dmesg | grep sdb查看下關于新硬盤的信息就知道成功識別了沒有。從提示信息的unkonwn partition table 可知沒有分區表。接下來就是進行分區。分區要使用的命令就是fdisk
(1)fdisk 硬盤分區
fdisk -l /dev/sda 查看第一個硬盤的分區信息及
其他硬盤相信信息 直接輸入fdisk /dev/sdb 即開始對sdb即第二個硬盤進行分區并進入分區程序命令行。輸入m可以得到幫助如下:

看到上面的幫助,p為顯示分區表。n添加新的分區。那么我們輸入n,然后就會提示你新添加的分區是主分區p還是拓展分區e,先輸入p表示我們創建的是主分區然后要你輸入分區號(1-4),我們輸入1。然后接著要你輸入該分區起始和終止的柱面,起始用默認1就可以了,但是終止如果只分一個區,那么默認的也可以。但我們不只分一個區,所以我們需要計算該分區終止柱面以便給下一個分區留出空間。

但是填寫柱面數,我們很難計算柱面與大小的對應關系。根據提示知道,可以使用+sizmM或+sizeK的方式設置第一個分區大小。那我們給2G,輸入+2048M回車即可。然后通過p查看可知第一個分區已經出現。另外主分區和擴展分區有什么區別?

接著把剩下的大小也分一個主分區就可以了。(當然想分幾個自己看著辦)默認新添加分區的類型根據linu
x版本不同而不同,centOS5.5默認是ext3。那如果我們想更改這個文件系統的類型應該使用t。如果對已分區的不滿意可以用d刪除分區。如果已經滿意的,輸入w保
存退出,q是不保存退出。

(2)mkfs 格式化部署文件系統(mkfs.ext3)
mkfs.ext3 /dev/sdb1 就可以直接格式化sdb1這個分區了
(3)硬盤掛載
在創建分區和格式化分區以后,接著就要掛載硬盤并使用了。首先創建兩個目錄,用來對應這兩個分區。我創建/bak和/web,然后通過mount命令進行掛載。
mount /dev/sdb1 /web以及mount /dev/sdb2 /bak
但是通過mount命令掛載的在重啟以后就會失效,那么讓它永久有效呢?這就要用到/etc/fstab這個配置文件了。用vi打開配置文件如下:

格式是---物理分區名(卷標) 掛載點 文件系統類型 缺省設置 是否在引導時進行數據檢測 檢測順序
檢測順序就是設置的數據檢測的順序,一般有3個值分別是0、1、2,0表示不檢測,1表示優先檢測,2表示正常檢測。缺省設置是指定的掛載時候使用的掛載設置,大部分使用的default默認設置。下面我們把自己剛剛添加的硬盤添加進去。
/dev/sdb1 /web ext3 defaults 1 2
當然除了用物理分區名還可以使用卷標,首先使用e2label /dev/sdb2查看卷標名,如果為空說明沒有卷標。那么通過
e2label /dev/sdb2 datebak 來設置進卷標。
LABEL=datebak /bak ext3 defaults 1 2
(4)swap分區拓展
當你覺得swap分區的不夠用時,可以通過拓展swap分區來滿足要求。那如何拓展swap分區呢?首先要介紹一條指令叫做dd
1.dd
dd是一條拷貝指令,作用是用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。
dd if=input of=output 格式就是這樣,表示從if指定的input把信息拷貝到of指定的output中。
我們在做swap拷貝時,用dd if=/dev/zero of=/var/swap/file.swap bs=1024K count=64 從zero設備里面拷內容到file.swap文件中,以1M(1024k)為塊單位,一共拷貝64塊,及64M。這里需要說的是/dev/zero這個設備,其實這是一個偽設備,作用是不停的往外輸出0。與/dev/null這個偽設備相反,/dev/null就是不停的可以把垃圾信息往里面輸入,然后就沒有了(像黑洞一樣)。這樣就創建了一個64M大小內容全是0的file.swap文件。
然后通過mkswap /var/swap/file.swap 當然如果你不想永久的讓文件成為交換區而是根據需要動態開關,就不要修改配置文件,而是通過把該文件設置成交換區的一部分。然后在/etc/fastab的配置文件中修改配置文件加一行:/var/swap/file.swap swap swap defults 0 0 這樣系統開機就會自動加載這個swap文件,就使得該文件成功永久變成了swap分區的一部分。當然如果不想這個文件永久成為swap分區的一部分,而是想動態的根據需求來添加swap分區,可以使用swapon /var/swap/file.swap 或swapoff來對文件進行開關。

四、磁盤配額
試想,如果一個用戶的宿主目錄和系統目錄是在一個分區中,那么用戶在自己的宿主目錄通
過dd /dev/zero zerofile bs=1024k count=102400 的命令創建一個100G的文件,那么很有可
能就會把系統目錄分區脹滿,這樣許多臨時文件都沒法創建了,導致重新引導失敗。得知后果其
實是很嚴重的,那么其中一個解決這個問題的方法就是給用戶的分區進行磁盤配額限制。
(1)開啟分區磁盤配額功能
開啟的方法是在/etc/fstab文件中,在掛載屬性上加上標志usrquota(用戶配額),當然要記得重啟修改的配置才生效!

(2)建立配額數據庫
使用quotacheck -cvuga 命令會自動生成aquita.user和aquita.group兩個文件(這是用于對該分區進行配額管理的文件)。
1.quotacheck
-c 創建 ,-v 創建過程顯示信息,-u表示創建用戶配額文件,-g表示創建組配額文件,-a表示檢
測所有的系統分區
如果不是檢測所有的系統區就把-a去掉加上需要檢測的分區 quotacheck -cvu /web
(3)啟用配額功能
1.quotaon 分區名稱 開啟
2.quotaoff 分區名稱 關閉
(4)編輯用戶配額信息
使用edquota 用戶名 就可以進入來編輯該用戶的配額信息。edquota mysileng可以看到因為我們開啟了一個分區的配額功能所以配置文件里面有了一行。

這就是mysileng用戶的配額分配頁,因為我們只開啟了一個配額分區功能,那么就只有一行信息。filessystem就是分區,blocks是塊單位是1k,soft是軟性限制,hard是硬性限制。軟性限制是在超出限制后會給出警告,并在7天之內刪除超出的部分。硬性限制是在超出時候給予錯誤的提示。inode與blocks類似,只是限制inode節點數而不是大小。

我們把block的hard改成100M即102400即可。保存退出就可以了。然后通過repquota -a可以查看所有用戶的配額信息,repquota 分區可以查看該分區配額信息。quota 用戶名查看用戶配額信息。edquota -t 設置soft的寬限期。 edquota -p 模板用戶 復制用戶1 復制用戶2 就可以把模板用戶的配額信息復制給復制用戶。