5.9. Red Hat Enterprise Linux 的特定資訊
摘要:5.9. Red Hat Enterprise Linux 的特定資訊
5.9. Red Hat Enterprise Linux 的特定資訊
依照您過去系統管理經驗的不同,您對管理 Red Hat Enterprise Linux 儲存裝置可能駕輕就熟;也可能毫無所悉。這節將針對 Red Hat Enterprise Linux 的儲存管理,做進一步的討論。
5.9. Red Hat Enterprise Linux 的特定資訊
依照您過去系統管理經驗的不同,您對管理 Red Hat Enterprise Linux 儲存裝置可能駕輕就熟;也可能毫無所悉。這節將針對 Red Hat Enterprise Linux 的儲存管理,做進一步的討論。
5.9.1. 裝置命名方式
跟所有 Linux 類的作業系統一樣, Red Hat Enterprise Linux 使用裝置檔案,來存取所有硬體(包括硬碟)。然而,不同 Linux 與近似的作業系統間,對於儲存裝置的命名方式,就稍微有所不同。底下是 Red Hat Enterprise Linux 為裝置檔案命名的方式。

注意
Red Hat Enterprise Linux 裡的裝置名稱,都在開機時決定。
因此改變硬體的任何設定,都會在系統開機時,影響裝置的名稱。也因為如此,如果系統設定檔沒有正確更新的話,那麼檔案存取也會出問題。
5.9.1.1. 裝置檔案
在 Red Hat Enterprise Linux 中,所有磁碟裝置的代表檔案都位於 /dev/ 目錄底下。所有檔名的格式,都仰賴硬體的一些特點,以及設定方式。重點如下:
裝置類型
編號
分割區
5.9.1.1.1. 裝置類型
裝置檔案名稱的前兩個字母,指得是裝置的類型。以硬碟來說,以下兩種最為常見:
sd — SCSI 裝置
hd — ATA 裝置
要了解更多關於 ATA 與 SCSI 的訊息,請參閱第 5.3.2 節。
5.9.1.1.2. 編號
在這兩個字母後面接的是特定的編號。這編號從「a」開始,接下來是「b」,依此類推。因此,您系統上的第一個硬碟應該是 hda 或 sda。

