新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux磁盤(pán)存儲(chǔ)區(qū)管理原理與技巧

Linux磁盤(pán)存儲(chǔ)區(qū)管理原理與技巧

作者: 時(shí)間:2007-05-09 來(lái)源:網(wǎng)絡(luò) 收藏
在Linux下管理磁盤(pán)貯存區(qū)算的上一個(gè)技巧,很多朋友在這上面常常問(wèn)我,今天我就把這方面的東西匯總一下,從Linux特有的交換分區(qū)的原理開(kāi)始介紹Linux下如何管理磁盤(pán)。

  原理篇

  1. 交換空間是什么

  Linux 中的 交換空間(Swap space) 在物理內(nèi)存(RAM)被充滿時(shí)被使用。如果系統(tǒng)需要更多的內(nèi)存資源,而物理內(nèi)存已經(jīng)充滿,內(nèi)存中不活躍的頁(yè)就會(huì)被移到交換空間去。雖然交換空間可以為帶有少量?jī)?nèi)存的機(jī)器提供幫助,但是這種方法不應(yīng)該被當(dāng)做是對(duì)內(nèi)存的取代。交換空間位于硬盤(pán)驅(qū)動(dòng)器上,它比進(jìn)入物理內(nèi)存要慢。

  交換空間可以是一個(gè)專用的交換分區(qū)(推薦的方法),交換文件,或兩者的組合。 交換空間的總大小應(yīng)該相當(dāng)于你的計(jì)算機(jī)內(nèi)存的兩倍和 32 MB這兩個(gè)值中較大的一個(gè),但是它不能超過(guò) 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)行需要大量?jī)?nèi)存的程序,把交換區(qū)增加到 256 MB 可能會(huì)對(duì)你有利。

  你有兩種選擇:添加一個(gè)交換分區(qū)或添加一個(gè)交換文件。推薦你添加一個(gè)交換分區(qū),不過(guò),若你沒(méi)有多少空閑空間可用,創(chuàng)建交換分區(qū)可能會(huì)不大容易。

  要添加一個(gè)交換分區(qū)(假設(shè) /dev/hdb2 是你想添加的交換分區(qū)):

  硬盤(pán)驅(qū)動(dòng)器不能在被使用(分區(qū)不能被掛載,交換分區(qū)不能被啟用)。要達(dá)到這一目的的最簡(jiǎn)單方法是在救援模式下引導(dǎo)你的系統(tǒng)。當(dāng)提示掛載文件系統(tǒng)時(shí),選擇 「跳過(guò)」 。

  如果驅(qū)動(dòng)器不包含任何被使用的分區(qū),你還可以卸載這些分區(qū),使用 swapoff 命令來(lái)關(guān)閉硬盤(pán)驅(qū)動(dòng)器上的所有交換空間。

  技巧篇

  使用 parted 或 fdisk 來(lái)創(chuàng)建交換分區(qū)。 parted 比 fdisk 使用起來(lái)更方便,因此,只有 parted 在這里會(huì)被說(shuō)明。要使用 parted 來(lái)創(chuàng)建交換分區(qū):

  在 shell 提示下以根用戶身份鍵入命令: parted /dev/ hdb 。這里的 /dev/ hdb 是你的帶有空閑空間的硬盤(pán)驅(qū)動(dòng)器的設(shè)備名稱。

  在 (parted) 提示下,鍵入 print 來(lái)查看現(xiàn)存的分區(qū)和空閑空間的數(shù)量。起止值以 MB 為單位。判定硬盤(pán)驅(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í)請(qǐng)謹(jǐn)慎從事。

  鍵入 quit 來(lái)退出 parted 。

  現(xiàn)在,你就可以創(chuàng)建交換分區(qū)了,使用 mkswap 命令來(lái)設(shè)置交換分區(qū)。在 shell 提示下以根用戶身份鍵入以下命令:

  mkswap /dev/hdb2

  要立即啟用交換分區(qū),鍵入以下命令:

  swapon /dev/hdb2

  要在引導(dǎo)時(shí)啟用,編輯 /etc/fstab 文件來(lái)包括以下行:

  /dev/hdb2 swap swap defaults 0 0

  在系統(tǒng)下次引導(dǎo)時(shí),它就會(huì)啟用新建的交換分區(qū)。

  新添了交換分區(qū)并啟用它之后,請(qǐng)查看 cat /proc/swaps 或 free 命令的輸出來(lái)確保交換分區(qū)已被啟用了。

  要添加交換文件:

  判定新交換文件的大小,將大小乘以 1024 來(lái)判定塊的大小。例如,大小的 64 MB 的交換文件的塊大小為 65536。

  在 shell 提示下以根用戶身份鍵入以下命令,其中的 count 等于想要的塊大?。?

  dd if=/dev/zero of=/swapfile bs=1024 count=65536

  使用以下命令來(lái)設(shè)置交換文件:

  mkswap /swapfile

  要立即啟用交換文件而不是在引導(dǎo)時(shí)自動(dòng)啟用,使用以下命令:

  swapon /swapfile

  要在引導(dǎo)時(shí)啟用,編輯 /etc/fstab 文件來(lái)包含以下行:

  /swapfile swap swap defaults 0 0

  系統(tǒng)下次引導(dǎo)時(shí),它就會(huì)啟用新建的交換文件。

  新添了交換分區(qū)并啟用它之后,請(qǐng)查看 cat /proc/swaps 或 free 命令的輸出來(lái)確保交換分區(qū)已被啟用了。

  3. 刪除交換空間

  要?jiǎng)h除交換分區(qū):

  硬盤(pán)驅(qū)動(dòng)器不能在被使用(分區(qū)不能被掛載,交換分區(qū)不能被啟用)。要達(dá)到這一目的的最簡(jiǎn)單方法 是在救援模式下引導(dǎo)你的系統(tǒng)。

  如果驅(qū)動(dòng)器不包含任何被使用的分區(qū),你還可以卸載這些分區(qū),使用 swapoff 命令來(lái)關(guān)閉硬盤(pán)驅(qū)動(dòng)器上的所有交換空間。

  在 shell 提示下以根用戶身份鍵入以下命令來(lái)確定交換分區(qū)已被禁用(這里的 /dev/hdb2 是交換分區(qū)):

  swapoff /dev/hdb2

  從 /etc/fstab 文件中刪除這個(gè)項(xiàng)目。

  使用 parted 或 fdisk 來(lái)刪除分區(qū)。只有 parted 在這里會(huì)被說(shuō)明。要使用 parted 來(lái)刪除分區(qū):

  在 shell 提示下以根用戶身份鍵入命令: parted /dev/ hdb 。這里的 /dev/ hdb 是你的帶有交換空間的硬盤(pán)驅(qū)動(dòng)器的設(shè)備名稱。

  在 (parted) 提示下,鍵入 print 來(lái)查看現(xiàn)存的分區(qū)并判定你想刪除的交換分區(qū)的次要號(hào)碼。

  在 (parted) 提示下,鍵入 rm MINOR ,這里的 MINOR 是你想刪除的分區(qū)的次要號(hào)碼。

  警告:改變會(huì)立即發(fā)生,你必須鍵入正確的次要號(hào)碼。

  鍵入 quit 來(lái)退出 parted 。

  要?jiǎng)h除交換文件:

  在 shell 提示下以根用戶身份執(zhí)行以下命令來(lái)禁用交換文件(這里的 /swapfile 是交換文件):

  swapoff /swapfile

  從 /etc/fstab 中刪除該項(xiàng)目。

  刪除實(shí)際文件:

  rm /swapfile

  4. 移動(dòng)交換空間

  要把交換空間從某處移到另一處,請(qǐng)首先遵循刪除交換空間的說(shuō)明,再遵循添加交換空間的說(shuō)明。

  在你安裝了 Red Hat Linux 系統(tǒng)后,你可能想查看現(xiàn)存的分區(qū)表,改變分區(qū)的大小, 刪除分區(qū),或從空閑空間或附加的硬盤(pán)驅(qū)動(dòng)器上添加分區(qū)。 parted工具會(huì)允許你執(zhí)行這些任務(wù)。本章討論如何使用parted命令來(lái)執(zhí)行文件系統(tǒng)任務(wù)。此外,你還可以使用 fdisk來(lái)執(zhí)行多數(shù)此類任務(wù)(除重新劃分分區(qū)以外)。要獲得 fdisk的更多信息,請(qǐng)閱讀其說(shuō)明書(shū)頁(yè)(man)或信息頁(yè)(info)。

  你必須安裝了parted 軟件包才能使用parted工具。要啟動(dòng)parted ,在shell 提示下以根用戶身份鍵入命令 parted /dev/hdb

  這里的/dev/hdb是你想配置的設(shè)備名稱。你會(huì)看到一個(gè)(parted)提示。鍵入 help來(lái)查看可用命令的列表。

  如果你想創(chuàng)建、刪除分區(qū)或重新劃分分區(qū)大小,分區(qū)所在設(shè)備不能正在被使用(分區(qū)不能被掛載,并且交換空間不能被啟用)。 達(dá)到這個(gè)目的的最簡(jiǎn)單方法是在救援模式中引導(dǎo)系統(tǒng)。

  如果驅(qū)動(dòng)器不包含任何正在被使用的分區(qū),你可以使用 umount 命令來(lái)卸載分區(qū),使用swapoff 命令來(lái)關(guān)閉硬盤(pán)驅(qū)動(dòng)器上的交換空間。

  命令篇

  下表包含一列最常用的parted命令。

  print

  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    

  第一行顯示了磁盤(pán)的大??;第二行顯示了磁盤(pán)標(biāo)簽類型;剩余的輸出顯示了分區(qū)表。

  在分區(qū)表中,Minor(次要)標(biāo)簽是分區(qū)號(hào)碼。例如,次要號(hào)碼為 1 的分區(qū)和 /dev/hda1 相對(duì)。

  Start(開(kāi)始)和 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。

  竅門(mén):

  要不重新啟動(dòng) parted來(lái)選擇不同的設(shè)備,使用select命令,再緊跟設(shè)備名,如/dev/hdb。然后,你便可以查看或配置它的分區(qū)表


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