歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> CentOS(五)--Linux系統的分區概念,centos--linux

CentOS(五)--Linux系統的分區概念,centos--linux

日期:2017/3/3 18:11:54   编辑:學習Linux

CentOS(五)--Linux系統的分區概念,centos--linux

CentOS(五)--Linux系統的分區概念,centos--linux


一、系統分區

首先先普及一下有關系統分區的一些知識:

硬盤分區有三種,主磁盤分區、擴展磁盤分區、邏輯分區。


一個硬盤主分區至少有1個,最多4個,擴展分區可以沒有,最多1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若干個。
在windows下激活的主分區是硬盤的啟動分區,他是獨立的,也是硬盤的第一個分區,正常分的話就是C區。

在linux下主分區和邏輯分區都可以用來放系統,引導os開機,grub會兼容windows系統開機啟動。分出主分區後,其余的部分可以分成擴展分區,一般是剩下的部分全部分成擴展分區,也可以不全分,那剩的部分就浪費了。


但擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,所以說擴展分區可分成若干邏輯分區。他們的關系是包含的關系,所有的邏輯分區都是擴展分區的一部分。


在linux中第一塊硬盤分區為hda分區(或者是sda分區),主分區編號為hda1-4,邏輯分區從5開始。


硬盤的容量=主分區的容量+擴展分區的容量 擴展分區的容量=各個邏輯分區的容量之和


主分區也可成為“引導分區”,會被操作系統和主板認定為這個硬盤的第一個分區。所以C盤永遠都是排在所有磁盤分區的第一的位置上。


MBR(主引導記錄)的分區表(主分區表)只能存放4個分區,如果要分更多的分區的話就要一個擴展分區表(EBR),擴展分區表放在一個系統ID為0x05的主分區上,這個主分區就是擴展分區,擴展分區能可以分若干個分區,每個分區都是個邏輯分區

MBR、擴展分區、邏輯分區的概念

一個是放置該硬盤的信息區,稱之為主引導分區(master boot recorder,MBR),一個是實際文件數據放置的地方.其中,MBR是整個硬盤最重要的區域.一旦MBR物理實體損壞時,則該硬盤就差不多報廢了.一般來說,MBR有512個字節,且可以分為兩個部分.
(1)第一部分有446個字節,用於存放引導代碼,即bootloader.
(2)第二部分有64個字節,用於存放磁盤分區表.其中,每個分區的信息需要用16個字節來記錄,因此,一個硬盤最多可以有4個分區.這4個分區稱之為主分區和擴展分區(extended).


注:通常所說的"硬盤分區"就是指修改磁盤分區表,它定義了"第n個磁盤塊是從第x個柱面到第y個柱面".因此,當系統要讀取第n個磁盤塊時,就是去讀硬盤上第x個柱面到第y個柱面的信息.


由於擴展分區只能有一個所以這4個分區可以是4個主分區或者3個主分區加1個擴展分區,如下所示:
P + P + P + P
P + P + P + E
重點說明的是,擴展分區不能直接使用,還需要將其劃分為邏輯分區才行.這樣就產生了一個問題,既然擴展分區不能直接使用,但為什麼還要劃分出一定的空間來給擴展分區呢?這是因為,如果用戶想要將硬盤劃分為5個分區的話,那該如何?此時,就需要擴展分區來幫忙了.
由於MBR僅能保存4個分區的數據信息,如果超過4個,系統允許在額外的硬盤空間存放另一份磁盤分區信息,這就是擴展分區.若將硬盤分成3P+E,則E實際上是告訴系統,磁盤分區表在另外的那份分區表,即擴展分區其實是指向正確的額外分區表.本身擴展分區不能直接使用,還需要額外將擴展分區分成邏輯分區才能使用,因此,用戶通過擴展分區就可以使用5個以上的分區了.


注意:
(1)實際上,不建議用戶將硬盤分為4個主分區.這是因為,假如一個20GB的硬盤,若4個主分區占據了15GB的空間,則剩下的5GB空間完全不能使用,因為已經沒有多余的分區表可以記錄這些空間了.
(2)考慮到磁盤的連續性,一般建議將擴展分區放在最後面的柱面內.
(3)理論上允許一個硬盤只有1個主分區,其它空間都分配給擴展分區.