提示
SCSI 可以連接許多裝置,單字母的編號方式並不夠用,因此超過 26 組裝置的話,必須再加一個字母。也就是說,第 1 台到第 26 台 SCSI 硬碟的編號為 sda 到 sdz,接下來的 26 台是從 sdaa 到 sdaz,依此類推。
5.9.1.1.3. 分割區
裝置檔案的最後一部分,則是阿拉伯數字,從「1」開始,代表硬碟上某一特定的分割區。這數字可能是一位或兩位數,端看硬碟上有多少分割區。一旦您知道這些檔案的命名方式後,就很容易了解它們的含意。底下是些例子:
/dev/hda1 — 第一台 ATA 硬碟的第 1 個分割區
/dev/sdb12 — 第二顆 SCSI 硬碟的第 12 個分割區
/dev/sdad4 — 第三十顆 SCSI 硬碟的第 4 個分割區
5.9.1.1.4. 存取整個裝置
有時候我們需要存取整台裝置,而不是某個特定的分割區。通常這種情形發生在裝置尚未製作分割區,或不支援標準分割區(例如光碟機)的時候。在這些情形下,分割區的數字就可以省略:
/dev/hdc — 整個第三台 ATA 裝置
/dev/sdb — 整個第二台 SCSI 裝置
然而,大部分硬碟都使用分割區(欲知更多 Red Hat Enterprise Linux 的分割區資訊,請參閱第 5.9.6.1 節)。
5.9.1.2. 其他的裝置檔案命名方式
由於新增或移除儲存裝置,會導致現有裝置的檔案名稱跟著變動,所以當系統重開機之後,可能會面臨儲存裝置無法存取的命運。底下一連串動作,就有可能導致這樣的結果:
系統管理者加裝一張 SCSI 控制卡,並在上面接了兩顆新的硬碟(現有的 SCSI 卡已經接滿了)。
舊的 SCSI 硬碟(包括卡上接的第一顆硬碟 /dev/sda)不做任何更動。
重開機
因為新 SCSI 介面卡上的第一顆硬碟叫做 /dev/sda,所以先前叫做 /dev/sda 的 SCSI 硬碟得有個新名字
理論上,這聽起來是個大問題;不過事實上不會那麼嚴重。第一,這種硬體變動很少出現。第二,系統管理者多半會停機一陣子,好更動系統;停機時間需要事先仔細規劃,以免超出預計的時間,影響正常運作。這事先規劃的好處,則是讓管理者評估任何裝置名稱改變,可能帶來的問題。
然而,有些企業與系統設定就可能遇到這麻煩。常常更動儲存環境,以符合某些需求的公司,有時候就不容許任何停機時間。像「熱插拔(hotpluggable)」這種硬體就很容易安裝或移除;但在這種環境下,裝置的命名問題,就常常會帶來問題。幸好 Red Hat Enterprise Linux 的功能,可以降低這類問題發生的機會。
5.9.1.2.1. 檔案系統的標籤
有些檔案系統(這部份將在第 5.9.2 節討論)包含一組獨一無二的「標籤(label)」 — 用來分辨檔案系統所儲存的資料。當掛載檔案系統時,就可以利用這標籤,減低使用裝置名稱的需求。
檔案系統標籤用起來不錯;不過這標籤一定要獨一無二。如果同一台電腦裡,有兩個以上的重複標籤,您就沒辦法用這方式存取硬碟。同時要注意的是,有些系統設定並不使用檔案系統(例如某些資料庫),就不能享受標籤的好處。
5.9.1.2.2. 使用 devlabel
devlabel 指令會以另一種方式解決裝置的命名問題。Red Hat Enterprise Linux 開機時(以及使用者新增或移除熱插拔裝置時),會自動執行 devlabel。
devlabel 執行時,會從設定檔(/etc/sysconfig/devlabel)讀取裝置清單。每個清單上的裝置,都有個(由系統管理者所選定的)symbolic link,以及該裝置的 UUID(通用唯一識別碼,Universal Unique IDentifier)。
devlabel 指令能確保 symbolic link 永遠指向原始的裝置 — 即使裝置名稱改變也沒關係。這樣一來,系統管理者就能使用像 /dev/projdisk 之類的名稱,而不是 /dev/sda12。
因為 UUID 直接來自硬體,所以 devlabel 只要在系統中,尋找相符合的 UUID,並更新 symbolic link 即可。
要了解更多 devlabel 的資訊,請參閱《Red Hat Enterprise Linux 系統管理手冊》。
5.9.2. 檔案系統入門
Red Hat Enterprise Linux 支援多種常見的檔案系統,使用者能輕易地存取其他作業系統的檔案系統。
這在多重開機模式或轉移作業系統時,非常有用。
支援的檔案系統(但不僅限於此):
EXT2
EXT3
NFS
ISO 9660
MSDOS
VFAT
接下來,我們就為您深入介紹這些常見的檔案系統。
5.9.2.1. EXT2
時至今日,ext2 檔案系統一直都是 Linux 的標準檔案系統。Ext2 經過無數密集的測試,公認是當今最穩固的檔案系統之一。
然而,凡事沒有十全十美,ext2 也不例外。如果之前沒有正常關機,那麼系統得花很長的時間,檢查檔案系統的完整性,這也是被使用者最為詬病的地方。雖然這問題不是 ext2 獨有;但是 ext2 愈來愈普遍,硬碟空間也愈來愈大,這讓檢查時間過長。是 ext2 該轉型的時候了。
接下來我們將看看,Red Hat Enterprise Linux 是怎麼解決這個問題的。
5.9.2.2. EXT3
Ext3 檔案系統承襲 ext2 的優良血統,但另外加入了日誌(journaling)功能。有了這日誌功能後,ext3 得以將檔案系統保持穩定一致的狀態,降低冗長的檢查時間。
所有檔案系統的更動,都會在硬碟中保持一份日誌紀錄,同時每隔一段時間,系統就會定期清除這日誌。如果系統不正常關機(例如斷電或當機),那麼在讓檔案系統正常運作前,系統只要把日誌中的內容處理一遍即可;這步驟通常只需要一秒鐘。
因為 ext3 的資料格式完全來自於 ext2 ,所以只支援後者的系統,也可以直接讀取 ext3 的資料(但是日誌功能無法使用)。這對 ext2 與 ext3 兩種檔案系統並存的企業來說,非常有用。
5.9.2.3. ISO 9660
1987 年,國際標準組織(ISO,International Organization for Standardization)制定了 9660 標準,其中定義了光碟片所使用的檔案系統。使用 Red Hat Enterprise Linux 的系統管理者會在兩個地方看到這檔案格式:
CD-ROM
包含 ISO 9660 格式的檔案(通常指的是「ISO映像檔」),也就是要寫到 CD-R 或 CD-RW 的檔案。
跟其他先進的檔案系統比起來,ISO 9660 功能非常陽春:檔名最多只能有八個字母,而附屬檔名只能有三個字母。不過近幾年來,幾種延伸標準愈來愈風行,其中包括了:
Rock Ridge — 使用 ISO 9660 未定義的欄位之後,這格式讓使用者可以使用長檔名、大小寫、symbolic link、以及多重目錄(也就是在目錄中還可以有其他目錄)
Joliet — ISO 9660 標準的延伸格式,以 Unicode 字集來儲存檔名,也支援長檔名功能。這格式是由微軟(Microsoft)所發展。
Red Hat Enterprise Linux 不但認得 ISO 9660 ,也可以正確解讀 Rock Ridge 與 Joliet 格式。
5.9.2.4. MSDOS
Red Hat Enterprise Linux 也支援其他作業系統的檔案格式。正如字面上的意思,這檔案系統是微軟 MS-DOS® 的原創格式。Red Hat Enterprise Linux 跟 MS-DOS 一樣,受限於 8.3 的檔案長度。同時,使用者也無法設定一些檔案屬性,諸如存取權限與所有權等等。然而,從檔案互通有無的觀點來看,msdos 已經夠用了。
5.9.2.5. VFAT
vfat 檔案系統最早出現於微軟的 Windows® 95,脫胎自 msdos 格式。vfat 支援長檔名;但仍不支援檔案存取權限與所有權等功能。
5.9.3. 掛載檔案系統
要存取任何檔案系統前,一定得先「掛載(mount)」才行。只有在掛載成功後,才能讓 Red Hat Enterprise Linux 連接到某個分割區(或裝置)。同時,如果您不想再使用某個檔案系統,也必須「卸載(umount)」它。
要掛載任何檔案系統,您必須提供兩項資訊:
能分辨某個磁碟與分割區的敘述,例如裝置檔案名稱、檔案系統的標籤、或 devlabel-symbolic link
欲將檔案系統掛載到哪個目錄去(這目錄稱為「掛載點(mount point)」)
底下將為您詳細討論掛載點
5.9.3.1. 掛載點
除非您之前用過 Linux(或與 Linux 類似)的作業系統,否則第一次看到掛載點這個名詞,可能會覺得奇怪。不過,掛載點是管理檔案系統的利器,功能強大且、富有彈性。跟其他作業系統搭配後,加上完整的檔名規格、這些檔案所在的目錄結構、以及分辨檔案所在的實體裝置後,您就可以輕易地找到檔案。
而 Red Hat Enterprise Linux 則稍微有點不同。跟其他作業系統一樣,檔案名稱格式包括了檔名以及目錄;但是,卻不包括裝置名稱。
這缺點明顯來自掛載點。在其他作業系統上,每個分割區都有自己的目錄結構。然而在 Linux 類的作業系統上,整台電腦只有「一個」目錄結構,而這目錄結構可以橫跨多個分割區。這關鍵就在掛載點。當某個檔案系統被掛載之後,它就相當於掛載點下的一個目錄。
這裡所謂的缺點,事實上是個優點。這表示您可以任意擴張您的 Linux 檔案系統,每個目錄都可能成為一個掛載點,連接更多的硬碟空間。
舉個例子來說,假設 Red Hat Enterprise Linux 的根目錄底下,有個 foo 目錄,那麼完整的路徑就是 /foo/。接下來,您建立了一個分割區,並掛載到 /foo/。如果這分割區上的根目錄裡,有個檔案叫做 bar.txt,那麼掛載後要存取這個檔案,完整的路徑就像這樣:
/foo/bar.txt
換句話說,只要掛載了分割區後,任何針對 /foo/ 目錄的讀寫動作,都會讀自(或寫入)這個分割區。
Red Hat Enterprise Linux 上最常見的掛載點是 /home/ — 所有使用者的家目錄都位於這個目錄中,如果將 /home/ 視為一個掛載點,所有使用者的檔案都會存在另外的分割區中,即使塞滿了,也不會影響到作業系統的正常運作。

提示
由於掛載點只是一個平常的目錄,所以您可以將檔案寫進一個普通的目錄,再把這目錄當成掛載點。不過這樣一來,原先在目錄中的檔案,會變成什麼樣子呢?
如果您把某個分割區掛載到這個目錄上,您就無法存取原有的檔案(因為分割區取代了原有目錄的地位)。不過,這些檔案依舊存在,只要您卸載了分割區,那又可以存取原先的檔案。
5.9.3.2. 看看到底掛載了什麼
除了掛載與卸載之外,您還可以看看系統上到底掛載了什麼東西。底下有幾種方式:
檢視 /etc/mtab
檢視
/proc/mounts
使用 df 指令
5.9.3.2.1. 檢視 /etc/mtab
/etc/mtab 是個普通的文字檔,不管是掛載或是卸載,都由 mount 程式負責更新。底下是 /etc/mtab 的例子:
/dev/sda3 / ext3 rw 0 0
none /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/sda1 /boot ext3 rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sda4 /home ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

注意
/etc/mtab 只用來顯示目前已經被掛載的檔案系統狀態;您不該修改這個檔案。
每一行代表一個被掛載的檔案系統,從左至右包含以下欄位:
裝置規格
掛載點
檔案系統類型
這系統是以唯讀(ro)或可讀寫(rw)方式掛載,外加其他掛載選項
最後是兩個沒有用到的欄位,數值皆為零(這是為了跟 /etc/fstab[1] 相容)
5.9.3.2.2. 檢視
/proc/mounts
/proc/mounts 是 proc 虛擬檔案系統的一部分。跟其他
/proc/ 目錄底下的檔案一樣,mounts 這個「檔案」並不存在於任何 Red Hat Enterprise Linux 的硬碟上。
事實上,它根本就不是個檔案,而是 Linux 核心所提供的系統狀態;只不過看起來是以檔案型態呈現而已。
使用 cat /proc/mounts 指令,我們可以看到所有已經掛載的檔案系統,以及它們的狀態:
rootfs / rootfs rw 0 0
/dev/root / ext3 rw 0 0
/proc /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/sda1 /boot ext3 rw 0 0
none /dev/pts devpts rw 0 0
/dev/sda4 /home ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
跟之前的例子對照,您會發現
/proc/mounts 跟 /etc/mtab 非常類似。其中有幾個檔案系統跟硬碟沒有任何關係,包括
/proc/ 檔案系統本身(外加兩個掛在
/proc/ 下的檔案系統)、虛擬終端機(pseudo-tty)、以及共享記憶體(shared memory)。
說實話,這格式一點都不具親和力;但
/proc/mounts 檔案的資料全部來自核心,您可以 100% 確定 Red Hat Enterprise Linux 到底掛載了那些東西。在某些情形下,其他方法所提供的資訊,可能不盡正確。
然而,您可能更想要下指令,看看清晰易懂的報表。接下來我們就為您介紹這個指令。
5.9.3.2.3. 使用 df 指令
不管是 /etc/mtab 或
/proc/mounts 檔案,都能讓您了解電腦掛載了哪些檔案系統;但除此之外,作用實在不大。通常,您可能更想知道檔案系統的某項資訊 — 像每個掛載點裡面還有多少剩餘空間。
像這個時候,您就可以使用 df 指令。底下是使用 df 指令的例子:
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/sda3 8428196 4280980 3719084 54% /
/dev/sda1 124427 18815 99188 16% /boot
/dev/sda4 8428196 4094232 3905832 52% /home
none 644600 0 644600 0% /dev/shm
很明顯,其中有幾個欄位是 /etc/mtab 與
/proc/mount 所沒有的:
簡單而清晰的表頭
只會顯示磁碟類的檔案系統;但分享記憶體的檔案系統除外
顯示總大小、已使用空間、可用空間、以及已使用空間的百分比
對系統管理者來說,最後一部分可能是最重要的,因為系統遲早會面臨磁碟空間不夠的窘境。使用 df 指令,可以很容易地找出問題所在。
5.9.4. Red Hat Enterprise Linux 中的網路存取儲存技術
Red Hat Enterprise Linux 中,主要支援兩種網路存取儲存技術:
NFS
SMB
底下將為您介紹這些技術。
5.9.4.1. NFS
正如網路檔案系統(NFS,Network File System)的字面意思,這技術可以讓電腦系統透過網路,存取其他的檔案系統。其他檔案系統一定得直接連在本機電腦上;但 NFS 就沒這個限制,可以支援多種設定,從中央控管的檔案伺服器,到無磁碟電腦系統都有。
然而跟其他檔案系統不同的是,NFS 並不囿於某種特定的檔案系統。相反地,它使用 NFS 伺服器上作業系統的檔案系統,進行 I/O 的讀寫動作。NFS 會將這檔案系統分享出來,讓其他安裝 NFS 用戶端的電腦,都能存取資料。
雖然 NFS 是 Linux 與 UNIX 上的技術,但您可以在多種作業系統上找到 NFS 用戶端程式。也因此,要在不同平台間分享檔案,NFS 是確實可行的技術。
NFS 伺服器所分享的檔案系統,都記載在 /etc/exports 檔案中。欲知更多詳情,請參閱 exports(5) 說明文件,以及《Red Hat Enterprise Linux 系統管理手冊》。
5.9.4.2. SMB
SMB 是 Server Message Block(伺服器訊息區)的縮寫,也是多年來,微軟作業系統所使用的通訊協定。SMB 可以讓使用者在網路上分享資料。早先 SMB 使用 NetBEUI 作為下層的傳輸協定,現在則改用 TCP/IP。
Red Hat Enterprise Linux 使用 Samba 伺服器軟體,支援 SMB。您可以在《Red Hat Enterprise Linux 系統管理手冊》中,找到設定 Samba 的資料。
5.9.5. 利用 /etc/fstab 自動掛載檔案系統
安裝完 Red Hat Enterprise Linux 之後,所有在安裝過程中定義、建立的分割區,都會在開機時自動被載入。然而,如果在安裝完成之後,您才加入新的分割區呢?答案是,「什麼都不會發生」。因為您沒設定開機時自動載入這些分割區。不過,這很容易修改的。
答案就在 /etc/fstab 檔案中。這檔案會紀錄開機時,系統該掛載哪些檔案系統;它也可以讓您隨時手動加入若干設定,讓開機時載入其他檔案系統。底下是 /etc/fstab 的範例:
LABEL=/ / ext3 defaults 1 1
/dev/sda1 /boot ext3 defaults 1 2
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/homedisk /home ext3 defaults 1 2
/dev/sda2 swap swap defaults 0 0
每一行都代表一個檔案系統,並包含以下資訊:
檔案系統識別資料 — 如果是磁碟類的裝置,那可能是裝置檔案名稱(/dev/sda1)、檔案系統標籤的識別資料(LABEL=/)、或是由 devlabel 所管理的symbolic link(/dev/homedisk)
掛載點 — 除了 swap 分割區外,這欄位列出檔案系統的掛載點(/boot)
檔案系統類型 — 列出硬體裝置上,檔案系統的類型(注意auto可以在掛載的時候,自動選擇檔案系統。這對可移除裝置,例如軟碟機等,特別有用)
掛載選項 — 這一串用逗號隔開的選項,是 mount 指令控制某些設定用的(noauto,owner,kudzu)
Dump 指令的頻率 — 如果您使用了 dump 這個備份公用程式,這欄位中記載的數字會控制 dump 對這檔案系統的處理頻率。
檔案系統檢查順序 — 這欄位控制了檔案系統檢查程式 fsck 檢查檔案系統完整性的順序
5.9.6. 新增 / 移除儲存裝置
由於新增或移除的步驟,多半仰賴系統硬體,而非系統軟體,因此針對不同的作業環境,有不同的步驟。底下解釋在 Red Hat Enterprise Linux 下,新增或移除儲存硬體的必要步驟。
5.9.6.1. 新增儲存裝置
在 Red Hat Enterprise Linux 中新增儲存空間非常簡單,底下是新增的步驟:
製作分割區
將分割區格式化
更新 /etc/fstab
在接下來的章節中,我們將為您詳細解說這些步驟。
5.9.6.1.1. 製作分割區
硬碟安裝完成後,該是製作分割區,好讓 Red Hat Enterprise Linux 使用磁碟空間的時候了。
製作分割區有以下幾種方式:
使用命令列的 fdisk 工具程式
使用另一個命令列的工具程式 parted
雖然這些工具不盡相同,但基本步驟是一樣的。我們將以 fdisk 指令,為您介紹這些步驟:
選擇新硬碟(您可以參考第 5.9.1 節,從中找出磁碟名稱的命名方式)。執行 fdisk 時,別忘了加入裝置名稱,如:
fdisk /dev/hda
檢視硬碟的分割表,確定您選擇了正確的硬碟。在 fdisk 的例子中,您可以輸入 p 檢視分割表。
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 1244 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 17 136521 83 Linux
/dev/hda2 18 83 530145 82 Linux swap
/dev/hda3 84 475 3148740 83 Linux
/dev/hda4 476 1244 6176992+ 83 Linux
刪除之前留下、又不打算繼續使用的分割區。在 fdisk 程式中,選 d。
Command (m for help): d
Partition number (1-4): 1
您可以重複這過程,直到所有沒用的分割區都被刪掉為止。
建立新的分割區,別忘了輸入分割區的大小與檔案類型。在 fdisk 裡,這包含兩個步驟 — 第一,建立分割區(使用指令 n):
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-767): 1
Last cylinder or +size or +sizeM or +sizeK: +512M
第二,設定檔案系統的類型(使用指令 t):
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
分割區類型 82 指得是 Linux 的 swap 分割區。
儲存變更,離開製作分割區的程式。在 fdisk 裡,輸入指令 w:
Command (m for help): w

警告
為新硬碟建立分割區時,「強烈建議」您再三確認要製作的是哪一顆硬碟。否則的話,如果您不小心動到目前正在使用中的硬碟,那會造成資料損毀。
同時,事前一定要決定最適當的空間大小。別小看這一步驟,因為防範甚於治療,事後要修改分割區大小,可不是件容易的事。
5.9.6.1.2. 將分割區格式化
Red Hat Enterprise Linux 將分割區格式化的工具是 mkfs。但事實上,mkfs 並不會寫入任何與檔案系統有關的資訊,而是將控制權交給其他幾支程式,讓這些程式建立檔案系統。
現在該是看看 mkfs.<檔案類型> 說明文件的時候了。舉例來說,mkfs.ext3 會告訴您建立 ext3 檔案系統時,有哪些選項可以用。一般來說,mkfs.<檔案類型> 提供了多種預設選項,可以符合大部分情形;不過有幾個選項,是系統管理者會更改的:
設定磁碟空間的標籤,這標籤稍晚會在 /etc/fstab 裡用到
在空間非常大的硬碟上,為 super-user 保留低比例的磁碟空間。
設定非標準的磁區空間,以及(或是)每個 inode 的位元組數量,以善用空間,支援非常大或非常小的檔案。
格式化以前,檢查是否有磁區壞掉
在分割區上建立好檔案系統之後,磁碟空間就可以用了。
接下來,最好能手動掛載分割區,確定一切運作妥當。只要萬事具備,您就可以設定 Red Hat Enterprise Linux 開機時,自動掛載新的檔案系統。
5.9.6.1.3. 更新 /etc/fstab
正如第 5.9.5 節所述,要讓系統開機時能自動掛載新的檔案系統,那得修改 /etc/fstab。改好以後,您可以用「不完整」的 mount 指令來測試,後面只接裝置名稱或掛載點,跟底下的範例差不多:
mount /home
mount /dev/hda3
(請把 /home 或 /dev/hda3 換成您電腦上的掛載點或裝置名稱。)
只要 /etc/fstab 設定正確,mount 指令會自動補齊缺少的部份,完成掛載動作。
這樣您就可以確定 /etc/fstab 設定正確,每次開機時系統也能自動掛載(如果您還是不放心的話,不妨重新開機測試看看)。
5.9.6.2. 移除儲存裝置
從 Red Hat Enterprise Linux 上移除儲存裝置也非常簡單,底下是適用於 Red Hat Enterprise Linux 的移除步驟:
移除 /etc/fstab 中的硬碟分割區
卸載硬碟上正在使用的分割區
刪除硬碟上的資料
底下我們將詳細討論這些主題。
5.9.6.2.1. 從 /etc/fstab 中移除硬碟的分割區
請打開您慣用的文書編輯器,從 /etc/fstab 中刪除有關硬碟的該行文字。您可以用以下的方法確定是哪一行:
檢查 /etc/fstab 裡的第二欄,看看分割區的掛載點與目錄是否相符
檢查 /etc/fstab 裡的第一欄,看看裝置檔案的名稱與檔名是否相符

提示
別忘了檢查 /etc/fstab 中,swap 分割區是否連接到要移除的硬碟上,如果是的話,記得一併刪除這一行:這是管理者常常忽略的地方。
5.9.6.2.2. 用 umount 終止存取動作
接下來,我們要終止所有存取該硬碟的動作。對於正在使用中的分割區,用 umount 指令卸載。如果 swap 分割區剛好位於這顆硬碟上,那可以用 swapoff 指令終止其運作,或重新開機。
要用 umount 指令卸載分割區,您必須輸入裝置檔案名稱,或是分割區的掛載點:
umount /dev/hda2
umount /home
非使用中的分割區,可以直接卸載。如果分割區在正常的執行等級(runlevel)中,無法卸載,那麼請以救援模式登入,移除 /etc/fstab 裡面,有關該分割區的資訊。
要使用 swapoff 指令切斷系統與 swap 分割區之間的動作,您得指名 swap 分割區的裝置檔案。
swapoff /dev/hda4
如果 swapoff 指令無法終止系統與 swap 分割區間的動作,那麼請以救援模式登入,移除 /etc/fstab 裡面,有關該分割區的資訊。
5.9.6.2.3. 移除硬碟的內容
使用 Red Hat Enterprise Linux 移除硬碟中的內容,是再簡單不過的事情。
卸載硬碟上的所有分割區後,請以 root 身份登入,執行以下指令:
badblocks -ws <device-name>
其中 <device-name> 表示您打算刪除的硬碟名稱,但不包括分割區的數字。例如 /dev/hdb 代表第二顆 ATA 硬碟。
執行 badblocks 之後,您可以看到以下結果:
Writing pattern 0xaaaaaaaa: done
Reading and comparing: done
Writing pattern 0x55555555: done
Reading and comparing: done
Writing pattern 0xffffffff: done
Reading and comparing: done
Writing pattern 0x00000000: done
Reading and comparing: done
請記得,badblocks 會在每個磁區中,寫入四份不同的資料。如果您使用的硬碟容量非常大,那會花上很長的時間 — 通常是幾個小時。

