LINUX磁盤分區

在學習 Linux 的過程當中,安裝 Linux 是每個初學者的第一個門檻。在這個過程當中間,最大的困惑莫過於給硬盤進行分區。雖然,如今各類發行版本的 Linux 已經提供了友好的圖形交互界面,可是不少的人仍是感受無從下手。這其中的緣由主要是不清楚 Linux 的分區規定,以及它下面最有效的分區工具― Fdisk 的使用方法。linux

首先咱們要對硬盤分區的基本概念進行一些初步的瞭解,硬盤的分區主要分爲基本分區(primary partion)和擴充分區(extension partion)兩種,基本分區和擴充分區的數目之和不能大於四個。且基本分區能夠立刻被使用但不能再分區。擴充分區必須再進行分區後才能使用,也就是說它必須還要進行二次分區。那麼由擴充分區再分下去的是什麼呢?它就是邏輯分區(logical partion),何況邏輯分區沒有數量上限制。ios

對習慣於使用dos或windows的用戶來講,有幾個分區就有幾個驅動器,而且每一個分區都會得到一個字母標識符,而後就能夠選用這個字母來指定在這個分區上的文件和目錄,它們的文件結構都是獨立的,很是好理解。但對這些初上手 red hat linux的用戶,可就有點惱人了。由於對red hat linux用戶來講不管有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且惟一的文件結構。red hat linux中每一個分區都是用來組成整個文件系統的一部分,由於它採用了一種叫「載入」的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下得到。windows

對windows用戶來講,操做系統必須裝在同一分區裏,它是商業軟件! 因此你沒有選擇的餘地!對red hat linux來講,你有了較大的選擇餘地,你能夠把系統文件分幾個區來裝(必需要說明載入點),也能夠就裝在同一個分區中(載入點是「/」)。安全

下面從這兩個方面入手,來說解這個困擾你們的問題。服務器

Linux 的分區規定網絡

   1. 設備管理  ide

 在 Linux 中,每個硬件設備都映射到一個系統的文件,對於硬盤、光驅等 IDE 或 SCSI 設備也不例外。Linux 把各類 IDE 設備分配了一個由 hd 前綴組成的文件;而對於各類 SCSI 設備,則分配了一個由 sd 前綴組成的文件。工具

對於ide硬盤,驅動器標識符爲「hdx~」,其中「hd」代表分區所在設備的類型,這裏是指ide硬盤了。「x」爲盤號(a爲基本盤,b爲基本從屬盤,c爲輔助主盤,d爲輔助從屬盤),「~」表明分區,前四個分區用數字1到4表示,它們是主分區或擴展分區,從5開始就是邏輯分區。例,hda3表示爲第一個ide硬盤上的第三個主分區或擴展分區,hdb2表示爲第二個ide硬盤上的第二個主分區或擴展分區。對於scsi硬盤則標識爲「sdx~」,scsi硬盤是用「sd」來表示分區所在設備的類型的,其他則和ide硬盤的表示方法同樣,不在多說。學習

例如,第一個 IDE 設備,Linux 就定義爲 hda;第二個 IDE 設備就定義爲 hdb;下面以此類推。而 SCSI 設備就應該是 sda、sdb、sdc 等。操作系統

2. 分區數量   

要進行分區就必須針對每個硬件設備進行操做,這就有多是一塊IDE硬盤或是一塊SCSI硬盤。對於每個硬盤(IDE 或 SCSI)設備,Linux 分配了一個 1 到 16 的序列號碼,這就表明了這塊硬盤上面的分區號碼。
  例如,第一個 IDE 硬盤的第一個分區,在 Linux 下面映射的就是 hda1,第二個分區就稱做是 hda2。對於 SCSI 硬盤則是 sda一、sdb1 等。

3. 各分區的做用    

在 Linux 中規定,每個硬盤設備最多能有 4個主分區(其中包含擴展分區)構成,任何一個擴展分區都要佔用一個主分區號碼,也就是在一個硬盤中,主分區和擴展分區一共最可能是 4 個。
  對於早期的 DOS 和 Windows(Windows 2000 之前的版本),系統只認可一個主分區,能夠經過在擴展分區上增長邏輯盤符(邏輯分區)的方法,進一步地細化分區。

主分區的做用就是計算機用來進行啓動操做系統的,所以每個操做系統的啓動,或者稱做是引導程序,都應該存放在主分區上。

這就是主分區和擴展分區及邏輯分區的最大區別。  