硬盤的分區主要分為基本分區(Primary Partion)和擴展分區(Extension Partion)兩種,基本分區和擴展分區的數目之和不能大於四個,(根據上面的一些分區概念,是基本分區的數目不能超過4個,而擴展分區的數目最多只有1個,所以兩者數目之和不能超過4個)。且基本分區可以馬上被使用但不能再分區。擴展分區必須再進行分區後才能使用,也就是說 它必須還要進行二次分區。那麼由擴展分區再分下去的是什麼呢?它就是邏輯分區(Logical Partion),況且邏輯分區沒有數量上限制。

如圖,咱們最常用的windows系統的分區就是這樣分區的,首先分出一個主分區(操作系統一般就是裝在主分區裡面),然後分了一個擴展分區,因為擴展分區不能直接使用,所以需要在擴展分區下面將其分為若干個邏輯分區(如圖所示的D、E、F、G盤就是分出來的邏輯分區)。

二、Windows分區和Linux分區的區別

在Windows操作系統中,是先將物理地址分開(分出主分區和邏輯分區),再在分區上建立目錄。在Windows操作系統中,所有路徑都是從盤符開始,如C://Program Files. Linux正好相反,是先有目錄,再將物理地址(分區)映射到目錄中.在Linux操作系統中,所有路徑都是從根目錄開始【/】。Linux默認可分為3個分區,分別是boot分區、swap分區和根分區. 無論是Windows操作系統,還是Linux操作系統,每個分區均可以有不同的文件系統,如FAT32、NTFS等。 對習慣於使用Dos或Windows的用戶來說,有幾個分區就有幾個驅動器,並且每個分區都會獲得一個字母標識符,然後就可以選用這個字母來指定在這個分區上的文件和目錄,它們的文件結構都是獨立的,非常好理解。但對於Linux系統來說,可不再是這樣了,因為對Linux系統用戶來說,無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構。Linux中每個分區都是用來組成整個文件系統的一部分,因為它采用了一種叫"掛載"的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯系起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。下面我們先來看看Linux的驅動器是如何標識的。 對於IDE硬盤,驅動器標識符為“hdx~”,其中“hd”表明分區所在設備的類型,這裡 是指IDE硬盤了。“x”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),“~”代表分區,前四個分區用數字1到4表示,它們是主分區或擴展分區,從5開始就是邏輯分區。例,hda3表示為第一個IDE硬盤上的第三個主分區或擴展分區,hdb2表示為第二個IDE硬盤上的第二個主分區或擴展分區。對於SCSI硬盤則標識為“sdx~”,SCSI硬盤是用“sd”來表示分區所在設備的類型的,其余則和IDE硬盤的表示方法一樣。如,sda1表示第一個SCSI硬盤上的第一個主分區或者擴展分區。 三、Linux的分區 在Linux系統中,我們可以通過 fdisk -l (需要root權限)命令來查看安裝的Linux系統的分區具體情況 復制代碼
[root@xiaoluo /]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00066e2b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM

Disk /dev/mapper/vg_xiaoluo-lv_root: 18.8 GB, 18832424960 bytes
255 heads, 63 sectors/track, 2289 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/vg_xiaoluo-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
復制代碼

通過上面的 fdisk -l 命令可以看到,在我安裝的CentOS系統上,一共分了兩個區sda1、sda2.以及swap區。

Linux的分區是不同於其它操作系統分區的,它的分區格式只有Ext2和Swap兩 種,Ext2用於存放系統文件,Swap則作為Linux的交換分區。那麼現在我們就可以知道Linux至少需要兩個專門的分區(Linux Native和Linux Swap)況且不能將Linux安裝在Dos/Windows分區。一般來說我們將Linux安裝一個或多個類型為“Linux Native”的硬盤分區,但是在Linux的每一個分區都必須要指定一個“Mount Point”(掛載點),告訴Linux在啟動時,這個目錄要給哪個目錄使用。對“Swap”分區來說,一般定義一個且它不必要定義載入點。下面我們先普及下“Linux Native”和“Linux Swap”。

*SWAP分區

SWAP分區是LINUX暫時存儲數據的交換分區,它主要是把主內存上暫時不用得 數據存起來,在需要的時候再調進內存內,且作為SWAP使用的分區不用指定“Mout Point”(載入點),既然它作為交換分區,我們理所當然應給它指定大小,它至少要等於系統上實際內存的量,一般來說它的大小是內存的兩倍,如果你是 16MB的內存,那麼SWAP分區的大小是32MB左右,以此類推。但必須還要注意一點,SWAP分區不要大於128MB,如果你是64MB的內存,那麼 SWAP分區最大也只能被定為127MB,再大就是浪費空間了,因為系統不需要太大的交換分區。以此類推,如果你是128MB或更大的內存,SWAP分區 也只能最大被定為127MB。況且你還必須注意的是如果你是128MB(或更大)的內存,你必須提醒系統你有這麼大的內存,要不然它可不認你這個 128MB內存。具體如下:當順利啟動了安裝過程後,會顯示一個boot:提示符,這時你只要鍵入boot:linux mem=128MB就可以了。另外你也可以創建和使用一個以上的交換分區,最多16個。

*Linux Native

Linux Native是存放系統文件的地方,它只能用EXT2的分區類型,上面已說過。對Windows用戶來說,操作系統必須裝在同一分區裡,它是商業軟件嗎! 所以你沒有選擇的余地!對Linux來說,你有了較大的選擇余地,你可以把系統文件分幾個區來裝(必須要說明載入點),也可以就裝在同一個分區中(載入點是“/”)。下面我們看看 可以創建哪些分區(僅列常用幾種)。

/boot分區 它包含了操作系統的內核和在啟動系統過程中所要用到的文件,建這個分區是有必要的,因為目前大多數的PC機要受到BIOS的限制,
      況且如果有了一個單獨的/boot啟動分區,即使主要的根分區出現了問題,計算機依然能夠啟動。這個分區的大小約在50MB—100MB之間(根據Linux版本不同,數值可以不一樣)。
      但是如果想用LILO啟動Linux系統的話,含有/boot的分區必須完全在柱面1023以下。又由於8GB後的數據LILO不能讀取,所以Linux要安裝在8GB的區域以內。

根據安裝的Linux版本,可以選擇為/boot分區劃分不同的空間(我設置的是500M),查看具體某一個目錄的所在的分區使用 df [目錄全路徑] 這個命令查看,如:

[root@xiaoluo /]# df /boot/
文件系統             1K-塊      已用      可用 已用% 掛載點
/dev/sda1               495844     50655    419589  11% /boot
我們可以看到,我們的/boot目錄是掛載在了 sda1 這個分區上,當然我們可以將/boot目錄從該分區上卸載掉,通過如下命令就可以:
[root@xiaoluo /]# umount /boot

此時我們可以看到,/boot下面已經沒有任何東西了,我們設置可以在 / 根目錄下建立一個自己的目錄,然後將自己的這個目錄掛載到 sda1 這個分區上(不推薦)。

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

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

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

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

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

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

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

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


我們可以如果要查看Linux磁盤的使用情況,使用如下命令即可:
復制代碼
[root@xiaoluo /]# df -h
文件系統          容量  已用  可用 已用%% 掛載點
/dev/mapper/vg_xiaoluo-lv_root
                       18G  8.2G  8.3G  50% /
tmpfs                 245M  228K  245M   1% /dev/shm
/dev/sda1             485M   50M  410M  11% /boot
/dev/sr0              391M  391M     0 100% /media/20130331_132633
復制代碼


所以,通過以上的概述,總結一下Linux分區需要注意的地方,在安裝Linux系統時,我們一般為其分配三個區:

/boot區,通常情況下根據Linux的版本不同,個人分區習慣會不同,我這裡分配了500M給這個分區。

swap區,交換區,通常分配給其的大小為物理內存的2倍,但是最好不要超過256M,所以我這裡分配了256M給這個分區。

/ 區,也就是根目錄,這個分區盡量給其分配大的空間,可以將安裝Linux系統的這個硬盤上除去分給/boot、swap區以外的空間都分配給這個分區。

對於Linux系統分區的概念基本上就是這些,在後續的學習中將繼續記錄自己學習Linux系統的點點滴滴!!!

以上內容為轉載,本人親測!向發博的主人敬禮

http://xxxxxx/Linuxjc/1159657.html TechArticle

Copyright © Linux教程網 All Rights Reserved