Linux學習之CentOS(八)–Linux系統的分區概念

來源:互聯網
上載者:User

不知不覺已經記錄了8篇Linux學習隨筆了,雖然還是漂浮在Linux系統的表面,還有很多很多沒有學,但是堅持學下去、堅持寫下去就是成功的!!!!

在講Linux系統磁碟分割之前,首先得介紹一下硬碟分區的知識,以及咱們用的最多的windows系統上的分區

一、系統磁碟分割

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

硬碟分區有三種,主要磁碟分區、延伸磁碟分割、邏輯分區。

一個硬碟主要磁碟分割至少有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 -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00066e2b   Device Boot      Start         End      Blocks   Id  System/dev/sda1   *           1          64      512000   83  LinuxPartition 1 does not end on cylinder boundary./dev/sda2              64        2611    20458496   8e  Linux LVMDisk /dev/mapper/vg_xiaoluo-lv_root: 18.8 GB, 18832424960 bytes255 heads, 63 sectors/track, 2289 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/vg_xiaoluo-lv_swap: 2113 MB, 2113929216 bytes255 heads, 63 sectors/track, 257 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk 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系統的點點滴滴!!!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: