Linux磁盤存儲(chǔ)區(qū)管理原理與技巧
原理篇
1. 交換空間是什么
Linux 中的 交換空間(Swap space) 在物理內(nèi)存(RAM)被充滿時(shí)被使用。如果系統(tǒng)需要更多的內(nèi)存資源,而物理內(nèi)存已經(jīng)充滿,內(nèi)存中不活躍的頁就會(huì)被移到交換空間去。雖然交換空間可以為帶有少量內(nèi)存的機(jī)器提供幫助,但是這種方法不應(yīng)該被當(dāng)做是對內(nèi)存的取代。交換空間位于硬盤驅(qū)動(dòng)器上,它比進(jìn)入物理內(nèi)存要慢。
交換空間可以是一個(gè)專用的交換分區(qū)(推薦的方法),交換文件,或兩者的組合。 交換空間的總大小應(yīng)該相當(dāng)于你的計(jì)算機(jī)內(nèi)存的兩倍和 32 MB這兩個(gè)值中較大的一個(gè),但是它不能超過 2048 MB(2 GB)。
2. 添加交換空間
有時(shí),你會(huì)有必要在安裝后添加更多的交換空間。例如,你把系統(tǒng)內(nèi)存從 64 MB 升級(jí)到 128 MB,但是你只有 128 MB 的交換內(nèi)存。如果你執(zhí)行的是大量使用內(nèi)存的操作或運(yùn)行需要大量內(nèi)存的程序,把交換區(qū)增加到 256 MB 可能會(huì)對你有利。
你有兩種選擇:添加一個(gè)交換分區(qū)或添加一個(gè)交換文件。推薦你添加一個(gè)交換分區(qū),不過,若你沒有多少空閑空間可用,創(chuàng)建交換分區(qū)可能會(huì)不大容易。
要添加一個(gè)交換分區(qū)(假設(shè) /dev/hdb2 是你想添加的交換分區(qū)):
硬盤驅(qū)動(dòng)器不能在被使用(分區(qū)不能被掛載,交換分區(qū)不能被啟用)。要達(dá)到這一目的的最簡單方法是在救援模式下引導(dǎo)你的系統(tǒng)。當(dāng)提示掛載文件系統(tǒng)時(shí),選擇 「跳過」 。
如果驅(qū)動(dòng)器不包含任何被使用的分區(qū),你還可以卸載這些分區(qū),使用 swapoff 命令來關(guān)閉硬盤驅(qū)動(dòng)器上的所有交換空間。
技巧篇
使用 parted 或 fdisk 來創(chuàng)建交換分區(qū)。 parted 比 fdisk 使用起來更方便,因此,只有 parted 在這里會(huì)被說明。要使用 parted 來創(chuàng)建交換分區(qū):
在 shell 提示下以根用戶身份鍵入命令: parted /dev/ hdb 。這里的 /dev/ hdb 是你的帶有空閑空間的硬盤驅(qū)動(dòng)器的設(shè)備名稱。
在 (parted) 提示下,鍵入 print 來查看現(xiàn)存的分區(qū)和空閑空間的數(shù)量。起止值以 MB 為單位。判定硬盤驅(qū)動(dòng)器上的空閑空間數(shù)量,以及你想給新建的交換分區(qū)分配的空間數(shù)量。
在 (parted) 提示下,鍵入 mkpartfs part-type linux-swap start end ,這里的 part-type 是 primary、extended、logical 中的一個(gè), start 是分區(qū)的起始點(diǎn), end 是分區(qū)的終止點(diǎn)。
警告:改變會(huì)立即發(fā)生,在鍵入時(shí)請謹(jǐn)慎從事。
鍵入 quit 來退出 parted 。
現(xiàn)在,你就可以創(chuàng)建交換分區(qū)了,使用 mkswap 命令來設(shè)置交換分區(qū)。在 shell 提示下以根用戶身份鍵入以下命令:
mkswap /dev/hdb2
要立即啟用交換分區(qū),鍵入以下命令:
swapon /dev/hdb2
要在引導(dǎo)時(shí)啟用,編輯 /etc/fstab 文件來包括以下行:
/dev/hdb2 swap swap defaults 0 0
在系統(tǒng)下次引導(dǎo)時(shí),它就會(huì)啟用新建的交換分區(qū)。
新添了交換分區(qū)并啟用它之后,請查看 cat /proc/swaps 或 free 命令的輸出來確保交換分區(qū)已被啟用了。
要添加交換文件:
判定新交換文件的大小,將大小乘以 1024 來判定塊的大小。例如,大小的 64 MB 的交換文件的塊大小為 65536。
在 shell 提示下以根用戶身份鍵入以下命令,其中的 count 等于想要的塊大?。?
dd if=/dev/zero of=/swapfile bs=1024 count=65536
使用以下命令來設(shè)置交換文件:
mkswap /swapfile
要立即啟用交換文件而不是在引導(dǎo)時(shí)自動(dòng)啟用,使用以下命令:
swapon /swapfile
要在引導(dǎo)時(shí)啟用,編輯 /etc/fstab 文件來包含以下行:
/swapfile swap swap defaults 0 0
系統(tǒng)下次引導(dǎo)時(shí),它就會(huì)啟用新建的交換文件。
新添了交換分區(qū)并啟用它之后,請查看 cat /proc/swaps 或 free 命令的輸出來確保交換分區(qū)已被啟用了。
3. 刪除交換空間
要?jiǎng)h除交換分區(qū):
硬盤驅(qū)動(dòng)器不能在被使用(分區(qū)不能被掛載,交換分區(qū)不能被啟用)。要達(dá)到這一目的的最簡單方法 是在救援模式下引導(dǎo)你的系統(tǒng)。
如果驅(qū)動(dòng)器不包含任何被使用的分區(qū),你還可以卸載這些分區(qū),使用 swapoff 命令來關(guān)閉硬盤驅(qū)動(dòng)器上的所有交換空間。
在 shell 提示下以根用戶身份鍵入以下命令來確定交換分區(qū)已被禁用(這里的 /dev/hdb2 是交換分區(qū)):
swapoff /dev/hdb2
從 /etc/fstab 文件中刪除這個(gè)項(xiàng)目。
使用 parted 或 fdisk 來刪除分區(qū)。只有 parted 在這里會(huì)被說明。要使用 parted 來刪除分區(qū):
在 shell 提示下以根用戶身份鍵入命令: parted /dev/ hdb 。這里的 /dev/ hdb 是你的帶有交換空間的硬盤驅(qū)動(dòng)器的設(shè)備名稱。
在 (parted) 提示下,鍵入 print 來查看現(xiàn)存的分區(qū)并判定你想刪除的交換分區(qū)的次要號(hào)碼。
在 (parted) 提示下,鍵入 rm MINOR ,這里的 MINOR 是你想刪除的分區(qū)的次要號(hào)碼。
警告:改變會(huì)立即發(fā)生,你必須鍵入正確的次要號(hào)碼。
鍵入 quit 來退出 parted 。
要?jiǎng)h除交換文件:
在 shell 提示下以根用戶身份執(zhí)行以下命令來禁用交換文件(這里的 /swapfile 是交換文件):
swapoff /swapfile
從 /etc/fstab 中刪除該項(xiàng)目。
刪除實(shí)際文件:
rm /swapfile
4. 移動(dòng)交換空間
要把交換空間從某處移到另一處,請首先遵循刪除交換空間的說明,再遵循添加交換空間的說明。
在你安裝了 Red Hat Linux 系統(tǒng)后,你可能想查看現(xiàn)存的分區(qū)表,改變分區(qū)的大小, 刪除分區(qū),或從空閑空間或附加的硬盤驅(qū)動(dòng)器上添加分區(qū)。 parted工具會(huì)允許你執(zhí)行這些任務(wù)。本章討論如何使用parted命令來執(zhí)行文件系統(tǒng)任務(wù)。此外,你還可以使用 fdisk來執(zhí)行多數(shù)此類任務(wù)(除重新劃分分區(qū)以外)。要獲得 fdisk的更多信息,請閱讀其說明書頁(man)或信息頁(info)。
你必須安裝了parted 軟件包才能使用parted工具。要啟動(dòng)parted ,在shell 提示下以根用戶身份鍵入命令 parted /dev/hdb
這里的/dev/hdb是你想配置的設(shè)備名稱。你會(huì)看到一個(gè)(parted)提示。鍵入 help來查看可用命令的列表。
如果你想創(chuàng)建、刪除分區(qū)或重新劃分分區(qū)大小,分區(qū)所在設(shè)備不能正在被使用(分區(qū)不能被掛載,并且交換空間不能被啟用)。 達(dá)到這個(gè)目的的最簡單方法是在救援模式中引導(dǎo)系統(tǒng)。
如果驅(qū)動(dòng)器不包含任何正在被使用的分區(qū),你可以使用 umount 命令來卸載分區(qū),使用swapoff 命令來關(guān)閉硬盤驅(qū)動(dòng)器上的交換空間。
命令篇
下表包含一列最常用的parted命令。
A table similar to the following will appear:
Disk geometry for /dev/hda: 0.000-9765.492 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 101.975 primary ext3 boot
2 101.975 611.850 primary linux-swap
3 611.851 760.891 primary ext3
4 760.891 9758.232 extended lba
5 760.922 9758.232 logical ext3
第一行顯示了磁盤的大?。坏诙酗@示了磁盤標(biāo)簽類型;剩余的輸出顯示了分區(qū)表。
在分區(qū)表中,Minor(次要)標(biāo)簽是分區(qū)號(hào)碼。例如,次要號(hào)碼為 1 的分區(qū)和 /dev/hda1 相對。
Start(開始)和 End(結(jié)束)值以 MB 為單位。
Type(類型)是 primary、extended、logical 中的一個(gè)。
Filesystem(文件系統(tǒng))是文件系統(tǒng)的類型,它可以是 ext2、ext3、FAT、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs 或 xfs 之一。
Flags(標(biāo)志)列列出了分區(qū)被設(shè)置的標(biāo)準(zhǔn)??捎玫臉?biāo)志有: boot、root、swap、hidden、raid、lvm 或 lba。
竅門:
要不重新啟動(dòng) parted來選擇不同的設(shè)備,使用select命令,再緊跟設(shè)備名,如/dev/hdb。然后,你便可以查看或配置它的分區(qū)表
評(píng)論