重要
許多公司(以及政府機關)對刪除硬碟及其他裝置上的資料,都有非常嚴格的規定。您「一定要」確定您了解並遵守這些規定;否則您可能會面對法律上的問題。以上的範例僅供參考,不該被視為移除硬碟資料的正式方法。
不過,這方法比使用 rm 指令更徹底,因為用 rm 刪除檔案時,檔案只是被標示為「已刪除」 — 檔案內容「並沒有」被刪掉。
5.9.7. 使用磁碟配額
藉由磁碟配額功能,Red Hat Enterprise Linux 能以使用者或群組為單位,紀錄磁碟使用狀態。我們將以底下章節,為您簡介 Red Hat Enterprise Linux 裡的磁碟配額功能。
5.9.7.1. 磁碟配額的兩三事
Red Hat Enterprise Linux 的磁碟配額有以下功能:
針對每個檔案系統做配額管理
紀錄每個使用者的空間
紀錄每個群組的空間
追蹤磁區的使用狀態
追蹤 inode 的使用狀態
Hard limits
Soft limits
寬限期
接下來我們將為您詳細介紹這些功能。
5.9.7.1.1. 針對每個檔案系統做配額管理
Red Hat Enterprise Linux 可以針對每個檔案系統做磁碟配額管理。換句話說,管理者可以為每個檔案系統啟用或停用磁碟配額管理。
這賦予系統管理者很大的彈性。舉例來說,如果 /home/ 目錄有自己的檔案系統,管理者可以在這檔案系統上啟用磁碟配額,讓每個使用者平均使用硬碟空間。然而根目錄是作業系統所在,就不需要施行檔案配額,以降低管理磁碟空間的複雜性。
5.9.7.1.2. 紀錄每個使用者的空間
磁碟配額可以針對每個使用者,紀錄其使用狀況。這表示每個使用者的空間,都會被獨立追蹤與計算。同時每個使用者的用量限制,也不盡相同(我們將在之後,為您詳細解說)。
追蹤、控管並限制磁碟空間等功能,賦予管理者更大的彈性。如此一來,根據不同使用者的工作量與儲存需求,管理者就可以設定不同的使用空間。
5.9.7.1.3. 紀錄每個群組的空間
磁碟配額也能以群組為單位,追蹤管理磁碟配額。有時企業會以專案為導向,將同專案的使用者放在同一個群組中,賦予整組一個共同空間。在這種情況下,這功能就很方便。
系統管理者可以結合使用者與群組兩種配額管理,讓磁碟空間更加運用自如。管理者先為每個使用者設定固定的磁碟配額,再為多使用者的專案,建立較大量的空間。這對採用「退額(chargeback)」機制的企業來說,依照部門與群組的用量來計算成本,可說是一項優點。
5.9.7.1.4. 追蹤磁區的使用狀態
磁碟配額可以追蹤磁區的使用狀態。因為所有檔案系統上的資料,都存在一個個磁區裡,所以磁碟配額功能可以在建立與刪除檔案的同時,跟實際的儲存量連結起來。
5.9.7.1.5. 追蹤 inode 的使用狀態
除了追蹤磁區的用量外,磁碟配額也可以追蹤 inode 的用量。在 Red Hat Enterprise Linux 中,inode 用來儲存檔案系統的不同部份;但更重要的是,inode 會紀錄每個檔案的資訊。因此,藉由追蹤(以及控制)inode 的使用量,就可以控制檔案的建立過程。
5.9.7.1.6. Hard Limits
Hard limit 指得是某位使用者(或某個群組)能暫時使用的磁區(或 inode)上限值。如果超過這個數值,即使超過一個磁區或一個 inode,都會寫入失敗。
5.9.7.1.7. Soft Limits
Soft limit 是某位使用者(或某個群組)能永久使用的磁區(或 inode)上限值。
Soft limit 的值比 hard limit 來得低。這讓使用者可以暫時超過 soft limit 的限制,讓他們完成正在進行的工作,並有多餘的時間整理自己的檔案,刪到低於 soft limit 為止。
5.9.7.1.8. 寬限期
如剛剛所述,超出 soft limit 的空間,都是暫時分配的。寬限期(grace period)則決定了使用者在超過 soft limit 之後,但還未達 hard limit 之前,還可以繼續使用的時間。
如果寬限期過了,使用者(或群組)仍然超出 soft limit 的限制,那麼除非使用者(或群組)刪除檔案直到低於 soft limit 為止,否則系統將不會配發更多的空間。
寬限期可以用秒、分、小時、週、或月來當單位,讓系統管理者有絕對的自由,決定該給使用者多少寬限期清除檔案,直到低於 soft limit 為止。
5.9.7.2. 啟用磁碟配額

注意
接下來的章節將為您簡介如何啟用 Red Hat Enterprise Linux 裡的磁碟配額。要更深入了解這個主題,請參閱《Red Hat Enterprise Linux 系統管理手冊》中,講述磁碟配額的章節。
要使用磁碟配額,您得先啟用才行。啟用的步驟包括底下幾個步驟:
修改 /etc/fstab
重新掛載檔案系統
執行 quotacheck
設定配額
檔案 /etc/fstab 紀錄了 Red Hat Enterprise Linux 中,有關檔案系統掛載的資訊。由於磁碟配額是以檔案系統為基礎,所以共有兩個選項 — usrquota 與 grpquota — 可供選擇,讓您加入這檔案中,以啟用磁碟配額。
usrquota 選項會針對使用者,啟用磁碟配額;而 grpquota 則是針對群組所設計。您可以在選項欄位中,針對要做配額管理的磁碟,擇一選用,或同時使用兩者。
接下來,您必須卸載要做配額管理的磁碟,然後再重新掛載,這樣先前做的更新才會生效。
接下來,利用 quotacheck 指令建立磁碟配額需要的檔案,並從目前的檔案狀態中,蒐集現有的使用資訊。磁碟配額檔(針對使用者與群組的檔名分別為 aquota.user 與 aquota.group)中,包含了與配額相關的所有資訊,存放在檔案系統的根目錄裡。
要設定磁碟配額,請使用 edquota 指令。
edquota 指令配合其後的參數,利用文書編輯器顯示某個使用者或群組的磁碟配額使用狀態。
Disk quotas for user matt (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/md3 6618000 0 0 17397 0 0
這顯示使用者 matt 目前使用了超過 6 GB 的空間,inode 數超過 17,000 個。不管是磁區或 inode 的數量都沒有設限(soft 與 hard 皆然),這也說明了 matt 可以任意使用磁碟空間,不受磁區或 inode 的限制。
因為所有資訊都在文書處理器中顯示,所以管理者可以依照需求,更改 soft 與 hard 的上限:
Disk quotas for user matt (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/md3 6618000 6900000 7000000 17397 0 0
在這例子中,使用者 matt 的 soft 與 hard 的磁區限制分別為 6.9 GB 與 7 GB;但 inode 則沒有設限。

提示
edquota 加上 -t 選項之後,就可以針對檔案系統,設定寬限期。
5.9.7.3. 管理磁碟配額
在 Red Hat Enterprise Linux 中,管理者不需要花太多心思管理磁碟配額。基本上需要的只有:
定期產生磁碟使用量的報表(超過用量的使用者,也會出現在名單上)
確定磁碟配額的設定是正確的
要產生磁碟使用量的報表,請使用 repquota 指令。輸入 repquota /home 指令,會得到以下結果:
*** Report for user quotas on device /dev/md3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 32836 0 0 4 0 0
matt -- 6618000 6900000 7000000 17397 0 0
欲知更多 repquota 的資訊,請參閱《Red Hat Enterprise Linux 系統管理手冊》中,有關磁碟配額的章節。
當電腦沒有正確地卸載檔案系統(例如當機)時,您就該執行 quotacheck。然而,許多系統管理者建議,即使系統沒有發生當機之類的情形,也該定期執行 quotacheck。
這跟第一次使用 quotacheck,以啟用磁碟配額的過程非常類似。
底下是 quotacheck 指令的範例:
quotacheck -avug
要定期執行 quotacheck 最簡單的方式,莫過於使用 cron 指令。大部分系統管理者每週會執行 quotacheck 一次;不過視情形而定,您可以拉長或縮短這個週期。
5.9.8. 建立 RAID 陣列
除了支援硬體 RAID 外,Red Hat Enterprise Linux 也支援軟體 RAID。要建立軟體的 RAID 陣列,有以下兩種方法:
安裝 Red Hat Enterprise Linux 時
安裝完 Red Hat Enterprise Linux 之後
底下的章節將為您討論這兩種方法。
5.9.8.1. 安裝 Red Hat Enterprise Linux 時
您可以在 Red Hat Enterprise Linux 的安裝過程中,建立 RAID 陣列。更準確的說,是在製作分割區時。
要建立 RAID,您得使用 Disk Druid 手動製作硬碟分割區。首先,建立一個以「軟體 RAID」為磁碟類型的分割區。接下來,在「可用磁碟(Allowable Drives)」中,選擇要加入 RAID 的硬碟。接下來選擇磁碟空間的大小,以及是否要製作為主要分割區。
建立好所有要加入 RAID 陣列的分割區之後,請按下RAID按鈕,正式開始建立 RAID。接下來的對話框會請您輸入陣列的掛載點、檔案系統類型、RAID 的裝置名稱、RAID 等級、以及 RAID 陣列所用到的「軟體 RAID」分割區。
建立好陣列之後,剩下的安裝過程並沒有其他不同。

提示
欲知在安裝 Red Hat Enterprise Linux 過程中,建立軟體 RAID 陣列的更多訊息,請參閱《Red Hat Enterprise Linux 系統管理手冊》。
5.9.8.2. 安裝完 Red Hat Enterprise Linux 之後
要在 Red Hat Enterprise Linux 安裝後才建立 RAID 陣列,過程就比較複雜。除了任何類型的儲存空間外,您還得先安裝、設定必要的硬體。
為 RAID 製作分割區,要比單硬碟來得麻煩。除了將分割區類型選為「Linux」(型態 83)或「Linux swap」(型態 82)之外,所有要加入RAID陣列的分割區,都該被設定為「Linux raid auto」(型態 fd)。
接下來,您該建立 /etc/raidtab 檔。這檔案會記載電腦上所有 RAID 陣列的資訊。這檔案格式(您可以在 raidtab(5) 說明文件中找到相關訊息)非常簡單。底下是某個 RAID 1 陣列的 /etc/raidtab:
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 64k
persistent-superblock 1
nr-spare-disks 0
device /dev/hda2
raid-disk 0
device /dev/hdc2
raid-disk 1
這檔案中需要注意的地方有:
raiddev — 顯示 RAID 陣列的裝置檔案名稱[2]
raid-level — 這欄位定義了 RAID 陣列的等級
nr-raid-disks — 指出陣列是由多少分割區所組成
nr-spare-disks — Red Hat Enterprise Linux的軟體 RAID 支援一或多個熱備品(hot spare)分割區功能,當某顆硬碟壞掉時,身為備品的分割區就會自動上線,接手所有工作
device, raid-disk — 這組資訊顯示了組成RAID陣列的實際硬碟分割區
接下來,就該使用 mkraid 指令,實際建立 RAID 陣列了。以之前的 /etc/raidtab 檔案為例,我們可以用以下指令建立 /dev/md0 RAID 陣列:
mkraid /dev/md0
現在您可以對 /dev/md0 這個 RAID 陣列,做格式化與掛載的動作了。這些過程跟格式化與掛載單硬碟的過程,沒有任何不同。
5.9.9. RAID 陣列的日常管理
要讓 RAID 陣列正常運作,花不了什麼功夫。只要硬體不出問題,那麼陣列用起來就跟單硬碟沒什麼兩樣。不過,系統管理者平時就該定期檢查系統的所有硬碟,當然 RAID 也不能例外。
5.9.9.1. 使用
/proc/mdstat 檢查陣列狀態
檢查 RAID 陣列最簡單的方法,莫過於檢視
/proc/mdstat 檔案。底下是 mdstat 的範例(請使用 cat /proc/mdstat 指令,檢視這個檔案):
Personalities : [raid1]
read_ahead 1024 sectors
md1 : active raid1 hda3[0] hdc3[1]
522048 blocks [2/2] [UU]
md0 : active raid1 hda2[0] hdc2[1]
4192896 blocks [2/2] [UU]
md2 : active raid1 hda1[0] hdc1[1]
128384 blocks [2/2] [UU]
unused devices: <none>
這台電腦上共有三個 RAID 陣列(都是 RAID 1)。
/proc/mdstat 檔案中,每個 RAID 都有專屬的區域,包含以下資訊:
RAID 陣列的裝置名稱(不包括 /dev/ 部份)
RAID 陣列的狀態
RAID 陣列的 RAID 等級
組成陣列的分割區(後面的數字為分割區在陣列中的編號)
陣列的大小
陣列中,已設定的裝置數與可運作的裝置數
陣列中每個裝置的狀態(U 表示裝置正常,_ 表示裝置失效)
5.9.9.2. 用 raidhotadd 重新建立 RAID 陣列
如果
/proc/mdstat 顯示 RAID 陣列出了問題,您可以使用 raidhotadd 公用程式,重建陣列。底下是您該採取的步驟:
找出壞掉的分割區,屬於哪個硬碟
修正問題(通常是更換硬碟)
為新硬碟製作分割區,分割區大小要跟陣列中的其他分割區「相同」
使用以下指令:
raidhotadd <raid-device> <disk-partition>
檢視
/proc/mdstat 檔案,確定重建程序正在進行

提示
底下是檢視重建程序所需要的指令:
watch -n1 cat /proc/mdstat
這指令會每秒一次,顯示
/proc/mdstat 的內容。
5.9.10. 邏輯磁區管理
Red Hat Enterprise Linux 也支援 LVM。您可以在安裝 Red Hat Enterprise Linux 時一併設定;或在安裝完成後,再建立 LVM。Red Hat Enterprise Linux 的 LVM 功能,包括實體儲存分群(physical storage grouping)、重設邏輯磁區大小(logical volume resizing)、以及資料轉移(data migrating)等。
欲知更多 LVM 的相關資訊,請參閱《Red Hat Enterprise Linux 系統管理手冊》。
注
[1]
欲知更多詳情,請參閱第 5.9.5 節。
[2]
值得注意的是,由於RAID陣列是由多個分割區組成,所以這個裝置檔案名稱並不會顯示分割區的資訊。