咱們在指定安裝引導 Linux 的 bootloader 的時候,都要指定在主分區上,就是最好的例證。
  Linux 規定了主分區(或者擴展分區)佔用 1 至 16 號碼中的前 4 個號碼。以第一個 IDE 硬盤爲例說明,主分區(或者擴展分區)佔用了 hda一、hda二、hda三、hda4,而邏輯分區佔用了 hda5 到 hda16 等 12 個號碼。
  所以,Linux 下面每個硬盤總共最多有 16 個分區。
  對於邏輯分區,Linux 規定它們必須創建在擴展分區上(在 DOS 和 Windows 系統上也是如此規定),而不是主分區上。
  所以,咱們能夠看到擴展分區可以提供更加靈活的分區模式,但不能用來做爲 操做系統 的引導。 除去上面這些各類分區的差異,咱們就能夠簡單地把它們一視同仁了。
  4. 分區指標  

對於每個 Linux 分區來說,分區的大小和分區的類型是最主要的指標。容量的大小讀者很容易理解,可是分區的類型就不是那麼容易接受了。分區的類型規定了這個分區上面的文件系統的格式。
  Linux 支持多種的文件系統格式,其中包含了咱們熟悉的FAT3二、FAT1六、NTFS、HP-UX,以及各類 Linux 特有的 Linux Native和 Linux Swap分區類型。
  在 Linux 系統中,能夠經過分區類型號碼來區別這些不一樣類型的分區。各類類型號碼在介紹Fdisk的使用方式的時候將會介紹。
   5  經常使用分區

/boot分區,它包含了操做系統的內核和在啓動系統過程當中所要用到的文件,建這個 分區是有必要的,由於目前大多數的pc機要受到bios的限制,何況若是有了一個單獨的/boot啓動分區,即便主要的根分區出現了問題,計算機依然可以 啓動。這個分區的大小約在50mb—100mb之間。可是若是想用lilo啓動red hat linux系統的話,含有/boot的分區必須徹底在柱面1023如下。又因爲8gb後的數據lilo不能讀取,因此red hat linux要安裝在8gb的區域之內。

/usr分區,是red hat linux系統存放軟件的地方,若有可能應將最大空間分給它。

/home分區,是用戶的home目錄所在地,這個分區的大小取決於有多少用戶。如 果是多用戶共同使用一臺電腦的話,這個分區是徹底有必要的,何況根用戶也能夠很好地控制普通用戶使用計算機,如對用戶或者用戶組實行硬盤限量使用,限制普 通用戶訪問哪些文件等。其實單用戶也有創建這個分區的必要,由於沒這個分區的話,那麼你只能以根用戶的身份登錄系統,這樣作是危險的,由於根用戶對系統有 絕對的使用權,可一旦你對系統進行了誤操做,麻煩也就來了。

/var/log分區,是系統日誌記錄分區,若是設立了這一單獨的分區,這樣即便系統的日誌文件出現了問題,它們也不會影響到操做系統的主分區。

/tmp分區,用來存放臨時文件。這對於多用戶系統或者網絡服務器來講是有必要的。 這樣即便程序運行時生成大量的臨時文件,或者用戶對系統進行了錯誤的操做,文件系統的其它部分仍然是安全的。由於文件系統的這一部分仍然還承受着讀寫操 做,因此它一般會比其它的部分更快地發生問題。

/bin分區,存放標準系統實用程序。

/dev分區,存放設備文件。

/opt分區,存放可選的安裝的軟件。

/sbin分區,存放標準系統管理文件。

上面介紹了幾個經常使用的分區,通常來講咱們須要一個swap分區,一個/boot分區,一個/usr分區,一個/home 分區,一個/var/log分區。固然這沒有什麼規定,徹底是依照你我的來定的。但記住至少要有兩個分區,一個swap分區,一個/分區。


Fdisk 使用詳解

下面經過介紹 Fdisk 的使用方法,來鞏固上面所學到的各類關於 Linux 分區的知識。
  Fdisk 是各類 Linux 發行版本中最經常使用的分區工具,是被定義爲 Expert 級別的分區工具,它讓初學者有點望而卻步。
  1. Fdisk 參數說明
   運行Fdisk的時候,首先映入眼簾的是歡迎界面,用戶經過在這個界面中輸入命令參數來操做Fdisk。用戶經過提示鍵入 「m」,能夠顯示 Fdisk 命令各個參數的說明。 讀者能夠看到 Fdisk 有不少參數,但是常用的就是幾個,若是讀者熟練掌握這幾個參數就能夠流暢地運用 Fdisk,對 Linux 的硬盤進行分區。咱們先簡單介紹各個參數的意義,而後詳細說明幾個重點參數。
  用戶在 Linux 中進行分區的時候,最經常使用的參數分別是 d、l、m、n、p、q、t、w 等。

2.用 Fdisk 進行分區

在 Linux 分區過程,通常是先經過 p 參數來顯示出硬盤分區表信息,而後根據信息肯定未來的分區。若是想徹底改變硬盤的分區格式,就能夠經過 d 參數一個個刪除存在的硬盤分區。

例如 d1,d2。 刪除完畢,就能夠經過 n 參數來增長新的分區。當按下 「n」 後,咱們就能夠看到新增的分區。這裏要選擇新建的分區類型,是主分區仍是擴展分區;而後選擇 p 或是 e。它們的區別在上文中已經說明。而後就是設置分區的大小。須要提醒注意的是,若是硬盤上有擴展分區,就只能增長邏輯分區,不能增長擴展分區了,在增長分區的時候,其類型都是默認的 Linux Native,若是須要把其中的某些分區改變爲其它類型,例如 Linux Swap 或 FAT32 等,能夠經過命令 t 來改變, 當按下 「t」 改變分區類型的時候,系統會提示要改變哪一個分區,而且改變爲何類型(若是想知道系統所支持的分區類型,鍵入 l)。Linux 所支持的分區類型號碼和其對應的分區類型,能夠參考表 2(這些信息能夠用 l 命令獲得)。改變完了分區類型,就能夠按下 「w」,保存而且退出。若是不想保存,那麼能夠選擇 「q」 直接退出。

fdisk 是一款強大的磁盤操做工具,來自util-linux軟件包,咱們在這裏只說他如何查看磁盤分區表及分區結構;參數 -l ,經過-l 參數,能得到機器中全部磁盤的個數,也能列出全部磁盤分區狀況;

[root@localhost beinan]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        7751    39728745    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux

在上面Blocks中,表示的是分區的大小,Blocks的單位是byte ,咱們能夠換算成M,好比第一個分區/dev/hda1的大小若是換算成M,應該是6144831/1024=6000M,也就是6G左右,其實沒有這麼 麻煩,粗略的看一下把小數點向前移動三位,就知道大約的體積有多大了;
    System 表示的文件系統,好比/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系統;.

在此例中,咱們要特別注意的是/dev/hda3分區,這是擴展分區;他下面包含着邏輯分區,其實這個分區至關於一個容器;從屬於她的有 hda5,hda6,hda7,hda8,hda9 ;

咱們還注意到一點,怎麼沒有hda4呢?爲何hda4沒有包含在擴展分區?一個磁盤最多有四個主分區; hda1-4算都是主分區;hda4不可能包含在擴展分區裏,另外擴展分區也算主分區;在本例中,沒有hda4這個分區,固然咱們能夠把其中的一個分區設 置爲主分區,只是我當時分區的時候沒有這麼作而已;

再仔細統計一下,咱們看一看這個磁盤是否是還有空間?hda1+hda2+hda3=實際已經分區的體積,因此咱們能夠這樣算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),換算成M單位,小數點向前移三位,因此目前已經劃分好的分區大約佔用體積是62259.876(M),其實最精確的計算 62259876/1024=60800.67(M);而這個磁盤大小是80.0 GB (80026361856byte),其實實際大小也就是78150.744(M);經過咱們一系列的計算,咱們能夠得出這個硬盤目前還有使用的空間;大約還有18G未分區的空間;

咱們也能夠指定fdisk -l 來查看其中一個硬盤的分區狀況;

[root@localhost beinan]# fdisk -l /dev/sda

Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       57231    58604528   83  Linux


經過上面狀況能夠知道,在/dev/sda 這個磁盤中,只有一個分區;使用量差很少是百分百了;

咱們還能夠來查看 /dev/hda的

[root@localhost beinan]# fdisk -l /dev/hda

本身試試看?

咱們也能夠經過: cat /proc/partitions查看目前機器中的全部磁盤及分區狀況

 

df 命令;
df 是來自coreutils 軟件包,系統安裝時,就自帶的;咱們經過這個命令能夠查看磁盤的使用狀況以及文件系統被掛載的位置;

舉例:

[root@localhost beinan]# df -lh

Filesystem            容量  已用 可用 已用% 掛載點

/dev/hda8              11G  6.0G  4.4G  58% /

/dev/shm              236M     0  236M   0% /dev/shm

/dev/sda1              56G   22G   35G  39% /mnt/sda1

咱們從中能夠看到,系統安裝在/dev/hda8 ;還有一個56G的磁盤分區/dev/sda1掛載在 /mnt/sda1中;

其它的參數請參考 man df

 

經過以上兩個方面的學習,相信對於初學者來講,分區已經再也不是 Linux 進階中的絆腳石了。

相關文章
相關標籤/搜索