萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux磁盤存儲區管理原理與技巧

Linux磁盤存儲區管理原理與技巧

class="21732">

  在Linux下管理磁盤貯存區算的上一個技巧,很多朋友在這上面常常問我,今天我就把這方面的東西匯總一下,從Linux特有的交換分區的原理開始介紹Linux下如何管理磁盤。

  原理篇

  1. 交換空間是什麼

  Linux 中的 交換空間(Swap space) 在物理內存(RAM)被充滿時被使用。如果系統需要更多的內存資源,而物理內存已經充滿,內存中不活躍的頁就會被移到交換空間去。雖然交換空間可以為帶有少量內存的機器提供幫助,但是這種方法不應該被當做是對內存的取代。交換空間位於硬盤驅動器上,它比進入物理內存要慢。

  交換空間可以是一個專用的交換分區(推薦的方法),交換文件,或兩者的組合。 交換空間的總大小應該相當於你的計算機內存的兩倍和 32 MB這兩個值中較大的一個,但是它不能超過 2048 MB(2 GB)。

  2. 添加交換空間

  有時,你會有必要在安裝後添加更多的交換空間。例如,你把系統內存從 64 MB 升級到 128 MB,但是你只有 128 MB 的交換內存。如果你執行的是大量使用內存的操作或運行需要大量內存的程序,把交換區增加到 256 MB 可能會對你有利。

  你有兩種選擇:添加一個交換分區或添加一個交換文件。推薦你添加一個交換分區,不過,若你沒有多少空閒空間可用,創建交換分區可能會不大容易。

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

  硬盤驅動器不能在被使用(分區不能被掛載,交換分區不能被啟用)。要達到這一目的的最簡單方法是在救援模式下引導你的系統。當提示掛載文件系統時,選擇 「跳過」 。

  如果驅動器不包含任何被使用的分區,你還可以卸載這些分區,使用 swapoff 命令來關閉硬盤驅動器上的所有交換空間。

  技巧篇

  使用 parted 或 fdisk 來創建交換分區。 parted 比 fdisk 使用起來更方便,因此,只有 parted 在這裡會被說明。要使用 parted 來創建交換分區:

  在 shell 提示下以根用戶身份鍵入命令: parted /dev/ hdb 。這裡的 /dev/ hdb 是你的帶有空閒空間的硬盤驅動器的設備名稱。

  在 (parted) 提示下,鍵入 print 來查看現存的分區和空閒空間的數量。起止值以 MB 為單位。判定硬盤驅動器上的空閒空間數量,以及你想給新建的交換分區分配的空間數量。

  在 (parted) 提示下,鍵入 mkpartfs part-type linux-swap start end ,這裡的 part-type 是 primary、extended、logical 中的一個, start 是分區的起始點, end 是分區的終止點。

  警告:改變會立即發生,在鍵入時請謹慎從事。

  鍵入 quit 來退出 parted 。

  現在,你就可以創建交換分區了,使用 mkswap 命令來設置交換分區。在 shell 提示下以根用戶身份鍵入以下命令:

  mkswap /dev/hdb2;

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

  swapon /dev/hdb2;

  要在引導時啟用,編輯 /etc/fstab 文件來包括以下行:

  /dev/hdb2 swap swap defaults 0 0;

  在系統下次引導時,它就會啟用新建的交換分區。

  新添了交換分區並啟用它之後,請查看 cat /proc/swaps 或 free 命令的輸出來確保交換分區已被啟用了。

  要添加交換文件:

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

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

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

  使用以下命令來設置交換文件:

  mkswap /swapfile;

  要立即啟用交換文件而不是在引導時自動啟用,使用以下命令:

  swapon /swapfile;

  要在引導時啟用,編輯 /etc/fstab 文件來包含以下行:

  /swapfile swap swap defaults 0 0;

  系統下次引導時,它就會啟用新建的交換文件。

  新添了交換分區並啟用它之後,請查看 cat /proc/swaps 或 free 命令的輸出來確保交換分區已被啟用了。

  3. 刪除交換空間

  要刪除交換分區:

  硬盤驅動器不能在被使用(分區不能被掛載,交換分區不能被啟用)。要達到這一目的的最簡單方法 是在救援模式下引導你的系統。

  如果驅動器不包含任何被使用的分區,你還可以卸載這些分區,使用 swapoff 命令來關閉硬盤驅動器上的所有交換空間。

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

  swapoff /dev/hdb2;

  從 /etc/fstab 文件中刪除這個項目。

  使用 parted 或 fdisk 來刪除分區。只有 parted 在這裡會被說明。要使用 parted 來刪除分區:

  在 shell 提示下以根用戶身份鍵入命令: parted /dev/ hdb 。這裡的 /dev/ hdb 是你的帶有交換空間的硬盤驅動器的設備名稱。

  在 (parted) 提示下,鍵入 print 來查看現存的分區並判定你想刪除的交換分區的次要號碼。

  在 (parted) 提示下,鍵入 rm MINOR ,這裡的 MINOR 是你想刪除的分區的次要號碼。

  警告:改變會立即發生,你必須鍵入正確的次要號碼。

  鍵入 quit 來退出 parted 。

  要刪除交換文件:

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

  swapoff /swapfile;

  從 /etc/fstab 中刪除該項目。

  刪除實際文件:

  rm /swapfile;

  4. 移動交換空間

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

  在你安裝了 Red Hat Linux 系統後,你可能想查看現存的分區表,改變分區的大小, 刪除分區,或從空閒空間或附加的硬盤驅動器上添加分區。 parted工具會允許你執行這些任務。本章討論如何使用parted命令來執行文件系統任務。此外,你還可以使用 fdisk來執行多數此類任務(除重新劃分分區以外)。要獲得 fdisk的更多信息,請閱讀其說明書頁(man)或信息頁(info)。

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

  這裡的/dev/hdb是你想配置的設備名稱。你會看到一個(parted)提示。鍵入 help來查看可用命令的列表。

  如果你想創建、刪除分區或重新劃分分區大小,分區所在設備不能正在被使用(分區不能被掛載,並且交換空間不能被啟用)。 達到這個目的的最簡單方法是在救援模式中引導系統。

  如果驅動器不包含任何正在被使用的分區,你可以使用 umount 命令來卸載分區,使用swapoff 命令來關閉硬盤驅動器上的交換空間。

  命令篇

  下表包含一列最常用的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; primaryext3    boot
  2    101.975  611.850; primarylinux-swap;
  3    611.851  760.891; primaryext3
  4    760.8919758.232; extended      ; lba
  5    760.9229758.232; logicalext3    

  第一行顯示了磁盤的大小;第二行顯示了磁盤標簽類型;剩余的輸出顯示了分區表。

  在分區表中,Minor(次要)標簽是分區號碼。例如,次要號碼為 1 的分區和 /dev/hda1 相對。

  Start(開始)和 End(結束)值以 MB 為單位。

  Type(類型)是 primary、extended、logical 中的一個。

  Filesystem(文件系統)是文件系統的類型,它可以是 ext2、ext3、FAT、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs 或 xfs 之一。

  Flags(標志)列列出了分區被設置的標准。可用的標志有: boot、root、swap、hidden、raid、lvm 或 lba。

  竅門:

  要不重新啟動 parted來選擇不同的設備,使用select命令,再緊跟設備名,如/dev/hdb。然後,你便可以查看或配置它的分區表。

copyright © 萬盛學電腦網 all rights reserved