硬盤類型和Linux分區必知


原文出處:http://blog.zollty.com

 

問題1:IDE,SATA,SCSI。這是什么東西啊?

 答:是硬盤接口名,代指不同類型的硬盤。ATA、Ultra ATA、DMA、Ultra DMA等接口都屬於IDE硬盤目前最流行的是SATA3.0硬盤了,最貴最高檔的是企業專用SAS(SAS即串行連接SCSI,是新一代的SCSI技術)硬盤。

 

問題2:/dev/hda,/dev/hdb,/dev/sda,這個hda和sda分別是什么呢?它們有什么區別?

答:hda、sda其實是不同設備的名稱,詳細情況見下表:

 

裝置

裝置在Linux內的文件名

IDE硬盤機

/dev/hd[a-d]

SCSI/SATA/USB硬盤機

/dev/sd[a-p]

USB快閃碟

/dev/sd[a-p](與SATA不同)

軟盤驅動器

/dev/fd[0-1]

打印機

25針: /dev/mouse

 

其中hda、hdb分別代表第一個IDE、第二個IDE。假如你電腦上插有2個IDE硬盤,就會出現hda、hdb嗎?不一定,因為貌似IDE硬盤默認有兩個部分,Master和Slave,即主分區和擴展分區,而且a、b是根據IDE接口插槽順序來分的。這樣的話,第一IDE插槽主分區為hda,擴展分區為hdb,第二IDE插槽主分區為hdc,擴展分區為hdd。但是SATA硬盤好像沒有擴展分區,而且Linux識別SATA等類型裝置的順序不是按插槽順序來的,是按照設備被偵測到的順序來定的,比如SATA的第1、5插槽分別插有硬盤,電腦上還插有一個USB,那么啟動Linux的時候,先后偵測到SATA的第1、5插槽的硬盤和USB設備,那么分配的名稱就分別是sda,sdb,sdc。

 

問題3:那么hda1、hda2又分別代表什么呢?

答:代表分區(Partition),比如

     P1:/dev/hda1

 P2:/dev/hda2

 L1:/dev/hda5

 L2:/dev/hda6

 L3:/dev/hda7

 L4:/dev/hda8

 L5:/dev/hda9

為什么沒有hda3、4呢?因為P1~4保存給了Primary和Extended分區。一個硬盤的結構如下:

MBR|主分區1|主分區2|主分區3|主分區4(擴展分區)|

其中擴展分區可以分為: |邏輯分區1|邏輯分區2|……|邏輯分區n|

 

所以說上面的P1、2指明系統有兩個主分區,L1~5代表有5個邏輯分區。

至於Linux的實際分區,本文不作過多研究,我只知道,Linux的分區很有講究,比如有基於FTP服務器的分區方案,有基於文件服務器的分區方案等等。我們知道Linux系統多被企業用來作服務器,其中包括各種各樣的服務器。比如,我所知道的HTTP服務(通常是Apache和Tomcat),文件服務(常用的是NFS服務器,例如一個Team,各個客戶端都可以掛載主機的一個目錄,方便共享文件),FTP服務(這個不解釋,最常用的是VSFTP,Pure-FTP也用得比較多)。

菜鳥的分區方案是:

swap分區,2048MB=2GB

/boot分區,200MB

/(主分區),30GB

或者

swap分區,2GB

/home分區,20GB

/(主分區),10GB

 

下面給出一個較好的分區方案

swap大小為3GB

/boot大小為200MB

/大小為2GB

/usr大小為15GB

/home大小為20GB

/var大小為5GB

將/usr,/home,/var獨立出來分區,便於管理,一般企業級的服務器都會把這幾個獨立出來。當然這個方案並不是最優的方案。有些情況會把/tmp也獨立出來,或者把/tmp和/root都刪掉,在/var下重新做鏈接。

分區格式選擇:

ext3還是ext4?我用的ext3,Ubuntu工作站都是用的ext3而非ext4我想還是有一定原因吧,而且我的Linux本來就是老版本的REDHAT9.0。

 

問題4: GRUB是什么?

GRUB是一個引導程序,它被安裝在MBR(Master Boot Record即“主引導記錄”)用於在啟動時告訴電腦該啟動哪一個OS(Operation System即“操作系統”),包括windows在內,每一個OS都需要引導才能啟動,windows的引導程序是MS的ntload(NT內核的系統,如XP,Vista),安裝XP 時會自動安裝(不需要也不會詢問你是否願意),它只會尋找已被激活的主分區並把控制權交給這個分區的引導區(不是MBR)。而GRUB就要強大得多了,它不但可以完成ntload的動作(即引導windows),而且可以引導linux、Mac OS,solaris,free BSD等等,而且可以在出錯時報錯,並提供簡單的用戶交互(命令行)。當然由於都要安裝到MBR,所以GRUB不能和ntload共存於同一塊硬盤(grub4dos除外)。

問題5: 分區的時候,遇到(hd0,4), (hd1,0)什么的,是什么意思?
GRUB會將BIOS檢測到的所有硬盤編號,從0開始計數,0,1,2,3……,所以就是hd0,hd1,hd2,hd3……,hd就是hard disk即硬盤(SATA和IDE硬盤都是hd)。

那么到底那一塊硬盤對應hdx呢?
首先,如果你是單硬盤的話,不用想了,只會是hd0。那么如果有兩塊或更多的硬盤呢?你可以這樣:在開機檢測出現BIOS畫面時,等到全部硬盤的數據出現 時,立即按下“Pause”鍵(我的位於“Page Up”鍵的上方),這時啟動過程會暫停,然后仔細看看吧。比如我有四塊硬盤————兩塊IDE的,分別是40G、160G,還有兩塊SATA的,分別是 80G和320G。BIOS檢測順序是這樣:IDE40,IDE160,SATA320,SATA80,所以GRUB表示為:IDE40(hd0),IDE160(hd1),SATA320(hd2),SATA80(hd3),就這樣啦,趕快記下吧!
注意:這里有一個變數:啟動盤順序。
還是上面的例子,因為我的GRUB安裝在SATA320的MBR,並且平時就是用這塊硬盤啟動電腦,所以這時候SATA320中的GRUB認為我的硬盤應該這樣編號:SATA320(hd0),IDE40(hd1),IDE160(hd2),SATA80(hd3)。
呵呵,明白了吧!GRUB編號的原則是這樣的:
1.多快硬盤的順序完全照抄BIOS檢測結果;
2.啟動盤一定是hd0(不管BIOS如何),其他硬盤依次按BIOS檢測結果重排。
3.不管IDE還是SATA,一律認作IDE硬盤!即不使用類似(sd0,0)這樣的編號,這個和linux的方式不同喔!

 

大家知道同一塊硬盤最多只能共存四個主分區,所以對於hd0硬盤,依次是(hd0,0)、(hd0,1)、(hd0,2)、(hd0,3),這是只分出四個主分區的情況,這個編號永遠固定不變;不過這樣的話,你就無法使用更多的分區了,所以通常應該犧牲掉一個主分區(通常是最后一個)把它轉換為擴展分區(extend),以便在其中再細分出更多的邏輯分區(logic)。邏輯分區一律從(hd0,4)開始編號(因為0~3被主分區占據了),依次為(hd0,4)、(hd0,5)、(hd0,6)、(hd0,7)……

 

問題6:怎么區分各個分區的編號? (hd0,1)還是(hd1,0)
ok,對於大多數人來說,兩個以上的主分區根本沒用,所以慣常的做法是————一個主分區、一個擴展分區(包含若干個邏輯分區)。所以,慣常會使用在同一塊硬盤上的編號是:(hd0,0)、(hd0,4)、(hd0,5)、(hd0,6)……。以此類推,第二硬盤是 (hd1,0)、(hd1,4)、(hd1,5)、(hd1,6)……。

而linux的編號方法又和GRUB不同。是嚴格按照BIOS檢測結果,第一硬盤是sda,第二硬盤是sdb,第三硬盤是sdc……,而不管哪個是啟動盤。具體來說,我用第三硬盤啟動的系統,GRUB認為它是(hd0),而linux依然認為它是sdc,明白?

但貌似,Ubuntu自8.04起,所有硬盤都編號為“sdx”,即不管IDE還是SATA,一律認作SCIS硬盤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM