天天看點

[RHEL5系統管理攻略]--第2章 磁盤與檔案系統管理

      RHEL中可能有成千上萬的檔案必須要存儲在磁盤中;對系統管理者而言,如何管理好磁盤與檔案系統,也是一門必備的學問。本章我們一起來學習RHEL的磁盤與檔案系統必備的知識與技術。

2.1 磁盤的管理

2.1.1 動态磁盤參數

      每一個磁盤都會提供一些參數,通過磁盤的參數,可以修改磁盤的結構與功能。檢視磁盤的參數,可以使用hdparm :

        hdparm device ...

      下面我們來查詢/dev/hda磁盤參數:

      hdparm除了可以用來檢視磁盤的參數外,還可以用來設定磁盤的參數:

        hdparm [options...] device

      常用的options如下表所示:    注:下表在最後附件中有下載下傳!

        下面使用hdparm設定/dev/hda DMA狀态的例子:

① /dev/hda開啟了DMA功能。

② 使用hdparm關閉/dev/hda的DMA。

③ 再次檢視是否關閉了/dev/hda的DMA。

2.2 管理分區

     在RHEL系統中,有幾項工具來管理磁盤中的分區。

fdisk :  這是最廣為人知的分區管理工具。fdisk使用交談的方式,來進

           行分區管理的工作。

sfdisk :  其實是fdisk姊妹産品,隻是fdisk是以交談的方式管理分區

           的;而sfdisk則是以指令列的參數方式來管理我們的分區。

parted :  這是GNU計劃中分區編輯工具。與fdisk和sfdisk相比,parte

           -d還允許調整分區的大小。

    下面我僅以常用的fdisk作為分區管理工具來學習。

1、fdisk的文法:

         fdisk簡單文法為:

         fdisk   device

    上面的device為要管理分區的硬碟裝置檔案名。

     fdisk是一個互動式(Interactive)的分區管理工具,也就是在執行fdisk指令後,必須輸入fdisk所提供的指令,fdisk才會執行指定的動作,fdisk執行後可使用的指令如下表所示:  注:下表在最後附件中有下載下傳

下面來看看執行fdisk的例子:

① 執行fdisk時,沒有指定參數,則顯示其簡短的使用說明。

① 執行fdisk /dev/hda 時,以便于利用fdisk 管理/dev/hda。

② 執行fdisk期間,若不清楚該下一步輸入什麼指令,則輸入m,就會顯

   示fdisk的指令清單。

③ 輸入q指令,則為退出且不儲存。

2、檢視分區

    檢視某一個硬碟的分區資訊,用兩種方式:

⑴ 執行fdisk後,再輸入p指令。

⑵ 在shell中直接執行fdisk -l 指令。

① 執行fdisk查詢。

② 使用p指令,顯示/dev/hda磁盤的分區表。

① 直接使用fdisk查詢/dev/hda磁盤的分區表。

        當檢視分區資料時,fdisk會先顯示下面的資訊,此為該磁盤的基本資訊。

① 硬碟的裝置名稱。

② 硬碟的實際大小。

③ 該硬碟有多少個磁面。

④ 該硬碟每個磁道有多少個扇區。

⑤ 磁柱的數量。

⑥ 每一個磁柱的大小,也可以視為分區資料表中每一個機關的大小。

3、添加分區

     若要在一個磁盤上生成一個新的磁盤分區,可以在fdisk中使用n指令來添加磁盤分區。此時要提供下面兩項資訊。

⑴ 分區開始的磁柱編号。

⑵ 分區擁有的磁柱數量。

     下面來用fdisk指令添加一個100MB的分區的例子:

① 執行fdisk /dev/hda,便于fdisk管理/dev/hda。

② 查詢目前有哪些分區。

① 使用n指令,添加一個擴充分區。

② 再輸入e,即為extended。

③ 輸入該分區開始的磁柱編号。此處沒有指定開始磁柱編号,而是回

   車,意即為第一個可用的磁柱。也就是預設值1491。

④ 輸入該分區的結束磁柱編号,此處也是回車,也就是預設值5221。

① 使用p指令,顯示/dev/hda磁盤的分區表。

② 驗證了此分區是擴充分區。

① 使用n指令,在擴充分區中建立一個邏輯分區。

② 輸入該分區開始的磁柱編号。此處沒有指定開始磁柱編号,而是回

   車,意即為第一個可用的磁柱。也就是預設值1504。

③ 輸入該分區的結束磁柱編号,此處輸入:+100M後,再回車。

    分區的大小可以直接指定:

⑴ +size:  直接指定分區使用size個磁柱。

⑵ +sizek:  直接指定分區為size kB。

⑶ +sizeM:  直接指定分區為size MB。

    注:若直接指定分區大小,一定要記得加上“+”這

個符号,否則fdisk将自動視為磁柱編号。若沒有指定分區的大小,fdisk也會自動以可用磁柱的最後一個作為預設值。

④ 使用p指令,顯示/dev/hda磁盤的分區表。

⑥ 驗證了是否生成了正确的分區。

  思考:如何添加一個分區為100MB,結果為⑤所示的分區。

① 因為我們修改了分區資料表的内容,則必須使用w指令來将修改的數

  據寫入到磁盤中。

② 此處提示我們要重新啟動系統,讓剛剛生成的分區生效。

4、删除分區

     fdisk中的d指令來删除分區,在此之前一定要确認該分區沒有重要資料,否則分區一經删除,該分區的上的檔案可能就無法搶救。

      下面來使用fdisk指令删除分區:

① 裝置名為/dev/hda6 。

① 輸入d指令,告之fdisk要删除某一個分區。

② 輸入要删除的分區編号,此處僅需輸入号碼即可。

③ 使用p指令,顯示/dev/hda磁盤的分區表。

④ 驗證是否真的删除了/dev/hda6 。

① 最後當然是要儲存且重新開機RHEL5,以便更新分區資料表。

5、修改分區系統辨別符

     不同的分區可以存儲不同的作業系統的檔案資料,是以,每一個分區還得記錄這個分區上存儲的是哪一種檔案系統(File System)。這個用來記錄分區用途的資訊,我們稱之為分區系統辨別符(Partition systemId)。目前的分區系統辨別符是一個16進制的數值,如果想要知道fdisk工具支援哪些分區辨別符,可以在fdisk中使用l指令,列出目前使用的fdisk支援的所有分區辨別符清單。

      初看上面這麼多系統辨別符,其實常用的沒有幾個。如下表所示:

         修改分區的系統辨別符,先執行fdisk後,再輸入t指令進行修改。

      下面我們來看看如何修改分區系統辨別符:

① 此處的/dev/hda5這個分區的系統辨別符是83,系統是Linux 。

① 執行t指令。

② 指定要修改的分區編号。

③ 直接指定新的系統辨別符是82。

④ fdisk提示新的辨別符資料已經修改為82(Linux swap/Solaris)。

⑤ 驗證系統辨別符确實變成了82。

⑥ 最後儲存且重新開機RHEL5後,則生效。

2.3  Linux常見的檔案系統

     目前的Linux核心支援了數十種檔案系統,分類為:

⑴ Linux 專用檔案系統

     針對RHEL執行所需的環境量身打造的,歸類為“Linux 專用檔案系統”。

⑵ 支援其他平台的檔案系統

      為了讓RHEL可以直接調用其他系統的檔案,RHEL也提供一些其他平台的檔案系統,如:msdos、vfat、ntfs、udf等。

⑶ 系統運作類的檔案系統

        為了滿足RHEL的特殊功能而設計的,此類稱之為“系統運作類的檔案系統”。常見的有:procfs、devfs、tmpfs等。

⑷ 網絡檔案系統

       通過網絡調用另外一台PC的磁盤空間的檔案系統,統稱為網絡檔案系統。常見的有:NTFS、smbfs、AFS等。

2.4  制作檔案系統

      若磁盤沒有提供檔案系統,則RHEL就無法通過檔案系統使用磁盤空間。是以,要使用磁盤空間,就必須在該磁盤空間上建立檔案系統(Make File System)。

       在制作檔案系統過程中,會破壞原先磁盤中的檔案系統資料,将使原先檔案系統中的檔案全部消失。故,在制作檔案系統之前,确認磁盤空間中沒有重要的資料。否則,損失就大了,請務必特别小心。

        制作檔案系統前必須準備下面兩項内容:

一個磁盤空間:制作檔案系統是以磁盤空間為機關的,必須要準備好一個磁盤空間,才能在上面制作檔案系統。

決定要制作成為何種檔案系統:必須在開始制作檔案系統前,先決定好要在該磁盤上建立何種檔案系統。

        在RHEL中制作檔案系統,使用mkfs指令,文法如下:

         mkfs  [-t  fstype]  [device]  [blocks]

          下面我們來使用mkfs制作/dev/hda5的檔案系統:

① 用mkfs将/dev/hda5制作檔案系統,此處沒有加任何參數,故mkfs采用預設值ext2檔案系統且為hda5所有空間。

① 加了-t  msdos參數,在/dev/hda5上建立msdos檔案系統了。

2.5  挂載檔案系統

    在RHEL中,整個系統隻會有一個根目錄,不允許有第二個以外的根目錄。故要在RHEL系統中使用某個磁盤空間的根目錄與其中所有檔案,就必須将該檔案系統挂載到檔案系統的某一個目錄下。

      挂載檔案系統的指令是 mount,文法如下:

       mount [-a]

或者

       mount [-t  fstype] [-o  mount_options] [-device] [mount_pointer]

      執行mount時,沒有指定參數,則表示要檢視目前的挂載資料表。mount常用參數見下表:

     好啦,我們來看看如何使用mount指令:

① 建立/mnt/tmp/目錄,作為挂載點。

② 檢視/mnt/tmp/的内容,目前為空的,表示沒有任何檔案資料。

③ 使用mount指令,将/dev/hda5分區的檔案系統挂載到/mnt/tmp/ 。

④ 再次檢視/mnt/tmp/,結果顯示有一個lost+found的目錄,即存放在/dev/hda5分區中的檔案系統。

2.5.1  挂載資料表

        如何才能知道RHEL共挂載了哪些檔案系統?其實非常簡單,直接使用mount指令,不加任何參數即可。

由上述資料,可知是以下列的格式顯示檔案系統的挂載資訊。

    device  on  mount_pointer   type  fstype  (mount_options)

    其中的每一個字段說明如下:

⑴ device :  檔案系統的裝置檔案名。若device顯示為

                   none :  則表示不是實體的磁盤空間。

⑵ mount_pointer :  挂載點的路徑名稱。

⑶ fstype :  檔案系統的類型。

⑷ mount_options :  挂載時的參數。

    除此之外,每挂載一個檔案系統的時候,RHEL會自動将挂載的資訊加入到/etc/mtab檔案中;而解除安裝一個檔案系統時,RHEL也會自動删除/etc/mtab中相關的記錄。是以,另一種檢視目前檔案系統挂載資訊的方法,就是直接讀取/etc/mtab檔案。

        不過,/etc/mtab會以/etc/fstab檔案的格式顯示目前的挂載資訊。

2.5.2  挂載參數

      使用mount挂載檔案系統時,可以指定挂載的參數來修改檔案系統的功能。挂載參數分為:共享挂載參數和檔案系統特定的挂載參數。

1、共享挂載參數

      共享挂載參數可以用在任何檔案系統上,而且大部分是兩兩一組,同一組的參數通常是互斥的;也就是說如果你使用了其中一個,就不能使用同一組的另外一個參數。例如:ro/rw就是一組共享挂載參數,若使用ro,就不能使用rw 。

          另外,有一個名為defaults的共享挂載參數,即使用mount時沒有加任何參數,defaults這個挂載參數等于rw、suid、dev、exec、auto、nouser、async幾個參數的組合。

2、檔案系統特定挂載參數

      它僅适用于某檔案系統,我們稱之為檔案系統特定挂載參數。

3、指定與修改挂載參數

      改變檔案系統參數有兩種方式:

⑴ 執行mount時,直接指定 -o  mount_options參數。

⑵ 使用mount  -o  remount,mount_options修改挂載參數。

     方法⑴:僅适用新挂載檔案系統時,若已經挂載,則先解除安裝,再使用方法⑴重新挂載一次;

   方法⑵:不需要解除安裝,直接修改檔案系統的挂載參數。

   下面來舉一個例子,修改挂載參數:

① 使用mount指令,直接把/dev/hda5挂載到/mnt/tmp/目錄中,因未指定參數,故使用defaults作為挂載參數。由于defaults包含rw,是以/dev/hda5應為可讀可寫的。

② 驗證/dev/hda5是否為rw的狀态。顯然是。

③ 當使用touch /mnt/tmp/file1時,沒有報錯資訊,說明已經順利建立了/mnt/tmp/file1 。

④ 解除安裝/dev/hda5檔案系統後,再使用mount挂載/dev/hda5到/mnt/tmp/中。此時參數為ro,是以/dev/hda5的讀寫狀态是隻讀取的。

⑤ 果然,挂載資料表中顯示的的确是ro

⑥ 試着生成/mnt/tmp/file2檔案,RHEL告訴我們這是一個隻讀檔案系統,當然無法生成/mnt/tmp/file2檔案了。

⑦ 那我們就用mount -o remount 的技巧,在不解除安裝/dev/hda5的情形下,直接修改/dev/hda5的挂載參數再度成為可讀可寫。

⑧ 修改後,/dev/hda5的挂載參數就變成了rw

⑨ 當然,/mnt/tmp/file3就可以被生成出來了。

<a href="http://down.51cto.com/data/2352404" target="_blank">附件:http://down.51cto.com/data/2352404</a>

繼續閱讀